diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 8e34638..52c3a88 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -19,7 +19,7 @@ Summary: X.Org X11 X server Name: xorg-x11-server Version: 1.6.99 -Release: 4.%{gitdate}%{?dist} +Release: 5.%{gitdate}%{?dist} URL: http://www.x.org License: MIT Group: User Interface/X @@ -77,7 +77,7 @@ Patch6011: xserver-1.6.0-less-acpi-brokenness.patch #Patch6014: xserver-1.6.0-selinux-nlfd.patch # Make autoconfiguration chose nouveau driver for NVIDIA GPUs -Patch6016: xserver-1.5.99.902-nouveau.patch +Patch6016: xserver-1.6.1-nouveau.patch Patch6022: xserver-1.6.0-primary.patch @@ -525,6 +525,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Tue Jun 23 2009 Ben Skeggs 1.6.99-5.20090618 +- update nouveau autoconfig patch from F11 + * Mon Jun 22 2009 Peter Hutterer 1.6.99-4.20090618 - move libxf86config.so to devel package, libxf86config.so.* stays in the Xorg package. diff --git a/xserver-1.5.99.902-nouveau.patch b/xserver-1.5.99.902-nouveau.patch deleted file mode 100644 index eefe561..0000000 --- a/xserver-1.5.99.902-nouveau.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 16590f427347f68f7fbee5492833b3feade00c18 Mon Sep 17 00:00:00 2001 -From: Fedora X Ninjas -Date: Thu, 18 Jun 2009 13:45:57 +1000 -Subject: [PATCH] autoconfig: select nouveau by default for NVIDIA GPUs - ---- - hw/xfree86/common/xf86AutoConfig.c | 14 +++++++++++++- - 1 files changed, 13 insertions(+), 1 deletions(-) - -diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c -index ada1ca5..abcedde 100644 ---- a/hw/xfree86/common/xf86AutoConfig.c -+++ b/hw/xfree86/common/xf86AutoConfig.c -@@ -181,7 +181,19 @@ 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: -+ switch (dev->device_id & 0xfff0) { -+ /* Non-functional with both nouveau and nv */ -+ case 0x0840: -+ case 0x0860: -+ driverList[0] = "vesa"; -+ break; -+ default: -+ driverList[0] = "nouveau"; -+ break; -+ } -+ break; -+ case 0x12d2: driverList[0] = "nv"; break; - case 0x1106: driverList[0] = "openchrome"; break; - case 0x1163: driverList[0] = "rendition"; break; - case 0x5333: --- -1.6.3.rc1.2.g0164.dirty - diff --git a/xserver-1.6.1-nouveau.patch b/xserver-1.6.1-nouveau.patch new file mode 100644 index 0000000..6b1110e --- /dev/null +++ b/xserver-1.6.1-nouveau.patch @@ -0,0 +1,117 @@ +From b3872657c551d884141196cb098f53d3c01d1d3d Mon Sep 17 00:00:00 2001 +From: Fedora X Ninjas +Date: Tue, 23 Jun 2009 13:52:23 +1000 +Subject: [PATCH] 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 | 27 ++++++++++++++++++++++++++- + 3 files changed, 36 insertions(+), 5 deletions(-) + +diff --git a/glx/glxdri.c b/glx/glxdri.c +index 5fb75a4..45c79c9 100644 +--- a/glx/glxdri.c ++++ b/glx/glxdri.c +@@ -967,6 +967,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen) + const __DRIconfig **driConfigs; + const __DRIextension **extensions; + int i; ++ int from = X_ERROR; + + if (!xf86LoaderCheckSymbol("DRIQueryDirectRenderingCapable") || + !DRIQueryDirectRenderingCapable(pScreen, &isCapable) || +@@ -1046,7 +1047,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; + } +@@ -1183,7 +1186,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 529b2df..ff4490b 100644 +--- a/glx/glxdri2.c ++++ b/glx/glxdri2.c +@@ -587,6 +587,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen) + const __DRIextension **extensions; + const __DRIconfig **driConfigs; + int i; ++ int from = X_ERROR; + + screen = xcalloc(1, sizeof *screen); + if (screen == NULL) +@@ -613,7 +614,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; + } +@@ -692,7 +695,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 bc4c80b..d8fa80f 100644 +--- a/hw/xfree86/common/xf86AutoConfig.c ++++ b/hw/xfree86/common/xf86AutoConfig.c +@@ -180,7 +180,32 @@ 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: ++ switch (dev->device_id & 0xfff0) { ++ /* Non-functional with both nouveau and nv */ ++ case 0x0840: ++ case 0x0860: ++ driverList[0] = "vesa"; ++ break; ++ default: ++ driverList[0] = "nouveau"; ++ break; ++ } ++ break; ++ } ++ break; + case 0x1106: driverList[0] = "openchrome"; break; + case 0x1163: driverList[0] = "rendition"; break; + case 0x5333: +-- +1.6.2.2 +