[PATCH] Move the logic for matching devices out of probe routine.

Mario Limonciello mario_limonciello at dell.com
Mon Sep 14 09:03:41 PDT 2009

Hi Aaron:

Aaron Plattner wrote:
> On Sat, Sep 12, 2009 at 07:37:39AM -0700, Mario Limonciello wrote:
> I'm somewhat baffled and saddened by the fact that we have a driver probe
> routine when the driver is not allowed to probe the hardware and make
> decisions based on things other than the PCI ID.  It seems like this really
> ought to be fixed in the server.  That said, it does seem relatively easy
> to just generate a ridiculously big table with all the current PCI IDs plus
> anything that the NVIsSupported function would allow, as a workaround.
Yeah when I first looked at the problem I was in agreement that it
seemed like something the server should support, but then when I saw
that all the other drivers are doing it this way, the easier solution
was to switch it over to a large table.  If  the server gets support for
properly returning a probed card, then all the drivers would be able to
change over.
> libpciaccess really ought to have had mask-based matches for device_id like
> it does for device_class, but it's too late for that now.
> I do object to having a Perl script generate this information from a CSV
> file.  If you absolutely must have the PCI ID table somewhere outside the
> driver, the right way to do it is to generate the CSV file from a header
> file using a C small helper program, not the other way around with Perl.
I by no means require a CSV file.  I implemented it this way because it
makes updating two header files easier when a developer needs to update
one file, run a script, and commit.  I see a couple of possible
solutions here.  Let me know what you think is the best, and i'll go
with that when I resubmit the series of patches with Gaetan's suggestions:

1) Drop the perl script and csv, just submit the two header files. 
They'll both have to be updated every time there is a new ID added.
2) Drop the perl script and csv, remove the code that outputs the name
of all the supported devices when the driver gets loaded.  Instead add
the name of every device into the comments section of a single header
file.  That one header file will have to be updated every time.
3) Leave the perl script and csv, no changes.
4) Some other more specific suggestion you have.

Mario Limonciello
*Dell | Linux Engineering*
mario_limonciello at dell.com

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 260 bytes
Desc: OpenPGP digital signature
Url : http://lists.x.org/archives/xorg-devel/attachments/20090914/f54b42a4/attachment.pgp 

More information about the xorg-devel mailing list