EE Xorg.bin xf86PlatformMatchDriver - Segmentation fault - Server aborting

poma pomidorabelisima at gmail.com
Sat Sep 6 01:13:46 PDT 2014


...

Rebased[1] patch[2] for the modesetting also didn't help, 
- xorg-x11-drv-modesetting-0.9.0-4.fc21.x86_64

[1] RFC-modesetting-Add_workaround_for_platform_devices_and_supreme_xserver.patch

--- a/src/driver.c	2014-06-26 10:20:17.000000000 +0200
+++ b/src/driver.c	2014-09-06 06:56:32.862956426 +0200
@@ -136,6 +136,8 @@
 
 int modesettingEntityIndex = -1;
 
+static Bool supports_non_pci_platform_devs = FALSE;
+
 static MODULESETUPPROTO(Setup);
 
 static XF86ModuleVersionInfo VersRec = {
@@ -229,6 +231,28 @@
     fd = open_hw(dev);
     if (fd != -1) {
         int ret = check_outputs(fd);
+        /* if called in platformProbe path, and server does not
+         * supports_non_pci_platform_devs then we need to reject
+         * and fallback to old probe.   Otherwise things won't
+         * even work if user has a .conf file, thanks to autoAddGPU
+         * loop.
+         */
+        if (platform_dev && !supports_non_pci_platform_devs) {
+            drmSetVersion sv;
+            char *busid;
+
+            sv.drm_di_major = 1;
+            sv.drm_di_minor = 4;
+            sv.drm_dd_major = -1;       /* Don't care */
+            sv.drm_dd_minor = -1;       /* Don't care */
+
+            drmSetInterfaceVersion(fd, &sv);
+
+            busid = drmGetBusid(fd);
+            if (busid && !strncmp(busid, "platform:", 9))
+                ret = FALSE;
+            drmFreeBusid(busid);
+        }
         close(fd);
         return ret;
     }
@@ -284,6 +308,10 @@
     return Options;
 }
 
+#if 1 /* XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(???) */
+#  define SERVER_SUPPORTS_NON_PCI_PLATFORM_DEVS 12
+#endif
+
 static Bool
 ms_driver_func(ScrnInfoPtr scrn, xorgDriverFuncOp op, void *data)
 {
@@ -298,6 +326,9 @@
         case SUPPORTS_SERVER_FDS:
             return TRUE;
 #endif
+        case SERVER_SUPPORTS_NON_PCI_PLATFORM_DEVS:
+            supports_non_pci_platform_devs = TRUE;
+            return TRUE;
 	default:
 	    return FALSE;
     }


I wonder whether this has anything to do with DisplayLink USB Display Adapter per se, and are these devices properly supported from day one.
Mr. Keith I see[3] you also have one such device, can you help with advice?


poma


[2] http://lists.x.org/archives/xorg-devel/2014-June/042819.html
[3] http://keithp.com/blogs/hotplug-displaylink/



More information about the xorg-devel mailing list