xf86-video-intel: 2 commits - src/sna/sna_display.c src/sna/sna_driver.c

Chris Wilson ickle at kemper.freedesktop.org
Sat Jun 7 07:08:15 PDT 2014


 src/sna/sna_display.c |   18 ++++++++----------
 src/sna/sna_driver.c  |    4 ++--
 2 files changed, 10 insertions(+), 12 deletions(-)

New commits:
commit ecd80a3a997b11307445c50621d4e86e241a5b22
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Sat Jun 7 14:57:10 2014 +0100

    sna: Fix reporting of TearFree
    
    The switch was moved after we checked whether pageflips are supported,
    but the log message was left in the old location.
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index 97872a7..ce2490b 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -640,8 +640,6 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
 		   sna->tiling & SNA_TILING_FB ? "tiled" : "linear");
 	xf86DrvMsg(scrn->scrnIndex, X_CONFIG, "Pixmaps %s\n",
 		   sna->tiling & SNA_TILING_2D ? "tiled" : "linear");
-	xf86DrvMsg(scrn->scrnIndex, X_CONFIG, "\"Tear free\" %sabled\n",
-		   sna->flags & SNA_TEAR_FREE ? "en" : "dis");
 	xf86DrvMsg(scrn->scrnIndex, X_CONFIG, "Forcing per-crtc-pixmaps? %s\n",
 		   sna->flags & SNA_FORCE_SHADOW ? "yes" : "no");
 
@@ -659,6 +657,8 @@ static Bool sna_pre_init(ScrnInfoPtr scrn, int flags)
 	if (sna->flags & SNA_HAS_FLIP &&
 	    xf86ReturnOptValBool(sna->Options, OPTION_TEAR_FREE, ENABLE_TEAR_FREE))
 		sna->flags |= SNA_TEAR_FREE;
+	xf86DrvMsg(scrn->scrnIndex, X_CONFIG, "TearFree %sabled\n",
+		   sna->flags & SNA_TEAR_FREE ? "en" : "dis");
 
 	xf86SetGamma(scrn, zeros);
 	xf86SetDpi(scrn, 0, 0);
commit 035be60f332e4729fb90261605ef6c06a9d9c903
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Sat Jun 7 13:26:12 2014 +0100

    sna: Release CRTC on VT switch
    
    In order to free up memory and improve our bookkeeping when the X server
    is switched away from the current VT, disable the CRTC.
    
    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 f81045d..896c50c 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -1264,6 +1264,7 @@ sna_crtc_disable(xf86CrtcPtr crtc)
 		kgem_bo_destroy(&sna->kgem, sna_crtc->bo);
 		sna_crtc->bo = NULL;
 
+		assert(sna->mode.front_active);
 		sna->mode.front_active--;
 		sna->mode.dirty = true;
 	}
@@ -1284,6 +1285,7 @@ static void update_flush_interval(struct sna *sna)
 		if (!crtc->enabled) {
 			DBG(("%s: CRTC:%d (pipe %d) disabled\n",
 			     __FUNCTION__,i, to_sna_crtc(crtc)->pipe));
+			assert(to_sna_crtc(crtc)->bo == NULL);
 			continue;
 		}
 
@@ -1299,9 +1301,10 @@ static void update_flush_interval(struct sna *sna)
 		max_vrefresh = max(max_vrefresh, xf86ModeVRefresh(&crtc->mode));
 	}
 
-	if (max_vrefresh == 0)
+	if (max_vrefresh == 0) {
+		assert(sna->mode.front_active == 0);
 		sna->vblank_interval = 0;
-	else
+	} else
 		sna->vblank_interval = 1000 / max_vrefresh; /* Hz -> ms */
 
 	DBG(("max_vrefresh=%d, vblank_interval=%d ms\n",
@@ -5391,6 +5394,9 @@ void sna_mode_reset(struct sna *sna)
 	DBG(("%s\n", __FUNCTION__));
 
 	sna_hide_cursors(sna->scrn);
+	for (i = 0; i < sna->mode.num_real_crtc; i++)
+		sna_crtc_disable(config->crtc[i]);
+	assert(sna->mode.front_active == 0);
 
 	for (i = 0; i < sna->mode.num_real_crtc; i++) {
 		struct sna_crtc *sna_crtc = to_sna_crtc(config->crtc[i]);
@@ -5402,14 +5408,6 @@ void sna_mode_reset(struct sna *sna)
 		rotation_reset(&sna_crtc->primary_rotation);
 		rotation_reset(&sna_crtc->sprite_rotation);
 	}
-
-	for (i = 0; i < config->num_output; i++) {
-		struct sna_output *sna_output = to_sna_output(config->output[i]);
-		if (sna_output == NULL)
-			continue;
-
-		sna_output->dpms_mode = -1;
-	}
 }
 
 static void transformed_box(BoxRec *box, xf86CrtcPtr crtc)


More information about the xorg-commit mailing list