From 785af88ab0120036e0ce3d0139f3c560ff71e10b Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Wed, 26 Sep 2012 16:16:40 +1000 Subject: [PATCH 1/2] dri1: fix dri1 startup since 459c6da0f907ba33d733c7e62a116184ba2f14e5 This commit regresses dri1 since it moves the drmSetServerInfo from being called at module load time to extension init time. However DRIScreenInit relies on this being called before it gets control. This patches moves the call into DRIScreenInit and seems to work here. Signed-off-by: Dave Airlie --- hw/xfree86/dri/dri.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/hw/xfree86/dri/dri.c b/hw/xfree86/dri/dri.c index 398178e27..6292e87cc 100644 --- a/hw/xfree86/dri/dri.c +++ b/hw/xfree86/dri/dri.c @@ -320,6 +320,7 @@ DRIScreenInit(ScreenPtr pScreen, DRIInfoPtr pDRIInfo, int *pDRMFD) ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen); DRIContextFlags flags = 0; DRIContextPrivPtr pDRIContextPriv; + static Bool drm_server_inited; /* If the DRI extension is disabled, do not initialize the DRI */ if (noXFree86DRIExtension) { @@ -345,6 +346,10 @@ DRIScreenInit(ScreenPtr pScreen, DRIInfoPtr pDRIInfo, int *pDRMFD) return FALSE; } #endif + if (drm_server_inited == FALSE) { + drmSetServerInfo(&DRIDRMServerInfo); + drm_server_inited = TRUE; + } if (!DRIOpenDRMMaster(pScrn, pDRIInfo->SAREASize, pDRIInfo->busIdString, pDRIInfo->drmDriverName)) @@ -791,8 +796,6 @@ DRIExtensionInit(void) RegisterBlockAndWakeupHandlers(DRIBlockHandler, DRIWakeupHandler, NULL); - drmSetServerInfo(&DRIDRMServerInfo); - return TRUE; } From 6b4aa8a359822cc70666de3b18744f05dd9b5f45 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Wed, 12 Dec 2012 12:56:46 +1000 Subject: [PATCH 2/2] Revert "xf86: Fix non-PCI configuration-less setups" This reverts commit 76d9c62eb2be2010a19bf36285012d086cdd180b. This breaks multi-GPU setups here, so lets drop it for now. Signed-off-by: Dave Airlie --- hw/xfree86/common/xf86platformBus.c | 8 -------- 1 file changed, 8 deletions(-) diff --git a/hw/xfree86/common/xf86platformBus.c b/hw/xfree86/common/xf86platformBus.c index 599d84ac2..0525e39bc 100644 --- a/hw/xfree86/common/xf86platformBus.c +++ b/hw/xfree86/common/xf86platformBus.c @@ -377,14 +377,6 @@ xf86platformProbeDev(DriverPtr drvp) continue; } - /* - * If all of the above fails, which can happen if X was started without - * configuration or if BusID wasn't set for non-PCI devices, use the first - * device by default. - */ - if (!foundScreen && xf86_num_platform_devices > 0 && numDevs > 0) - foundScreen = probeSingleDevice(&xf86_platform_devices[0], drvp, devList[0], 0); - /* if autoaddgpu devices is enabled then go find a few more and add them as GPU screens */ if (xf86Info.autoAddGPU && numDevs) { for (j = 0; j < xf86_num_platform_devices; j++) {