From 7ca4baffb5569ea12b578a4a3f69e93d272d6c6d Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Thu, 19 Apr 2007 17:37:18 -0700 Subject: [PATCH] Was accidentally disabling rotation updates in mode set. Setting a mode on an unrotated CRTC was causing all of the rotation updates to be disabled; the loop looking for active rotation wasn't actually looking at each crtc, it was looking at the modified crtc many times. (cherry picked from commit 8b217dee3a6c46b13fc9571a4a9a95bc55686cdb) --- hw/xfree86/modes/xf86Rotate.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hw/xfree86/modes/xf86Rotate.c b/hw/xfree86/modes/xf86Rotate.c index e8fafd073..94f95a0d7 100644 --- a/hw/xfree86/modes/xf86Rotate.c +++ b/hw/xfree86/modes/xf86Rotate.c @@ -284,7 +284,7 @@ xf86RotateRedisplay(ScreenPtr pScreen) { xf86CrtcPtr crtc = xf86_config->crtc[c]; - if (crtc->rotation != RR_Rotate_0) + if (crtc->rotation != RR_Rotate_0 && crtc->enabled) { BoxRec box; RegionRec crtc_damage; @@ -338,7 +338,8 @@ xf86RotateDestroy (xf86CrtcPtr crtc) } for (c = 0; c < xf86_config->num_crtc; c++) - if (crtc->rotatedPixmap || crtc->rotatedData) + if (xf86_config->crtc[c]->rotatedPixmap || + xf86_config->crtc[c]->rotatedData) return; /*