summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesse Barnes <jbarnes@virtuousgeek.org>2009-06-24 14:42:08 -0700
committerJesse Barnes <jbarnes@virtuousgeek.org>2009-06-24 14:42:08 -0700
commitf0270bbb47baed78a0ff6189ae20d3ac322ec02b (patch)
tree769ef1dd27065098450f1c679380cb8f73804c90
parent5d80e24b5fc6d6028028da6ded35389c08bfce29 (diff)
Fix i830_crtc_on to only check outputs associated with the given CRTC
Otherwise we may end up returning a false positive if some other output & crtc are on, but not the one in question, again leading to hangs. Reported-by: Eric Anholt <eric@anholt.net> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
-rw-r--r--src/i830_driver.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/i830_driver.c b/src/i830_driver.c
index b9b9d0bd..23690cf6 100644
--- a/src/i830_driver.c
+++ b/src/i830_driver.c
@@ -2468,7 +2468,8 @@ Bool i830_crtc_on(xf86CrtcPtr crtc)
/* Kernel manages CRTC status based out output config */
for (i = 0; i < xf86_config->num_output; i++) {
xf86OutputPtr output = xf86_config->output[i];
- if (drmmode_output_dpms_status(output) == DPMSModeOn)
+ if (output->crtc == crtc &&
+ drmmode_output_dpms_status(output) == DPMSModeOn)
active_outputs++;
}