Imported Debian patch 2:1.15.1-0ubuntu2.6
[deb_xorg-server.git] / debian / patches / xfree86_allow_fallback_to_pci_bus_probe_for_non_seat0.patch
diff --git a/debian/patches/xfree86_allow_fallback_to_pci_bus_probe_for_non_seat0.patch b/debian/patches/xfree86_allow_fallback_to_pci_bus_probe_for_non_seat0.patch
new file mode 100644 (file)
index 0000000..982d629
--- /dev/null
@@ -0,0 +1,52 @@
+From 29b1484bb9555e45067669cbfe68a3c40596f4ff Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?La=C3=A9rcio=20de=20Sousa?= <lbsousajr@gmail.com>
+Date: Thu, 3 Apr 2014 11:19:13 -0300
+Subject: [PATCH] xfree86: allow fallback to PCI bus probe for graphics devices
+ on non-seat0 X servers (#66851)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Currently non-seat0 X servers only probe platform bus for graphics devices,
+which is OK for most KMS-compliant drivers. However, for non-KMS drivers
+(like NVIDIA proprietary ones), graphics devices can't be reached
+by platform bus probe, resulting in a "No devices detected" error.
+
+This patch allows a fallback to PCI bus probe for non-seat0 X servers
+in case no platform bus graphics device is found.
+
+Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=66851
+
+Signed-off-by: LaĆ©rcio de Sousa <lbsousajr@gmail.com>
+Reviewed-by: Hans de Goede <hdegoede@redhat.com>
+Reviewed-by: Dave Airlie <airlied@redhat.com>
+Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+---
+ hw/xfree86/common/xf86Bus.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/hw/xfree86/common/xf86Bus.c b/hw/xfree86/common/xf86Bus.c
+index 507c57d..b3b3f8c 100644
+--- a/hw/xfree86/common/xf86Bus.c
++++ b/hw/xfree86/common/xf86Bus.c
+@@ -81,7 +81,7 @@ xf86CallDriverProbe(DriverPtr drv, Bool detect_only)
+     if (drv->platformProbe != NULL) {
+         foundScreen = xf86platformProbeDev(drv);
+     }
+-    if (ServerIsNotSeat0())
++    if (ServerIsNotSeat0() && foundScreen)
+         return foundScreen;
+ #endif
+@@ -201,7 +201,7 @@ xf86BusProbe(void)
+ {
+ #ifdef XSERVER_PLATFORM_BUS
+     xf86platformProbe();
+-    if (ServerIsNotSeat0())
++    if (ServerIsNotSeat0() && xf86_num_platform_devices > 0)
+         return;
+ #endif
+ #ifdef XSERVER_LIBPCIACCESS
+-- 
+2.0.4
+