[PATCH] xserver/ call xf86SetDDCproperties() after compat_output change http://lists.x.org/archives/xorg-devel/2013-April/035934.html Signed-off-by: Servaas Vandenberghe --- hw/xfree86/modes/xf86Crtc.c | 18 +++++++++++------- 1 files changed, 11 insertions(+), 7 deletions(-) diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c index f9ae465..1d15a46 100644 --- a/hw/xfree86/modes/xf86Crtc.c +++ b/hw/xfree86/modes/xf86Crtc.c @@ -1832,17 +1832,21 @@ SetCompatOutput(xf86CrtcConfigPtr config) } if (compat >= 0) { - config->compat_output = compat; + if (compat != config->compat_output) { + config->compat_output = compat; + /* Set screen scrn->monitor info. */ + xf86SetDDCproperties(output->scrn, output->MonInfo); + } } else if (config->compat_output >= 0 && config->compat_output < config->num_output) { /* Don't change the compat output when no valid outputs found */ output = config->output[config->compat_output]; } - - /* All outputs are disconnected, select one to fake */ - if (!output && config->num_output) { + else if (config->num_output > 0) { + /* All outputs are disconnected, select one to fake */ config->compat_output = 0; output = config->output[config->compat_output]; + xf86SetDDCproperties(output->scrn, output->MonInfo); } return output; @@ -2174,7 +2178,7 @@ xf86TargetFallback(ScrnInfoPtr scrn, xf86CrtcConfigPtr config, DisplayModePtr target_mode = NULL; Rotation target_rotation = RR_Rotate_0; DisplayModePtr default_mode; - int default_preferred, target_preferred = 0, o; + int default_preferred, target_preferred = 0, target_output, o; /* User preferred > preferred > other modes */ for (o = -1; nextEnabledOutput(config, enabled, &o);) { @@ -2189,12 +2193,12 @@ xf86TargetFallback(ScrnInfoPtr scrn, xf86CrtcConfigPtr config, target_mode = default_mode; target_preferred = default_preferred; target_rotation = config->output[o]->initial_rotation; - config->compat_output = o; + target_output = o; } } if (target_mode) - modes[config->compat_output] = target_mode; + modes[target_output] = target_mode; /* Fill in other output modes */ for (o = -1; nextEnabledOutput(config, enabled, &o);) { -- 1.7.4.5