From d0e138c3f3e58ef127dad6c6aef48b1713b5ce58 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Wed, 13 Jun 2012 14:32:05 +0100 Subject: [PATCH] dix: attach unbound screens to protocol screen 0 (v2) This is the default attachment, unbound gpu screens get attached to the 0 protocol screen. detach on hotunplug. v2: detach after tearing down crtc/outputs. Reviewed-by: Keith Packard Reviewed-by: Adam Jackson Signed-off-by: Dave Airlie --- hw/xfree86/common/xf86Init.c | 3 +++ hw/xfree86/modes/xf86Crtc.c | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c index aa17a58fd..058d09f56 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -920,6 +920,9 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) #endif } + for (i = 0; i < xf86NumGPUScreens; i++) + AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen); + xf86VGAarbiterWrapFunctions(); OsReleaseSIGIO(); diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c index a2cd85652..0bf14eb5c 100644 --- a/hw/xfree86/modes/xf86Crtc.c +++ b/hw/xfree86/modes/xf86Crtc.c @@ -736,6 +736,11 @@ xf86CrtcCloseScreen(ScreenPtr screen) crtc->randr_crtc = NULL; } + /* detach any providers */ + if (config->randr_provider) { + if (screen->current_master) + DetachUnboundGPU(screen); + } xf86RandR12CloseScreen(screen); free(config->name);