summaryrefslogtreecommitdiff
path: root/x11-drivers
diff options
context:
space:
mode:
authorRobert Noland <rnoland@FreeBSD.org>2009-03-01 18:22:02 +0000
committerRobert Noland <rnoland@FreeBSD.org>2009-03-01 18:22:02 +0000
commit80af950d5c0dd7cbfc93e1b2d8d9a1220dc8f774 (patch)
tree41e771b0d162b8d7675a7b9ce57fa04f78938b34 /x11-drivers
parentUodate to 2.7.6. (diff)
The nv driver was somewhat brain-damaged, it was detecting most all
of the devices on the system as possible video devices. Pull in a patch from git to at least try to address this.
Notes
Notes: svn path=/head/; revision=229288
Diffstat (limited to 'x11-drivers')
-rw-r--r--x11-drivers/xf86-video-nv/Makefile2
-rw-r--r--x11-drivers/xf86-video-nv/files/patch-src-g80_driver.c16
-rw-r--r--x11-drivers/xf86-video-nv/files/patch-src-nv_driver.c29
3 files changed, 46 insertions, 1 deletions
diff --git a/x11-drivers/xf86-video-nv/Makefile b/x11-drivers/xf86-video-nv/Makefile
index 9562642c1965..fb958ef82124 100644
--- a/x11-drivers/xf86-video-nv/Makefile
+++ b/x11-drivers/xf86-video-nv/Makefile
@@ -7,7 +7,7 @@
PORTNAME= xf86-video-nv
PORTVERSION= 2.1.12
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= x11-drivers
MAINTAINER= x11@FreeBSD.org
diff --git a/x11-drivers/xf86-video-nv/files/patch-src-g80_driver.c b/x11-drivers/xf86-video-nv/files/patch-src-g80_driver.c
new file mode 100644
index 000000000000..1a1f88f6ba25
--- /dev/null
+++ b/x11-drivers/xf86-video-nv/files/patch-src-g80_driver.c
@@ -0,0 +1,16 @@
+--- src/g80_driver.c.orig 2008-08-04 17:08:54.000000000 -0500
++++ src/g80_driver.c 2009-02-28 20:24:36.000000000 -0600
+@@ -206,11 +206,8 @@
+ CARD32 tmp;
+ memType BAR1sizeKB;
+
+- if(flags & PROBE_DETECT) {
+- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+- "G80 PROBE_DETECT unimplemented\n");
+- return FALSE;
+- }
++ if(flags & PROBE_DETECT)
++ return TRUE;
+
+ /* Check the number of entities, and fail if it isn't one. */
+ if(pScrn->numEntities != 1)
diff --git a/x11-drivers/xf86-video-nv/files/patch-src-nv_driver.c b/x11-drivers/xf86-video-nv/files/patch-src-nv_driver.c
new file mode 100644
index 000000000000..87261c525dab
--- /dev/null
+++ b/x11-drivers/xf86-video-nv/files/patch-src-nv_driver.c
@@ -0,0 +1,29 @@
+--- src/nv_driver.c.orig 2008-08-26 15:46:19.000000000 -0500
++++ src/nv_driver.c 2009-02-28 20:24:36.000000000 -0600
+@@ -77,11 +77,22 @@
+ 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