[PATCH] hw/xfree86: Allow xf86SetDesiredModes to succeed if no crtc's are enabled.
Maarten Lankhorst
maarten.lankhorst at canonical.com
Mon Apr 29 02:25:27 PDT 2013
Fixes regression on xserver 1.14 introduced by 6703a7c7cf1a.
"hw/xfree86: Require only one working CRTC to start the server."
https://bugs.freedesktop.org/show_bug.cgi?id=62916
Without any crtc's enabled, 1.13 worked correctly, but the logic in
xf86SetDesiredModes will now return false instead. Fix this to
return success if all outputs were already disabled.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst at canonical.com>
---
diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c
index f9ae465..eb72f0e 100644
--- a/hw/xfree86/modes/xf86Crtc.c
+++ b/hw/xfree86/modes/xf86Crtc.c
@@ -2599,7 +2599,7 @@ xf86SetDesiredModes(ScrnInfoPtr scrn)
xf86CrtcConfigPtr config = XF86_CRTC_CONFIG_PTR(scrn);
xf86CrtcPtr crtc = config->crtc[0];
int c;
- int enabled = 0;
+ int enabled = 0, failed = 0;
/* A driver with this hook will take care of this */
if (!crtc->funcs->set_mode_major) {
@@ -2659,11 +2659,12 @@ xf86SetDesiredModes(ScrnInfoPtr scrn)
if (config->output[o]->crtc == crtc)
config->output[o]->crtc = NULL;
crtc->enabled = FALSE;
- }
+ failed++;
+ }
}
xf86DisableUnusedFunctions(scrn);
- return enabled != 0;
+ return enabled != 0 || !failed;
}
/**
More information about the xorg-devel
mailing list