diff options
Diffstat (limited to 'xorg-server/hw/xfree86/common/xf86Init.c')
-rw-r--r-- | xorg-server/hw/xfree86/common/xf86Init.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/xorg-server/hw/xfree86/common/xf86Init.c b/xorg-server/hw/xfree86/common/xf86Init.c index aa17a58fd..e4a6b8613 100644 --- a/xorg-server/hw/xfree86/common/xf86Init.c +++ b/xorg-server/hw/xfree86/common/xf86Init.c @@ -401,6 +401,7 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) MessageType pix24From = X_DEFAULT; Bool pix24Fail = FALSE; Bool autoconfig = FALSE; + Bool sigio_blocked = FALSE; GDevPtr configured_device; xf86Initialising = TRUE; @@ -471,6 +472,8 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) xf86OSPMClose = xf86OSPMOpen(); #endif + xf86ExtensionInit(); + /* Load all modules specified explicitly in the config file */ if ((modulelist = xf86ModulelistFromConfig(&optionlist))) { xf86LoadModules(modulelist, optionlist); @@ -819,6 +822,7 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) #endif xf86AccessEnter(); OsBlockSIGIO(); + sigio_blocked = TRUE; } } @@ -920,8 +924,12 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) #endif } + for (i = 0; i < xf86NumGPUScreens; i++) + AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen); + xf86VGAarbiterWrapFunctions(); - OsReleaseSIGIO(); + if (sigio_blocked) + OsReleaseSIGIO(); xf86InitOrigins(); @@ -1006,7 +1014,6 @@ OsVendorInit(void) } #endif #endif - OsReleaseSIGIO(); beenHere = TRUE; } |