On 9/27/07, Hasso Tepper <[EMAIL PROTECTED]> wrote: > These files have annoyed me quite some time. Maintaining entries in there > is real pain. So I took some time to investigate how useful they are. From > these files structures used for two different things (at least in theory) > are generated: > > - to get "nice" defines to use in the code (pcidevs.h/usbdevs.h) > - to get nice device descriptions in dmesg (pcidevs_data.h/usbdevs_data.h) > > To achieve both goals these files should contain as much devices as > possible of course. But it's obvious that we don't have enough resources. > Our *devs files are much more out of date than they are in other BSDs. > > There is several possibilities to improve the situation. We could use > regular import from <random>BSD, we could use some automatic method etc. > But is it needed at all? How much of this data is actually used? > > Only fraction of defines are actually used in the code (lets not look at > generated _data.h files in this context). Some quirks use them of course, > also drivers matching vendor and device id's. The second usage is > questionable already IMHO - why to have define used in one place? Look at > dev/usbmisc/uftdi/uftdi.c for example - I'd rather have there plain id's > with proper documenting comments. So, the answer to is: "defines are > rarely used". > > Nice device descriptions are not used at all at the moment. All nice > descriptions about PCI devices you see in dmesg are coming from drivers > (see bus/pci/pcisupport.c for example; yes, this is hell ugly as well), > I don't see the pcidevs_data.h included anywhere in the code. The USB > code doesn't include the usbdevs_data.h either - it's done only if > USBVERBOSE is defined, but by accident I didn't move this out from > usb_port.h during USB code cleanup. The point is - no one complained > yet ;). > > There is more issues with nice descriptions for USB devices: > - Nobody has even close to complete database for USB devices. There is > just too many of them. > - If candidates for such databases exist, data in them is often wrong > do to rebranding, several devices using same id's etc etc. > - Often USB devices contain vendor and device _strings_ themselves > (see usbd_devinfo()). > > So, my proposal is: > > - Remove the usbdevs and pcidevs files. If the code wants to use defines > for vendor and/or device id's, it has to define them itself. > - As maintaining descriptions database makes sense only for PCI devices, > look at possibilities to generate structures for that from the > share/misc/pci_vendors file. If it's needed at all? > > > Waiting for comments.
I am fine with defining PCI device ids in each driver, but I think we should add a head file in sys/bus/pci that defines PCI vendor ids (e.g. split vendor ids part out of pcidevs.h). As about PCI devices' description, I don't think they worth the trouble; they are just eyes candies. Best Regards, sephe -- Live Free or Die
