debian/changelog               |    6 ++
 debian/patches/15-nouveau.diff |  109 +++++++++++++++++++++++++++++++++++++++++
 debian/patches/series          |    1 
 3 files changed, 116 insertions(+)

New commits:
commit 376d4887ef9ae28bd5bb7e2d6d56f992e9dab048
Author: Julien Cristau <jcris...@debian.org>
Date:   Fri May 7 17:13:37 2010 +0200

    autoconfig: load the nouveau driver for nvidia hw.
    
    Stolen from F13.

diff --git a/debian/changelog b/debian/changelog
index cad2801..0d51ed1 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xorg-server (2:1.7.7-2) UNRELEASED; urgency=low
+
+  * autoconfig: load the nouveau driver for nvidia hw.  Stolen from F13.
+
+ -- Julien Cristau <jcris...@debian.org>  Fri, 07 May 2010 17:03:15 +0200
+
 xorg-server (2:1.7.7-1) unstable; urgency=low
 
   [ Timo Aaltonen ]
diff --git a/debian/patches/15-nouveau.diff b/debian/patches/15-nouveau.diff
new file mode 100644
index 0000000..35a1ff9
--- /dev/null
+++ b/debian/patches/15-nouveau.diff
@@ -0,0 +1,109 @@
+From a685b5cf34532cef96fc9b05f735088ac0c0c7ad Mon Sep 17 00:00:00 2001
+From: Fedora X Ninjas <x...@fedoraproject.org>
+Date: Tue, 16 Feb 2010 11:38:17 +1000
+Subject: [PATCH 08/17] autoconfig: select nouveau by default for NVIDIA GPUs
+
+Also, don't treat DRI setup failure as an error for nouveau.
+---
+ glx/glxdri.c                       |    7 +++++--
+ glx/glxdri2.c                      |    7 +++++--
+ hw/xfree86/common/xf86AutoConfig.c |   19 ++++++++++++++++++-
+ 3 files changed, 28 insertions(+), 5 deletions(-)
+
+diff --git a/glx/glxdri.c b/glx/glxdri.c
+index 21e44d1..30b820c 100644
+--- a/glx/glxdri.c
++++ b/glx/glxdri.c
+@@ -968,6 +968,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
+     const __DRIconfig **driConfigs;
+     const __DRIextension **extensions;
+     int i;
++    int from = X_ERROR;
+ 
+     if (!xf86LoaderCheckSymbol("DRIQueryDirectRenderingCapable") ||
+       !DRIQueryDirectRenderingCapable(pScreen, &isCapable) ||
+@@ -1047,7 +1048,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
+ 
+     screen->driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL);
+     if (screen->driver == NULL) {
+-      LogMessage(X_ERROR, "AIGLX error: dlopen of %s failed (%s)\n",
++      if (!strcmp(driverName, "nouveau"))
++          from = X_INFO;
++      LogMessage(from, "AIGLX error: dlopen of %s failed (%s)\n",
+                  filename, dlerror());
+         goto handle_error;
+     }
+@@ -1184,7 +1187,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
+ 
+     xfree(screen);
+ 
+-    LogMessage(X_ERROR, "AIGLX: reverting to software rendering\n");
++    LogMessage(from, "AIGLX: reverting to software rendering\n");
+ 
+     return NULL;
+ }
+diff --git a/glx/glxdri2.c b/glx/glxdri2.c
+index 0f998de..a244809 100644
+--- a/glx/glxdri2.c
++++ b/glx/glxdri2.c
+@@ -676,6 +676,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
+     const __DRIextension **extensions;
+     const __DRIconfig **driConfigs;
+     int i;
++    int from = X_ERROR;
+ 
+     screen = xcalloc(1, sizeof *screen);
+     if (screen == NULL)
+@@ -702,7 +703,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
+ 
+     screen->driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL);
+     if (screen->driver == NULL) {
+-      LogMessage(X_ERROR, "AIGLX error: dlopen of %s failed (%s)\n",
++      if (!strcmp(driverName, "nouveau"))
++          from = X_INFO;
++      LogMessage(from, "AIGLX error: dlopen of %s failed (%s)\n",
+                  filename, dlerror());
+         goto handle_error;
+     }
+@@ -793,7 +796,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
+ 
+     xfree(screen);
+ 
+-    LogMessage(X_ERROR, "AIGLX: reverting to software rendering\n");
++    LogMessage(from, "AIGLX: reverting to software rendering\n");
+ 
+     return NULL;
+ }
+diff --git a/hw/xfree86/common/xf86AutoConfig.c 
b/hw/xfree86/common/xf86AutoConfig.c
+index 7f4ada8..d964c6c 100644
+--- a/hw/xfree86/common/xf86AutoConfig.c
++++ b/hw/xfree86/common/xf86AutoConfig.c
+@@ -192,7 +192,24 @@ videoPtrToDriverList(struct pci_device *dev,
+           break;
+       case 0x102b:                driverList[0] = "mga";      break;
+       case 0x10c8:                driverList[0] = "neomagic"; break;
+-      case 0x10de: case 0x12d2:   driverList[0] = "nv";       break;
++      case 0x10de: case 0x12d2:
++          switch (dev->device_id) {
++          /* NV1 */
++          case 0x0008:
++          case 0x0009:
++              driverList[0] = "vesa";
++              break;
++          /* NV3 */
++          case 0x0018:
++          case 0x0019:
++              driverList[0] = "nv";
++              break;
++          default:
++              driverList[0] = "nouveau";
++              driverList[1] = "nv";
++              break;
++          }
++          break;
+       case 0x1106:                driverList[0] = "openchrome"; break;
+         case 0x1b36:              driverList[0] = "qxl"; break;
+       case 0x1163:                driverList[0] = "rendition"; break;
+-- 
+1.6.5.2
+
diff --git a/debian/patches/series b/debian/patches/series
index 357b9db..d2d315c 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -13,6 +13,7 @@
 12-xfree86-dont-complain-about-missing-coredevices.diff
 13-unbreak-input-abi.diff
 14-tone-down-nidr-errors.diff
+15-nouveau.diff
 16-xaa-fbcomposite-fix-negative-size.diff
 17-xfree86-saner-conf-search-paths.diff
 18-Add-10-evdev.conf.diff


-- 
To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/e1oapg9-0001or...@alioth.debian.org

Reply via email to