diff options
Diffstat (limited to 'src/nv_driver.c')
-rw-r--r-- | src/nv_driver.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/src/nv_driver.c b/src/nv_driver.c index 831e90b..faf73a9 100644 --- a/src/nv_driver.c +++ b/src/nv_driver.c @@ -77,11 +77,22 @@ static Bool NVModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode); static Bool NVSetModeVBE(ScrnInfoPtr pScrn, DisplayModePtr pMode); #if XSERVER_LIBPCIACCESS -/* For now, just match any NVIDIA PCI device and sort through them in the probe - * routine */ +/* 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, 0, 0, 0 }, - { PCI_VENDOR_NVIDIA_SGS, PCI_MATCH_ANY, PCI_MATCH_ANY, PCI_MATCH_ANY, 0, 0, 0}, + { 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 |