diff --git a/man/intel.man b/man/intel.man index fbd0230a..9e19687b 100644 --- a/man/intel.man +++ b/man/intel.man @@ -134,6 +134,19 @@ disable render acceleration and only use the BLT engine. .IP Default: use UXA (render acceleration) .TP +.BI "Option \*qReprobeOutputs\*q \*q" boolean \*q +Disable or enable rediscovery of connected displays during server startup. +As the kernel driver loads it scans for connected displays and configures a +console spanning those outputs. When the X server starts, we then take the +list of connected displays and framebuffer layout and use that for the +initial configuration. Sometimes, not all displays are correctly detected by +the kernel and so it is useful in a few circumstances for X to force the +kernel to reprobe all displays when it starts. To make the X server recheck +the status of connected displays, set the \*qReprobeOutputs\*q option to true. +Please do file a bug for any circumstances which require this workaround. +.IP +Default: reprobing is disabled for a faster startup. +.TP .BI "Option \*qVideoKey\*q \*q" integer \*q This is the same as the .B \*qColorKey\*q diff --git a/src/intel_options.c b/src/intel_options.c index ca172b5c..b81bde6e 100644 --- a/src/intel_options.c +++ b/src/intel_options.c @@ -17,6 +17,7 @@ const OptionInfoRec intel_options[] = { {OPTION_TRIPLE_BUFFER, "TripleBuffer", OPTV_BOOLEAN, {0}, 1}, {OPTION_PREFER_OVERLAY, "XvPreferOverlay", OPTV_BOOLEAN, {0}, 0}, {OPTION_HOTPLUG, "HotPlug", OPTV_BOOLEAN, {0}, 1}, + {OPTION_REPROBE, "ReprobeOutputs", OPTV_BOOLEAN, {0}, 0}, #ifdef INTEL_XVMC {OPTION_XVMC, "XvMC", OPTV_BOOLEAN, {0}, 1}, #endif diff --git a/src/intel_options.h b/src/intel_options.h index 8cee054a..112983d5 100644 --- a/src/intel_options.h +++ b/src/intel_options.h @@ -23,6 +23,7 @@ enum intel_options { OPTION_TRIPLE_BUFFER, OPTION_PREFER_OVERLAY, OPTION_HOTPLUG, + OPTION_REPROBE, #if defined(XvMCExtension) && defined(ENABLE_XVMC) OPTION_XVMC, #define INTEL_XVMC 1 diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c index eaf54e98..de27a365 100644 --- a/src/sna/sna_display.c +++ b/src/sna/sna_display.c @@ -2936,6 +2936,9 @@ static bool sna_probe_initial_configuration(struct sna *sna) int width, height; int i, j; + if (xf86ReturnOptValBool(sna->Options, OPTION_REPROBE, FALSE)) + return false; + /* First scan through all outputs and look for user overrides */ for (i = 0; i < config->num_output; i++) { xf86OutputPtr output = config->output[i];