diff options
Diffstat (limited to 'hw/xfree86/common/xf86Init.c')
-rw-r--r-- | hw/xfree86/common/xf86Init.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c index 994b63b43..326bfc191 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -76,6 +76,7 @@ #include "xf86DDC.h" #include "xf86Xinput.h" #include "xf86InPriv.h" +#include "xf86Crtc.h" #include "picturestr.h" #include "xf86Bus.h" @@ -298,6 +299,19 @@ xf86PrivsElevated(void) } static void +xf86AutoConfigOutputDevices(void) +{ + int i; + + if (!xf86Info.autoBindGPU) + return; + + for (i = 0; i < xf86NumGPUScreens; i++) + RRProviderAutoConfigGpuScreen(xf86ScrnToScreen(xf86GPUScreens[i]), + xf86ScrnToScreen(xf86Screens[0])); +} + +static void InstallSignalHandlers(void) { /* @@ -827,6 +841,8 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) for (i = 0; i < xf86NumGPUScreens; i++) AttachUnboundGPU(xf86Screens[0]->pScreen, xf86GPUScreens[i]->pScreen); + xf86AutoConfigOutputDevices(); + xf86VGAarbiterWrapFunctions(); if (sigio_blocked) input_unlock(); @@ -1339,6 +1355,10 @@ ddxProcessArgument(int argc, char **argv, int i) xf86Info.iglxFrom = X_CMDLINE; return 0; } + if (!strcmp(argv[i], "-noautoBindGPU")) { + xf86AutoBindGPUDisabled = TRUE; + return 1; + } /* OS-specific processing */ return xf86ProcessArgument(argc, argv, i); |