intel: Add an option for forced rediscovery of output status on startup

Specifying
  Section "Device"
    Option "ReprobeOutputs" "true"
  EndSection
will restore the old behaviour of scanning each output on startup and
picking a spanning mode.

The behaviour was changed in
commit 8a6a21bff8 [2.21.11]
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jun 26 13:29:48 2013 +0100

    sna: Use the existing configuration for initial modes

Please do notify us of any circumstances that force you to use this
flag.

References: https://bugs.freedesktop.org/show_bug.cgi?id=66494
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson 2013-07-03 12:59:31 +01:00
parent 2ecff61d36
commit 1445a62da8
4 changed files with 18 additions and 0 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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];