xf86-video-intel: src/sna/sna_display.c

Chris Wilson ickle at kemper.freedesktop.org
Thu Feb 12 01:52:52 PST 2015


 src/sna/sna_display.c |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

New commits:
commit 147e190d1e18d3ac6dc23aa4e493eec28aa75d1d
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Thu Feb 12 09:51:38 2015 +0000

    sna: When turning off outputs whilst DPMS off, update the right counters
    
    Whilst the outputs are hidden, if we want to disable a CRTC, we want to
    manipulate the hidden counter as opposed to current front_active
    counter.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index 423b93d..4f4ffdc 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -1541,8 +1541,13 @@ __sna_crtc_disable(struct sna *sna, struct sna_crtc *sna_crtc)
 		kgem_bo_destroy(&sna->kgem, sna_crtc->bo);
 		sna_crtc->bo = NULL;
 
-		assert(sna->mode.front_active);
-		sna->mode.front_active--;
+		if (sna->mode.hidden) {
+			sna->mode.hidden--;
+			assert(sna->mode.hidden);
+		} else {
+			assert(sna->mode.front_active);
+			sna->mode.front_active--;
+		}
 		sna->mode.dirty = true;
 	}
 
@@ -2379,6 +2384,7 @@ retry: /* Attach per-crtc pixmap or direct */
 	sna_crtc_randr(crtc);
 	if (sna_crtc->transform)
 		sna_crtc_damage(crtc);
+	assert(!sna->mode.hidden);
 	sna->mode.front_active += saved_bo == NULL;
 	sna->mode.dirty = true;
 	DBG(("%s: handle=%d, scanout_active=%d, front_active=%d\n",


More information about the xorg-commit mailing list