From eaa2ba0e31ea40f6d1cab60594fad3a90f6181ce Mon Sep 17 00:00:00 2001 From: Mario Limonciello Date: Sat, 12 Sep 2009 09:11:48 -0500 Subject: [PATCH] Move the logic for matching devices out of probe routine. This prevents the X server from "claiming" a slot but not freeing it up since the driver used to abort on the probe routine. To achieve this a few things had to be done: 1) Move the list of devices into a parsable CSV file. 2) Add a parsing perl script for generating the two static arrays that contain all the device lists. This came from initially xf86-video-ati with some modifications. 3) Disable any code in the probe routine that was "ignoring" devices. --- src/nv_driver.c | 452 +------------------------- src/pcidb/nv_list.csv | 638 +++++++++++++++++++++++++++++++++++++ src/pcidb/parse_pci_ids.pl | 82 +++++ 3 files changed, 729 insertions(+), 443 deletions(-) create mode 100644 src/nvidia_chipset_gen.h create mode 100644 src/nvidia_pci_device_match_gen.h create mode 100644 src/pcidb/nv_list.csv create mode 100755 src/pcidb/parse_pci_ids.pl diff --git a/src/nv_driver.c b/src/nv_driver.c index a7cf2dc..1dd1b3e 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -32,6 +32,9 @@ #include "xf86int10.h" #include "vbeModes.h" +#include "nvidia_chipset_gen.h" +#include "nvidia_pci_device_match_gen.h" + const OptionInfoRec * RivaAvailableOptions(int chipid, int busid); Bool RivaGetScrnInfoRec(PciChipsets *chips, int chip); Bool G80GetScrnInfoRec(PciChipsets *chips, int chip); @@ -76,27 +79,6 @@ static void NVRestore(ScrnInfoPtr pScrn); static Bool NVModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode); static Bool NVSetModeVBE(ScrnInfoPtr pScrn, DisplayModePtr pMode); -#if XSERVER_LIBPCIACCESS -/* For now, just match any NVIDIA display device and sort through them in the - * probe routine */ - -/* - * libpciaccess's masks are shifted by 8 bits compared to the ones in xf86Pci.h. - */ -#define LIBPCIACCESS_CLASS_SHIFT (PCI_CLASS_SHIFT - 8) -#define LIBPCIACCESS_CLASS_MASK (PCI_CLASS_MASK >> 8) - -static const struct pci_id_match NVPciIdMatchList[] = { - { PCI_VENDOR_NVIDIA, PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, - PCI_CLASS_DISPLAY << LIBPCIACCESS_CLASS_SHIFT, LIBPCIACCESS_CLASS_MASK, 0 }, - - { PCI_VENDOR_NVIDIA_SGS, PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, - PCI_CLASS_DISPLAY << LIBPCIACCESS_CLASS_SHIFT, LIBPCIACCESS_CLASS_MASK, 0 }, - - { 0, 0, 0 } -}; -#endif - /* * This contains the functions needed by the server after loading the * driver module. It must be supplied, and gets added the driver list by @@ -124,369 +106,6 @@ _X_EXPORT DriverRec NV = { #endif }; -/* Known cards as of 2009/05/15 */ - -static SymTabRec NVKnownChipsets[] = -{ - { 0x12D20018, "RIVA 128" }, - - { 0x10DE0020, "RIVA TNT" }, - - { 0x10DE0028, "RIVA TNT2" }, - { 0x10DE002A, "Unknown TNT2" }, - { 0x10DE002C, "Vanta" }, - { 0x10DE0029, "RIVA TNT2 Ultra" }, - { 0x10DE002D, "RIVA TNT2 Model 64" }, - - { 0x10DE00A0, "Aladdin TNT2" }, - - { 0x10DE0100, "GeForce 256" }, - { 0x10DE0101, "GeForce DDR" }, - { 0x10DE0103, "Quadro" }, - - { 0x10DE0110, "GeForce2 MX/MX 400" }, - { 0x10DE0111, "GeForce2 MX 100/200" }, - { 0x10DE0112, "GeForce2 Go" }, - { 0x10DE0113, "Quadro2 MXR/EX/Go" }, - - { 0x10DE01A0, "GeForce2 Integrated GPU" }, - - { 0x10DE0150, "GeForce2 GTS" }, - { 0x10DE0151, "GeForce2 Ti" }, - { 0x10DE0152, "GeForce2 Ultra" }, - { 0x10DE0153, "Quadro2 Pro" }, - - { 0x10DE0170, "GeForce4 MX 460" }, - { 0x10DE0171, "GeForce4 MX 440" }, - { 0x10DE0172, "GeForce4 MX 420" }, - { 0x10DE0173, "GeForce4 MX 440-SE" }, - { 0x10DE0174, "GeForce4 440 Go" }, - { 0x10DE0175, "GeForce4 420 Go" }, - { 0x10DE0176, "GeForce4 420 Go 32M" }, - { 0x10DE0177, "GeForce4 460 Go" }, - { 0x10DE0178, "Quadro4 550 XGL" }, -#if defined(__powerpc__) - { 0x10DE0179, "GeForce4 MX (Mac)" }, -#else - { 0x10DE0179, "GeForce4 440 Go 64M" }, -#endif - { 0x10DE017A, "Quadro NVS" }, - { 0x10DE017C, "Quadro4 500 GoGL" }, - { 0x10DE017D, "GeForce4 410 Go 16M" }, - - { 0x10DE0181, "GeForce4 MX 440 with AGP8X" }, - { 0x10DE0182, "GeForce4 MX 440SE with AGP8X" }, - { 0x10DE0183, "GeForce4 MX 420 with AGP8X" }, - { 0x10DE0185, "GeForce4 MX 4000" }, - { 0x10DE0186, "GeForce4 448 Go" }, - { 0x10DE0187, "GeForce4 488 Go" }, - { 0x10DE0188, "Quadro4 580 XGL" }, -#if defined(__powerpc__) - { 0x10DE0189, "GeForce4 MX with AGP8X (Mac)" }, -#endif - { 0x10DE018A, "Quadro4 NVS 280 SD" }, - { 0x10DE018B, "Quadro4 380 XGL" }, - { 0x10DE018C, "Quadro NVS 50 PCI" }, - { 0x10DE018D, "GeForce4 448 Go" }, - - { 0x10DE01F0, "GeForce4 MX Integrated GPU" }, - - { 0x10DE0200, "GeForce3" }, - { 0x10DE0201, "GeForce3 Ti 200" }, - { 0x10DE0202, "GeForce3 Ti 500" }, - { 0x10DE0203, "Quadro DCC" }, - - { 0x10DE0250, "GeForce4 Ti 4600" }, - { 0x10DE0251, "GeForce4 Ti 4400" }, - { 0x10DE0253, "GeForce4 Ti 4200" }, - { 0x10DE0258, "Quadro4 900 XGL" }, - { 0x10DE0259, "Quadro4 750 XGL" }, - { 0x10DE025B, "Quadro4 700 XGL" }, - - { 0x10DE0280, "GeForce4 Ti 4800" }, - { 0x10DE0281, "GeForce4 Ti 4200 with AGP8X" }, - { 0x10DE0282, "GeForce4 Ti 4800 SE" }, - { 0x10DE0286, "GeForce4 4200 Go" }, - { 0x10DE028C, "Quadro4 700 GoGL" }, - { 0x10DE0288, "Quadro4 980 XGL" }, - { 0x10DE0289, "Quadro4 780 XGL" }, - - { 0x10DE0301, "GeForce FX 5800 Ultra" }, - { 0x10DE0302, "GeForce FX 5800" }, - { 0x10DE0308, "Quadro FX 2000" }, - { 0x10DE0309, "Quadro FX 1000" }, - - { 0x10DE0311, "GeForce FX 5600 Ultra" }, - { 0x10DE0312, "GeForce FX 5600" }, - { 0x10DE0314, "GeForce FX 5600XT" }, - { 0x10DE031A, "GeForce FX Go5600" }, - { 0x10DE031B, "GeForce FX Go5650" }, - { 0x10DE031C, "Quadro FX Go700" }, - - { 0x10DE0320, "GeForce FX 5200" }, - { 0x10DE0321, "GeForce FX 5200 Ultra" }, - { 0x10DE0322, "GeForce FX 5200" }, - { 0x10DE0323, "GeForce FX 5200LE" }, - { 0x10DE0324, "GeForce FX Go5200" }, - { 0x10DE0325, "GeForce FX Go5250" }, - { 0x10DE0326, "GeForce FX 5500" }, - { 0x10DE0327, "GeForce FX 5100" }, - { 0x10DE0328, "GeForce FX Go5200 32M/64M" }, -#if defined(__powerpc__) - { 0x10DE0329, "GeForce FX 5200 (Mac)" }, -#endif - { 0x10DE032A, "Quadro NVS 55/280 PCI" }, - { 0x10DE032B, "Quadro FX 500/600 PCI" }, - { 0x10DE032C, "GeForce FX Go53xx Series" }, - { 0x10DE032D, "GeForce FX Go5100" }, - - { 0x10DE0330, "GeForce FX 5900 Ultra" }, - { 0x10DE0331, "GeForce FX 5900" }, - { 0x10DE0332, "GeForce FX 5900XT" }, - { 0x10DE0333, "GeForce FX 5950 Ultra" }, - { 0x10DE0334, "GeForce FX 5900ZT" }, - { 0x10DE0338, "Quadro FX 3000" }, - { 0x10DE033F, "Quadro FX 700" }, - - { 0x10DE0341, "GeForce FX 5700 Ultra" }, - { 0x10DE0342, "GeForce FX 5700" }, - { 0x10DE0343, "GeForce FX 5700LE" }, - { 0x10DE0344, "GeForce FX 5700VE" }, - { 0x10DE0347, "GeForce FX Go5700" }, - { 0x10DE0348, "GeForce FX Go5700" }, - { 0x10DE034C, "Quadro FX Go1000" }, - { 0x10DE034E, "Quadro FX 1100" }, - - { 0x10DE0040, "GeForce 6800 Ultra" }, - { 0x10DE0041, "GeForce 6800" }, - { 0x10DE0042, "GeForce 6800 LE" }, - { 0x10DE0043, "GeForce 6800 XE" }, - { 0x10DE0044, "GeForce 6800 XT" }, - { 0x10DE0045, "GeForce 6800 GT" }, - { 0x10DE0046, "GeForce 6800 GT" }, - { 0x10DE0047, "GeForce 6800 GS" }, - { 0x10DE0048, "GeForce 6800 XT" }, - { 0x10DE004E, "Quadro FX 4000" }, - - { 0x10DE00C0, "GeForce 6800 GS" }, - { 0x10DE00C1, "GeForce 6800" }, - { 0x10DE00C2, "GeForce 6800 LE" }, - { 0x10DE00C3, "GeForce 6800 XT" }, - { 0x10DE00C8, "GeForce Go 6800" }, - { 0x10DE00C9, "GeForce Go 6800 Ultra" }, - { 0x10DE00CC, "Quadro FX Go1400" }, - { 0x10DE00CD, "Quadro FX 3450/4000 SDI" }, - { 0x10DE00CE, "Quadro FX 1400" }, - - { 0x10DE0140, "GeForce 6600 GT" }, - { 0x10DE0141, "GeForce 6600" }, - { 0x10DE0142, "GeForce 6600 LE" }, - { 0x10DE0143, "GeForce 6600 VE" }, - { 0x10DE0144, "GeForce Go 6600" }, - { 0x10DE0145, "GeForce 6610 XL" }, - { 0x10DE0146, "GeForce Go 6600 TE/6200 TE" }, - { 0x10DE0147, "GeForce 6700 XL" }, - { 0x10DE0148, "GeForce Go 6600" }, - { 0x10DE0149, "GeForce Go 6600 GT" }, - { 0x10DE014A, "Quadro NVS 440" }, - { 0x10DE014C, "Quadro FX 550" }, - { 0x10DE014D, "Quadro FX 550" }, - { 0x10DE014E, "Quadro FX 540" }, - { 0x10DE014F, "GeForce 6200" }, - - { 0x10DE0160, "GeForce 6500" }, - { 0x10DE0161, "GeForce 6200 TurboCache(TM)" }, - { 0x10DE0162, "GeForce 6200SE TurboCache(TM)" }, - { 0x10DE0163, "GeForce 6200 LE" }, - { 0x10DE0164, "GeForce Go 6200" }, - { 0x10DE0165, "Quadro NVS 285" }, - { 0x10DE0166, "GeForce Go 6400" }, - { 0x10DE0167, "GeForce Go 6200" }, - { 0x10DE0168, "GeForce Go 6400" }, - { 0x10DE0169, "GeForce 6250" }, - { 0x10DE016A, "GeForce 7100 GS" }, - - { 0x10DE0211, "GeForce 6800" }, - { 0x10DE0212, "GeForce 6800 LE" }, - { 0x10DE0215, "GeForce 6800 GT" }, - { 0x10DE0218, "GeForce 6800 XT" }, - - { 0x10DE0221, "GeForce 6200" }, - { 0x10DE0222, "GeForce 6200 A-LE" }, - - { 0x10DE0090, "GeForce 7800 GTX" }, - { 0x10DE0091, "GeForce 7800 GTX" }, - { 0x10DE0092, "GeForce 7800 GT" }, - { 0x10DE0093, "GeForce 7800 GS" }, - { 0x10DE0095, "GeForce 7800 SLI" }, - { 0x10DE0098, "GeForce Go 7800" }, - { 0x10DE0099, "GeForce Go 7800 GTX" }, - { 0x10DE009D, "Quadro FX 4500" }, - - { 0x10DE01D0, "GeForce 7350 LE" }, - { 0x10DE01D1, "GeForce 7300 LE" }, - { 0x10DE01D3, "GeForce 7300 SE" }, - { 0x10DE01D6, "GeForce Go 7200" }, - { 0x10DE01D7, "GeForce Go 7300" }, - { 0x10DE01D8, "GeForce Go 7400" }, - { 0x10DE01D9, "GeForce Go 7400 GS" }, - { 0x10DE01DA, "Quadro NVS 110M" }, - { 0x10DE01DB, "Quadro NVS 120M" }, - { 0x10DE01DC, "Quadro FX 350M" }, - { 0x10DE01DD, "GeForce 7500 LE" }, - { 0x10DE01DE, "Quadro FX 350" }, - { 0x10DE01DF, "GeForce 7300 GS" }, - - { 0x10DE0390, "GeForce 7650 GS" }, - { 0x10DE0391, "GeForce 7600 GT" }, - { 0x10DE0392, "GeForce 7600 GS" }, - { 0x10DE0393, "GeForce 7300 GT" }, - { 0x10DE0394, "GeForce 7600 LE" }, - { 0x10DE0395, "GeForce 7300 GT" }, - { 0x10DE0397, "GeForce Go 7700" }, - { 0x10DE0398, "GeForce Go 7600" }, - { 0x10DE0399, "GeForce Go 7600 GT"}, - { 0x10DE039A, "Quadro NVS 300M" }, - { 0x10DE039B, "GeForce Go 7900 SE" }, - { 0x10DE039C, "Quadro FX 550M" }, - { 0x10DE039E, "Quadro FX 560" }, - - { 0x10DE0290, "GeForce 7900 GTX" }, - { 0x10DE0291, "GeForce 7900 GT" }, - { 0x10DE0292, "GeForce 7900 GS" }, - { 0x10DE0293, "GeForce 7950 GX2" }, - { 0x10DE0294, "GeForce 7950 GX2" }, - { 0x10DE0295, "GeForce 7950 GT"}, - { 0x10DE0297, "GeForce Go 7950 GTX" }, - { 0x10DE0298, "GeForce Go 7900 GS" }, - { 0x10DE0299, "GeForce Go 7900 GTX" }, - { 0x10DE029A, "Quadro FX 2500M" }, - { 0x10DE029B, "Quadro FX 1500M" }, - { 0x10DE029C, "Quadro FX 5500" }, - { 0x10DE029D, "Quadro FX 3500" }, - { 0x10DE029E, "Quadro FX 1500" }, - { 0x10DE029F, "Quadro FX 4500 X2" }, - - { 0x10DE0240, "GeForce 6150" }, - { 0x10DE0241, "GeForce 6150 LE" }, - { 0x10DE0242, "GeForce 6100" }, - { 0x10DE0244, "GeForce Go 6150" }, - { 0x10DE0245, "Quadro NVS 210S / NVIDIA GeForce 6150LE" }, - { 0x10DE0247, "GeForce Go 6100" }, - - { 0x10DE03D0, "GeForce 6150SE" }, - { 0x10DE03D1, "GeForce 6100 nForce 405" }, - { 0x10DE03D2, "GeForce 6100 nForce 400" }, - { 0x10DE03D5, "GeForce 6100 nForce 420" }, - -/*************** G8x ***************/ - { 0x10DE0191, "GeForce 8800 GTX" }, - { 0x10DE0193, "GeForce 8800 GTS" }, - { 0x10DE0194, "GeForce 8800 Ultra" }, - { 0x10DE019D, "Quadro FX 5600" }, - { 0x10DE019E, "Quadro FX 4600" }, - { 0x10DE0400, "GeForce 8600 GTS" }, - { 0x10DE0401, "GeForce 8600 GT" }, - { 0x10DE0402, "GeForce 8600 GT" }, - { 0x10DE0403, "GeForce 8600 GS" }, - { 0x10DE0404, "GeForce 8400 GS" }, - { 0x10DE0405, "GeForce 9500M GS" }, - { 0x10DE0407, "GeForce 8600M GT" }, - { 0x10DE0408, "GeForce 9650M GS" }, - { 0x10DE0409, "GeForce 8700M GT" }, - { 0x10DE040A, "Quadro FX 370" }, - { 0x10DE040B, "Quadro NVS 320M" }, - { 0x10DE040C, "Quadro FX 570M" }, - { 0x10DE040D, "Quadro FX 1600M" }, - { 0x10DE040E, "Quadro FX 570" }, - { 0x10DE040F, "Quadro FX 1700" }, - { 0x10DE0420, "GeForce 8400 SE" }, - { 0x10DE0421, "GeForce 8500 GT" }, - { 0x10DE0422, "GeForce 8400 GS" }, - { 0x10DE0423, "GeForce 8300 GS" }, - { 0x10DE0424, "GeForce 8400 GS" }, - { 0x10DE0425, "GeForce 8600M GS" }, - { 0x10DE0426, "GeForce 8400M GT" }, - { 0x10DE0427, "GeForce 8400M GS" }, - { 0x10DE0428, "GeForce 8400M G" }, - { 0x10DE0429, "Quadro NVS 140M" }, - { 0x10DE042A, "Quadro NVS 130M" }, - { 0x10DE042B, "Quadro NVS 135M" }, - { 0x10DE042C, "GeForce 9400 GT" }, - { 0x10DE042D, "Quadro FX 360M" }, - { 0x10DE042E, "GeForce 9300M G" }, - { 0x10DE042F, "Quadro NVS 290" }, - { 0x10DE05E0, "GeForce GTX 295" }, - { 0x10DE05E1, "GeForce GTX 280" }, - { 0x10DE05E2, "GeForce GTX 260" }, - { 0x10DE05E3, "GeForce GTX 285" }, - { 0x10DE05F9, "Quadro CX" }, - { 0x10DE05FD, "Quadro FX 5800" }, - { 0x10DE05FE, "Quadro FX 4800" }, - { 0x10DE05FF, "Quadro FX 3800" }, - { 0x10DE0600, "GeForce 8800 GTS 512" }, - { 0x10DE0601, "GeForce 9800 GT" }, - { 0x10DE0602, "GeForce 8800 GT" }, - { 0x10DE0604, "GeForce 9800 GX2" }, - { 0x10DE0605, "GeForce 9800 GT" }, - { 0x10DE0606, "GeForce 8800 GS" }, - { 0x10DE0608, "GeForce 9800M GTX" }, - { 0x10DE0609, "GeForce 8800M GTS" }, - { 0x10DE060B, "GeForce 9800M GT" }, - { 0x10DE060C, "GeForce 8800M GTX" }, - { 0x10DE060D, "GeForce 8800 GS" }, - { 0x10DE0610, "GeForce 9600 GSO" }, - { 0x10DE0611, "GeForce 8800 GT" }, - { 0x10DE0612, "GeForce 9800 GTX" }, - { 0x10DE0613, "GeForce 9800 GTX+" }, - { 0x10DE0614, "GeForce 9800 GT" }, - { 0x10DE0615, "GeForce GTS 250" }, - { 0x10DE0617, "GeForce 9800M GTX" }, - { 0x10DE061A, "Quadro FX 3700" }, - { 0x10DE061C, "Quadro FX 3600M" }, - { 0x10DE061E, "Quadro FX 3700M" }, - { 0x10DE0622, "GeForce 9600 GT" }, - { 0x10DE0623, "GeForce 9600 GS" }, - { 0x10DE0625, "GeForce 9600 GSO 512" }, - { 0x10DE0626, "GeForce GT 130" }, - { 0x10DE0627, "GeForce GT 140" }, - { 0x10DE0628, "GeForce 9800M GTS" }, - { 0x10DE062A, "GeForce 9700M GTS" }, - { 0x10DE062B, "GeForce 9800M GS" }, - { 0x10DE062C, "GeForce 9800M GTS" }, - { 0x10DE0638, "Quadro FX 1800" }, - { 0x10DE063A, "Quadro FX 2700M" }, - { 0x10DE0640, "GeForce 9500 GT" }, - { 0x10DE0641, "GeForce 9400 GT" }, - { 0x10DE0643, "GeForce 9500 GT" }, - { 0x10DE0646, "GeForce GT 120" }, - { 0x10DE0647, "GeForce 9600M GT" }, - { 0x10DE0648, "GeForce 9600M GS" }, - { 0x10DE0649, "GeForce 9600M GT" }, - { 0x10DE064A, "GeForce 9700M GT" }, - { 0x10DE064B, "GeForce 9500M G" }, - { 0x10DE064C, "GeForce 9650M GT" }, - { 0x10DE0656, "GeForce 9500 GT" }, - { 0x10DE0658, "Quadro FX 380" }, - { 0x10DE0659, "Quadro FX 580" }, - { 0x10DE065C, "Quadro FX 770M" }, - { 0x10DE06E0, "GeForce 9300 GE" }, - { 0x10DE06E1, "GeForce 9300 GS" }, - { 0x10DE06E4, "GeForce 8400 GS" }, - { 0x10DE06E5, "GeForce 9300M GS" }, - { 0x10DE06E6, "GeForce G100" }, - { 0x10DE06E8, "GeForce 9200M GS" }, - { 0x10DE06E9, "GeForce 9300M GS" }, - { 0x10DE06EA, "Quadro NVS 150M" }, - { 0x10DE06EB, "Quadro NVS 160M" }, - { 0x10DE06F8, "Quadro NVS 420" }, - { 0x10DE06F9, "Quadro FX 370 LP" }, - { 0x10DE06FA, "Quadro NVS 450" }, - { 0x10DE06FD, "Quadro NVS 295" }, - - {-1, NULL} -}; - #ifdef XFree86LOADER static MODULESETUPPROTO(nvSetup); @@ -736,40 +355,6 @@ NVIsG80(int chipType) return FALSE; } -static Bool -NVIsSupported(CARD32 id) -{ - /* look for a compatible devices which may be newer than - the NVKnownChipsets list above. */ - switch(id & 0xfff0) { - case 0x0040: - case 0x0090: - case 0x00C0: - case 0x0120: - case 0x0140: - case 0x0160: - case 0x0170: - case 0x0180: - case 0x01D0: - case 0x0210: - case 0x0220: - case 0x0240: - case 0x0250: - case 0x0280: - case 0x0290: - case 0x0300: - case 0x0310: - case 0x0320: - case 0x0330: - case 0x0340: - case 0x0390: - case 0x03D0: - return TRUE; - } - - return FALSE; -} - /* Mandatory */ #if XSERVER_LIBPCIACCESS static Bool @@ -780,21 +365,6 @@ NVPciProbe(DriverPtr drv, int entity, struct pci_device *dev, intptr_t data) NVGetPCIXpressChip(dev) : dev->vendor_id << 16 | dev->device_id; const char *name = xf86TokenToString(NVKnownChipsets, id); - if(dev->vendor_id == PCI_VENDOR_NVIDIA && !name && - !NVIsSupported(id) && !NVIsG80(id)) { - /* See if pci.ids knows what the heck this thing is */ - name = pci_device_get_device_name(dev); - if(name) - xf86DrvMsg(0, X_WARNING, - NV_NAME ": Ignoring unsupported device 0x%x (%s) at %2.2x@%2.2x:%2.2x:%1.1x\n", - id, name, dev->bus, dev->domain, dev->dev, dev->func); - else - xf86DrvMsg(0, X_WARNING, - NV_NAME ": Ignoring unsupported device 0x%x at %2.2x@%2.2x:%2.2x:%1.1x\n", - id, dev->bus, dev->domain, dev->dev, dev->func); - return FALSE; - } - if(!name) name = pci_device_get_device_name(dev); if(!name) @@ -855,16 +425,12 @@ NVProbe(DriverPtr drv, int flags) nvchips++; } - if(nvchips->name || - ((*ppPci)->vendor == PCI_VENDOR_NVIDIA && - (NVIsSupported(token) || NVIsG80((*ppPci)->chipType)))) { - NVChipsets[numUsed].token = pciid; - NVChipsets[numUsed].name = nvchips->name ? nvchips->name : "Unknown NVIDIA chip"; - NVPciChipsets[numUsed].numChipset = pciid; - NVPciChipsets[numUsed].PCIid = pciid; - NVPciChipsets[numUsed].resList = RES_SHARED_VGA; - numUsed++; - } + NVChipsets[numUsed].token = pciid; + NVChipsets[numUsed].name = nvchips->name ? nvchips->name : "Unknown NVIDIA chip"; + NVPciChipsets[numUsed].numChipset = pciid; + NVPciChipsets[numUsed].PCIid = pciid; + NVPciChipsets[numUsed].resList = RES_SHARED_VGA; + numUsed++; } ppPci++; } diff --git a/src/nvidia_chipset_gen.h b/src/nvidia_chipset_gen.h new file mode 100644 index 0000000..e69de29 diff --git a/src/nvidia_pci_device_match_gen.h b/src/nvidia_pci_device_match_gen.h new file mode 100644 index 0000000..e69de29 diff --git a/src/pcidb/nv_list.csv b/src/pcidb/nv_list.csv new file mode 100644 index 0000000..06dd95d --- /dev/null +++ b/src/pcidb/nv_list.csv @@ -0,0 +1,638 @@ +"#last updated 2009/05/15","","","" +"#vendor_id","device_id","special_case_data","Name" +"12D2","0018",," RIVA 128" +"10DE","0020",," RIVA TNT" +"10DE","0028",," RIVA TNT2" +"10DE","0029",," RIVA TNT2 Ultra" +"10DE","002A",," Unknown TNT2" +"10DE","002C",," Vanta" +"10DE","002D",," RIVA TNT2 Model 64" +"10DE","0040",," GeForce 6800 Ultra" +"10DE","0041",," GeForce 6800" +"10DE","0042",," GeForce 6800 LE" +"10DE","0043",," GeForce 6800 XE" +"10DE","0044",," GeForce 6800 XT" +"10DE","0045",," GeForce 6800 GT" +"10DE","0046",," GeForce 6800 GT" +"10DE","0047",," GeForce 6800 GS" +"10DE","0048",," GeForce 6800 XT" +"10DE","0049",, +"10DE","004A",, +"10DE","004B",, +"10DE","004C",, +"10DE","004D",, +"10DE","004E",," Quadro FX 4000" +"10DE","004F",, +"10DE","0090",," GeForce 7800 GTX" +"10DE","0091",," GeForce 7800 GTX" +"10DE","0092",," GeForce 7800 GT" +"10DE","0093",," GeForce 7800 GS" +"10DE","0094",, +"10DE","0095",," GeForce 7800 SLI" +"10DE","0096",, +"10DE","0097",, +"10DE","0098",," GeForce Go 7800" +"10DE","0099",," GeForce Go 7800 GTX" +"10DE","009A",, +"10DE","009B",, +"10DE","009C",, +"10DE","009D",," Quadro FX 4500" +"10DE","009E",, +"10DE","009F",, +"10DE","00A0",," Aladdin TNT2" +"10DE","00C0",," GeForce 6800 GS" +"10DE","00C1",," GeForce 6800" +"10DE","00C2",," GeForce 6800 LE" +"10DE","00C3",," GeForce 6800 XT" +"10DE","00C4",, +"10DE","00C5",, +"10DE","00C6",, +"10DE","00C7",, +"10DE","00C8",," GeForce Go 6800" +"10DE","00C9",," GeForce Go 6800 Ultra" +"10DE","00CA",, +"10DE","00CB",, +"10DE","00CC",," Quadro FX Go1400" +"10DE","00CD",," Quadro FX 3450/4000 SDI" +"10DE","00CE",," Quadro FX 1400" +"10DE","00CF",, +"10DE","0100",," GeForce 256" +"10DE","0101",," GeForce DDR" +"10DE","0103",," Quadro" +"10DE","0110",," GeForce2 MX/MX 400" +"10DE","0111",," GeForce2 MX 100/200" +"10DE","0112",," GeForce2 Go" +"10DE","0113",," Quadro2 MXR/EX/Go" +"10DE","0120",, +"10DE","0121",, +"10DE","0122",, +"10DE","0123",, +"10DE","0124",, +"10DE","0125",, +"10DE","0126",, +"10DE","0127",, +"10DE","0128",, +"10DE","0129",, +"10DE","012A",, +"10DE","012B",, +"10DE","012C",, +"10DE","012D",, +"10DE","012E",, +"10DE","012F",, +"10DE","0140",," GeForce 6600 GT" +"10DE","0141",," GeForce 6600" +"10DE","0142",," GeForce 6600 LE" +"10DE","0143",," GeForce 6600 VE" +"10DE","0144",," GeForce Go 6600" +"10DE","0145",," GeForce 6610 XL" +"10DE","0146",," GeForce Go 6600 TE/6200 TE" +"10DE","0147",," GeForce 6700 XL" +"10DE","0148",," GeForce Go 6600" +"10DE","0149",," GeForce Go 6600 GT" +"10DE","014A",," Quadro NVS 440" +"10DE","014B",, +"10DE","014C",," Quadro FX 550" +"10DE","014D",," Quadro FX 550" +"10DE","014E",," Quadro FX 540" +"10DE","014F",," GeForce 6200" +"10DE","0150",," GeForce2 GTS" +"10DE","0151",," GeForce2 Ti" +"10DE","0152",," GeForce2 Ultra" +"10DE","0153",," Quadro2 Pro" +"10DE","0160",," GeForce 6500" +"10DE","0161",," GeForce 6200 TurboCache(TM)" +"10DE","0162",," GeForce 6200SE TurboCache(TM)" +"10DE","0163",," GeForce 6200 LE" +"10DE","0164",," GeForce Go 6200" +"10DE","0165",," Quadro NVS 285" +"10DE","0166",," GeForce Go 6400" +"10DE","0167",," GeForce Go 6200" +"10DE","0168",," GeForce Go 6400" +"10DE","0169",," GeForce 6250" +"10DE","016A",," GeForce 7100 GS" +"10DE","016B",, +"10DE","016C",, +"10DE","016D",, +"10DE","016E",, +"10DE","016F",, +"10DE","0170",," GeForce4 MX 460" +"10DE","0171",," GeForce4 MX 440" +"10DE","0172",," GeForce4 MX 420" +"10DE","0173",," GeForce4 MX 440-SE" +"10DE","0174",," GeForce4 440 Go" +"10DE","0175",," GeForce4 420 Go" +"10DE","0176",," GeForce4 420 Go 32M" +"10DE","0177",," GeForce4 460 Go" +"10DE","0178",," Quadro4 550 XGL" +"10DE","0179","#if !defined(__powerpc__)"," GeForce4 440 Go 64M" +"10DE","0179","#if defined(__powerpc__)"," GeForce4 MX (Mac)" +"10DE","017A",," Quadro NVS" +"10DE","017B",, +"10DE","017C",," Quadro4 500 GoGL" +"10DE","017D",," GeForce4 410 Go 16M" +"10DE","017E",, +"10DE","017F",, +"10DE","0180",, +"10DE","0181",," GeForce4 MX 440 with AGP8X" +"10DE","0182",," GeForce4 MX 440SE with AGP8X" +"10DE","0183",," GeForce4 MX 420 with AGP8X" +"10DE","0184",, +"10DE","0185",," GeForce4 MX 4000" +"10DE","0186",," GeForce4 448 Go" +"10DE","0187",," GeForce4 488 Go" +"10DE","0188",," Quadro4 580 XGL" +"10DE","0189","#if defined(__powerpc__)"," GeForce4 MX with AGP8X (Mac)" +"10DE","018A",," Quadro4 NVS 280 SD" +"10DE","018B",," Quadro4 380 XGL" +"10DE","018C",," Quadro NVS 50 PCI" +"10DE","018D",," GeForce4 448 Go" +"10DE","018E",, +"10DE","018F",, +"10DE","0190",, +"10DE","0191",," GeForce 8800 GTX" +"10DE","0192",, +"10DE","0193",," GeForce 8800 GTS" +"10DE","0194",," GeForce 8800 Ultra" +"10DE","0194",, +"10DE","0195",, +"10DE","0196",, +"10DE","0197",, +"10DE","0198",, +"10DE","0199",, +"10DE","019A",, +"10DE","019B",, +"10DE","019C",, +"10DE","019D",," Quadro FX 5600" +"10DE","019D",, +"10DE","019E",, +"10DE","019E",," Quadro FX 4600" +"10DE","019F",, +"10DE","01A0",," GeForce2 Integrated GPU" +"10DE","01D0",," GeForce 7350 LE" +"10DE","01D1",," GeForce 7300 LE" +"10DE","01D2",, +"10DE","01D3",," GeForce 7300 SE" +"10DE","01D4",, +"10DE","01D5",, +"10DE","01D6",," GeForce Go 7200" +"10DE","01D7",," GeForce Go 7300" +"10DE","01D8",," GeForce Go 7400" +"10DE","01D9",," GeForce Go 7400 GS" +"10DE","01DA",," Quadro NVS 110M" +"10DE","01DB",," Quadro NVS 120M" +"10DE","01DC",," Quadro FX 350M" +"10DE","01DD",," GeForce 7500 LE" +"10DE","01DE",," Quadro FX 350" +"10DE","01DF",," GeForce 7300 GS" +"10DE","01F0",," GeForce4 MX Integrated GPU" +"10DE","0200",," GeForce3" +"10DE","0201",," GeForce3 Ti 200" +"10DE","0202",," GeForce3 Ti 500" +"10DE","0203",," Quadro DCC" +"10DE","0210",, +"10DE","0211",," GeForce 6800" +"10DE","0212",," GeForce 6800 LE" +"10DE","0213",, +"10DE","0214",, +"10DE","0215",," GeForce 6800 GT" +"10DE","0216",, +"10DE","0217",, +"10DE","0218",," GeForce 6800 XT" +"10DE","0219",, +"10DE","021A",, +"10DE","021B",, +"10DE","021C",, +"10DE","021D",, +"10DE","021E",, +"10DE","021F",, +"10DE","0220",, +"10DE","0221",," GeForce 6200" +"10DE","0222",," GeForce 6200 A-LE" +"10DE","0223",, +"10DE","0224",, +"10DE","0225",, +"10DE","0226",, +"10DE","0227",, +"10DE","0228",, +"10DE","0229",, +"10DE","022A",, +"10DE","022B",, +"10DE","022C",, +"10DE","022D",, +"10DE","022E",, +"10DE","022F",, +"10DE","0240",," GeForce 6150" +"10DE","0241",," GeForce 6150 LE" +"10DE","0242",," GeForce 6100" +"10DE","0243",, +"10DE","0244",," GeForce Go 6150" +"10DE","0245",," Quadro NVS 210S / NVIDIA GeForce 6150LE" +"10DE","0246",, +"10DE","0247",," GeForce Go 6100" +"10DE","0248",, +"10DE","0249",, +"10DE","024A",, +"10DE","024B",, +"10DE","024C",, +"10DE","024D",, +"10DE","024E",, +"10DE","024F",, +"10DE","0250",," GeForce4 Ti 4600" +"10DE","0251",," GeForce4 Ti 4400" +"10DE","0252",, +"10DE","0253",," GeForce4 Ti 4200" +"10DE","0254",, +"10DE","0255",, +"10DE","0256",, +"10DE","0257",, +"10DE","0258",," Quadro4 900 XGL" +"10DE","0259",," Quadro4 750 XGL" +"10DE","025A",, +"10DE","025B",," Quadro4 700 XGL" +"10DE","025C",, +"10DE","025D",, +"10DE","025E",, +"10DE","025F",, +"10DE","0280",," GeForce4 Ti 4800" +"10DE","0281",," GeForce4 Ti 4200 with AGP8X" +"10DE","0282",," GeForce4 Ti 4800 SE" +"10DE","0283",, +"10DE","0284",, +"10DE","0285",, +"10DE","0286",," GeForce4 4200 Go" +"10DE","0287",, +"10DE","0288",," Quadro4 980 XGL" +"10DE","0289",," Quadro4 780 XGL" +"10DE","028A",, +"10DE","028B",, +"10DE","028C",," Quadro4 700 GoGL" +"10DE","028D",, +"10DE","028E",, +"10DE","028F",, +"10DE","0290",," GeForce 7900 GTX" +"10DE","0291",," GeForce 7900 GT" +"10DE","0292",," GeForce 7900 GS" +"10DE","0293",," GeForce 7950 GX2" +"10DE","0294",," GeForce 7950 GX2" +"10DE","0295",," GeForce 7950 GT}" +"10DE","0296",, +"10DE","0297",," GeForce Go 7950 GTX" +"10DE","0298",," GeForce Go 7900 GS" +"10DE","0299",," GeForce Go 7900 GTX" +"10DE","029A",," Quadro FX 2500M" +"10DE","029B",," Quadro FX 1500M" +"10DE","029C",," Quadro FX 5500" +"10DE","029D",," Quadro FX 3500" +"10DE","029E",," Quadro FX 1500" +"10DE","029F",," Quadro FX 4500 X2" +"10DE","0300",, +"10DE","0301",," GeForce FX 5800 Ultra" +"10DE","0302",," GeForce FX 5800" +"10DE","0303",, +"10DE","0304",, +"10DE","0305",, +"10DE","0306",, +"10DE","0307",, +"10DE","0308",," Quadro FX 2000" +"10DE","0309",," Quadro FX 1000" +"10DE","030A",, +"10DE","030B",, +"10DE","030C",, +"10DE","030D",, +"10DE","030E",, +"10DE","030F",, +"10DE","0310",, +"10DE","0311",," GeForce FX 5600 Ultra" +"10DE","0312",," GeForce FX 5600" +"10DE","0313",, +"10DE","0314",," GeForce FX 560T" +"10DE","0315",, +"10DE","0316",, +"10DE","0317",, +"10DE","0318",, +"10DE","0319",, +"10DE","031A",," GeForce FX Go5600" +"10DE","031B",," GeForce FX Go5650" +"10DE","031C",," Quadro FX Go700" +"10DE","031D",, +"10DE","031E",, +"10DE","031F",, +"10DE","0320",," GeForce FX 5200" +"10DE","0321",," GeForce FX 5200 Ultra" +"10DE","0322",," GeForce FX 5200" +"10DE","0323",," GeForce FX 5200LE" +"10DE","0324",," GeForce FX Go5200" +"10DE","0325",," GeForce FX Go5250" +"10DE","0326",," GeForce FX 5500" +"10DE","0327",," GeForce FX 5100" +"10DE","0328",," GeForce FX Go5200 32M/64M" +"10DE","0329","#if defined(__powerpc__)"," GeForce FX 5200 (Mac)" +"10DE","032A",," Quadro NVS 55/280 PCI" +"10DE","032B",," Quadro FX 500/600 PCI" +"10DE","032C",," GeForce FX Go53xx Series" +"10DE","032D",," GeForce FX Go5100" +"10DE","032E",, +"10DE","032F",, +"10DE","0330",," GeForce FX 5900 Ultra" +"10DE","0331",," GeForce FX 5900" +"10DE","0332",," GeForce FX 590T" +"10DE","0333",," GeForce FX 5950 Ultra" +"10DE","0334",," GeForce FX 5900ZT" +"10DE","0335",, +"10DE","0336",, +"10DE","0337",, +"10DE","0338",," Quadro FX 3000" +"10DE","0339",, +"10DE","033A",, +"10DE","033B",, +"10DE","033C",, +"10DE","033D",, +"10DE","033E",, +"10DE","033F",," Quadro FX 700" +"10DE","0340",, +"10DE","0341",," GeForce FX 5700 Ultra" +"10DE","0342",," GeForce FX 5700" +"10DE","0343",," GeForce FX 5700LE" +"10DE","0344",," GeForce FX 5700VE" +"10DE","0345",, +"10DE","0346",, +"10DE","0347",," GeForce FX Go5700" +"10DE","0348",," GeForce FX Go5700" +"10DE","0349",, +"10DE","034A",, +"10DE","034B",, +"10DE","034C",," Quadro FX Go1000" +"10DE","034D",, +"10DE","034E",," Quadro FX 1100" +"10DE","034F",, +"10DE","0390",," GeForce 7650 GS" +"10DE","0391",," GeForce 7600 GT" +"10DE","0392",," GeForce 7600 GS" +"10DE","0393",," GeForce 7300 GT" +"10DE","0394",," GeForce 7600 LE" +"10DE","0395",," GeForce 7300 GT" +"10DE","0396",, +"10DE","0397",," GeForce Go 7700" +"10DE","0398",," GeForce Go 7600" +"10DE","0399",," GeForce Go 7600 GT}" +"10DE","039A",," Quadro NVS 300M" +"10DE","039B",," GeForce Go 7900 SE" +"10DE","039C",," Quadro FX 550M" +"10DE","039D",, +"10DE","039E",," Quadro FX 560" +"10DE","039F",, +"10DE","03D0",," GeForce 6150SE" +"10DE","03D1",," GeForce 6100 nForce 405" +"10DE","03D2",," GeForce 6100 nForce 400" +"10DE","03D3",, +"10DE","03D4",, +"10DE","03D5",," GeForce 6100 nForce 420" +"10DE","03D6",, +"10DE","03D7",, +"10DE","03D8",, +"10DE","03D9",, +"10DE","03DA",, +"10DE","03DB",, +"10DE","03DC",, +"10DE","03DD",, +"10DE","03DE",, +"10DE","03DF",, +"10DE","0400",," GeForce 8600 GTS" +"10DE","0401",," GeForce 8600 GT" +"10DE","0402",," GeForce 8600 GT" +"10DE","0403",," GeForce 8600 GS" +"10DE","0404",," GeForce 8400 GS" +"10DE","0405",," GeForce 9500M GS" +"10DE","0406",, +"10DE","0407",," GeForce 8600M GT" +"10DE","0408",," GeForce 9650M GS" +"10DE","0409",," GeForce 8700M GT" +"10DE","040A",," Quadro FX 370" +"10DE","040B",," Quadro NVS 320M" +"10DE","040C",," Quadro FX 570M" +"10DE","040D",," Quadro FX 1600M" +"10DE","040E",," Quadro FX 570" +"10DE","040F",," Quadro FX 1700" +"10DE","0420",," GeForce 8400 SE" +"10DE","0421",," GeForce 8500 GT" +"10DE","0422",," GeForce 8400 GS" +"10DE","0423",," GeForce 8300 GS" +"10DE","0424",," GeForce 8400 GS" +"10DE","0425",," GeForce 8600M GS" +"10DE","0426",," GeForce 8400M GT" +"10DE","0427",," GeForce 8400M GS" +"10DE","0428",," GeForce 8400M G" +"10DE","0429",," Quadro NVS 140M" +"10DE","042A",," Quadro NVS 130M" +"10DE","042B",," Quadro NVS 135M" +"10DE","042C",," GeForce 9400 GT" +"10DE","042D",," Quadro FX 360M" +"10DE","042E",," GeForce 9300M G" +"10DE","042F",," Quadro NVS 290" +"10DE","05E0",," GeForce GTX 295" +"10DE","05E1",," GeForce GTX 280" +"10DE","05E2",," GeForce GTX 260" +"10DE","05E3",," GeForce GTX 285" +"10DE","05E4",, +"10DE","05E5",, +"10DE","05E6",, +"10DE","05E7",, +"10DE","05E8",, +"10DE","05E9",, +"10DE","05EA",, +"10DE","05EB",, +"10DE","05EC",, +"10DE","05ED",, +"10DE","05EE",, +"10DE","05EF",, +"10DE","05F0",, +"10DE","05F1",, +"10DE","05F2",, +"10DE","05F3",, +"10DE","05F4",, +"10DE","05F5",, +"10DE","05F6",, +"10DE","05F7",, +"10DE","05F8",, +"10DE","05F9",," Quadro CX" +"10DE","05FA",, +"10DE","05FB",, +"10DE","05FC",, +"10DE","05FD",," Quadro FX 5800" +"10DE","05FE",," Quadro FX 4800" +"10DE","05FF",," Quadro FX 3800" +"10DE","0600",," GeForce 8800 GTS 512" +"10DE","0601",," GeForce 9800 GT" +"10DE","0602",," GeForce 8800 GT" +"10DE","0603",, +"10DE","0604",," GeForce 9800 GX2" +"10DE","0605",," GeForce 9800 GT" +"10DE","0606",," GeForce 8800 GS" +"10DE","0607",, +"10DE","0608",," GeForce 9800M GTX" +"10DE","0609",," GeForce 8800M GTS" +"10DE","060A",, +"10DE","060B",," GeForce 9800M GT" +"10DE","060C",," GeForce 8800M GTX" +"10DE","060D",," GeForce 8800 GS" +"10DE","060E",, +"10DE","060F",, +"10DE","0610",," GeForce 9600 GSO" +"10DE","0611",," GeForce 8800 GT" +"10DE","0612",," GeForce 9800 GTX" +"10DE","0613",," GeForce 9800 GTX+" +"10DE","0614",," GeForce 9800 GT" +"10DE","0615",," GeForce GTS 250" +"10DE","0617",," GeForce 9800M GTX" +"10DE","0618",, +"10DE","0619",, +"10DE","061A",," Quadro FX 3700" +"10DE","061B",, +"10DE","061C",," Quadro FX 3600M" +"10DE","061D",, +"10DE","061E",," Quadro FX 3700M" +"10DE","061F",, +"10DE","0620",, +"10DE","0621",, +"10DE","0622",," GeForce 9600 GT" +"10DE","0623",," GeForce 9600 GS" +"10DE","0624",, +"10DE","0625",," GeForce 9600 GSO 512" +"10DE","0626",," GeForce GT 130" +"10DE","0627",," GeForce GT 140" +"10DE","0628",," GeForce 9800M GTS" +"10DE","0629",, +"10DE","062A",," GeForce 9700M GTS" +"10DE","062B",," GeForce 9800M GS" +"10DE","062C",," GeForce 9800M GTS" +"10DE","062D",, +"10DE","062E",, +"10DE","062F",, +"10DE","0630",, +"10DE","0631",, +"10DE","0632",, +"10DE","0633",, +"10DE","0634",, +"10DE","0635",, +"10DE","0636",, +"10DE","0637",, +"10DE","0638",," Quadro FX 1800" +"10DE","0639",, +"10DE","063A",," Quadro FX 2700M" +"10DE","063B",, +"10DE","063C",, +"10DE","063D",, +"10DE","063E",, +"10DE","063F",, +"10DE","0640",," GeForce 9500 GT" +"10DE","0641",," GeForce 9400 GT" +"10DE","0642",, +"10DE","0643",," GeForce 9500 GT" +"10DE","0644",, +"10DE","0645",, +"10DE","0646",," GeForce GT 120" +"10DE","0647",," GeForce 9600M GT" +"10DE","0648",," GeForce 9600M GS" +"10DE","0649",," GeForce 9600M GT" +"10DE","064A",," GeForce 9700M GT" +"10DE","064B",," GeForce 9500M G" +"10DE","064C",," GeForce 9650M GT" +"10DE","064D",, +"10DE","064E",, +"10DE","064F",, +"10DE","0650",, +"10DE","0651",, +"10DE","0652",, +"10DE","0653",, +"10DE","0654",, +"10DE","0655",, +"10DE","0656",," GeForce 9500 GT" +"10DE","0657",, +"10DE","0658",," Quadro FX 380" +"10DE","0659",," Quadro FX 580" +"10DE","065A",, +"10DE","065B",, +"10DE","065C",," Quadro FX 770M" +"10DE","065D",, +"10DE","065E",, +"10DE","065F",, +"10DE","06E0",," GeForce 9300 GE" +"10DE","06E1",," GeForce 9300 GS" +"10DE","06E2",, +"10DE","06E3",, +"10DE","06E4",," GeForce 8400 GS" +"10DE","06E5",," GeForce 9300M GS" +"10DE","06E6",," GeForce G100" +"10DE","06E7",, +"10DE","06E8",," GeForce 9200M GS" +"10DE","06E9",," GeForce 9300M GS" +"10DE","06EA",," Quadro NVS 150M" +"10DE","06EB",," Quadro NVS 160M" +"10DE","06EC",, +"10DE","06ED",, +"10DE","06EE",, +"10DE","06EF",, +"10DE","06F0",, +"10DE","06F1",, +"10DE","06F2",, +"10DE","06F3",, +"10DE","06F4",, +"10DE","06F5",, +"10DE","06F6",, +"10DE","06F7",, +"10DE","06F8",," Quadro NVS 420" +"10DE","06F9",," Quadro FX 370 LP" +"10DE","06FA",," Quadro NVS 450" +"10DE","06FB",, +"10DE","06FC",, +"10DE","06FD",," Quadro NVS 295" +"10DE","06FE",, +"10DE","06FF",, +"10DE","0A60",, +"10DE","0A61",, +"10DE","0A62",, +"10DE","0A63",, +"10DE","0A64",, +"10DE","0A65",, +"10DE","0A66",, +"10DE","0A67",, +"10DE","0A68",, +"10DE","0A69",, +"10DE","0A6A",, +"10DE","0A6B",, +"10DE","0A6C",, +"10DE","0A6D",, +"10DE","0A6E",, +"10DE","0A6F",, +"10DE","0A70",, +"10DE","0A71",, +"10DE","0A72",, +"10DE","0A73",, +"10DE","0A74",, +"10DE","0A75",, +"10DE","0A76",, +"10DE","0A77",, +"10DE","0A78",, +"10DE","0A79",, +"10DE","0A7A",, +"10DE","0A7B",, +"10DE","0A7C",, +"10DE","0A7D",, +"10DE","0A7E",, +"10DE","0A7F",, +"10DE","0CA0",, +"10DE","0CA1",, +"10DE","0CA2",, +"10DE","0CA3",, +"10DE","0CA4",, +"10DE","0CA5",, +"10DE","0CA6",, +"10DE","0CA7",, +"10DE","0CA8",, +"10DE","0CA9",, +"10DE","0CAA",, +"10DE","0CAB",, +"10DE","0CAC",, +"10DE","0CAD",, +"10DE","0CAE",, +"10DE","0CAF",, diff --git a/src/pcidb/parse_pci_ids.pl b/src/pcidb/parse_pci_ids.pl new file mode 100755 index 0000000..4afe4f2 --- /dev/null +++ b/src/pcidb/parse_pci_ids.pl @@ -0,0 +1,82 @@ +#!/usr/bin/perl +# +# Copyright 2007 Red Hat Inc. +# This crappy script written by Dave Airlie to avoid hassle of adding +# ids in every place. +# +# Modified by Mario Limonciello to handle nv +# +use strict; +use warnings; +use Text::CSV_XS; + +my $file = $ARGV[0]; + +my $nvidiapcidevicematchfile = 'nvidia_pci_device_match_gen.h'; +my $nvidiachipsetfile = 'nvidia_chipset_gen.h'; + +my $csv = Text::CSV_XS->new(); + +open (CSV, "<", $file) or die $!; + +open (PCIDEVICEMATCH, ">", $nvidiapcidevicematchfile) or die; +open (NVIDIACHIPSET, ">", $nvidiachipsetfile) or die; + +print NVIDIACHIPSET "/* This file is autogenerated please do not edit */\n"; +print NVIDIACHIPSET "static SymTabRec NVKnownChipsets[] = {\n"; + +print PCIDEVICEMATCH "/* This file is autogenerated please do not edit */\n"; + +print PCIDEVICEMATCH "#if XSERVER_LIBPCIACCESS\n"; +print PCIDEVICEMATCH "#define LIBPCIACCESS_CLASS_SHIFT (PCI_CLASS_SHIFT - 8)\n"; +print PCIDEVICEMATCH "#define LIBPCIACCESS_CLASS_MASK (PCI_CLASS_MASK >> 8)\n"; + +print PCIDEVICEMATCH "#define NVIDIA_DEVICE_MATCH(v, d, i) \\\n"; +print PCIDEVICEMATCH " { (v), (d), PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_CLASS_DISPLAY << LIBPCIACCESS_CLASS_SHIFT, LIBPCIACCESS_CLASS_MASK, (i) }\n"; + +print PCIDEVICEMATCH "static const struct pci_id_match NVPciIdMatchList[] = {\n"; + +while () { + if ($csv->parse($_)) { + my @columns = $csv->fields(); + + if ((substr($columns[0], 0, 1) ne "#")) { + + #for special case + if ($columns[2] ne "") { + print NVIDIACHIPSET "$columns[2]\n"; + print PCIDEVICEMATCH "$columns[2]\n"; + } + + if ($columns[0] eq "12D2") { + print PCIDEVICEMATCH " NVIDIA_DEVICE_MATCH( PCI_VENDOR_NVIDIA_SGS, 0x$columns[1], 0 ),\n"; + } + + if ($columns[0] eq "10DE") { + print PCIDEVICEMATCH " NVIDIA_DEVICE_MATCH( PCI_VENDOR_NVIDIA, 0x$columns[1], 0 ),\n"; + } + + if ($columns[3] ne "") { + print NVIDIACHIPSET " { 0x$columns[0]$columns[1], \"$columns[3]\" },\n"; + } + + #for special case + if ($columns[2] ne "") { + print NVIDIACHIPSET "#endif\n"; + print PCIDEVICEMATCH "#endif\n"; + } + + + } + } else { + my $err = $csv->error_input; + print "Failed to parse line: $err"; + } +} + +print NVIDIACHIPSET " { -1, NULL }\n};\n"; +print PCIDEVICEMATCH " { 0, 0, 0 }\n};\n"; +print PCIDEVICEMATCH "#endif\n"; +close CSV; +close PCIDEVICEMATCH; +close NVIDIACHIPSET; -- 1.6.0.4