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

Chris Wilson ickle at kemper.freedesktop.org
Thu Jun 14 11:20:43 PDT 2012


 src/sna/sna.h         |    1 +
 src/sna/sna_display.c |   15 +++++++++++++--
 src/sna/sna_driver.c  |    2 ++
 3 files changed, 16 insertions(+), 2 deletions(-)

New commits:
commit 3a56a0b10eb3ab07efd28efdc79d0fd3a6fa20ff
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Thu Jun 14 19:26:42 2012 +0100

    sna: Make the disable-unused after vt switch distinct from DPMS off
    
    So that we do not lose control over dpms on/off!
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna.h b/src/sna/sna.h
index ce06e4d..a426e69 100644
--- a/src/sna/sna.h
+++ b/src/sna/sna.h
@@ -304,6 +304,7 @@ Bool sna_mode_pre_init(ScrnInfoPtr scrn, struct sna *sna);
 void sna_mode_adjust_frame(struct sna *sna, int x, int y);
 extern void sna_mode_remove_fb(struct sna *sna);
 extern void sna_mode_update(struct sna *sna);
+extern void sna_mode_disable_unused(struct sna *sna);
 extern void sna_mode_fini(struct sna *sna);
 
 extern int sna_crtc_id(xf86CrtcPtr crtc);
diff --git a/src/sna/sna_display.c b/src/sna/sna_display.c
index a198b5c..de834ae 100644
--- a/src/sna/sna_display.c
+++ b/src/sna/sna_display.c
@@ -515,9 +515,20 @@ sna_crtc_dpms(xf86CrtcPtr crtc, int mode)
 {
 	DBG(("%s(pipe %d, dpms mode -> %d):= active=%d\n",
 	     __FUNCTION__, to_sna_crtc(crtc)->pipe, mode, mode == DPMSModeOn));
+}
+
+void sna_mode_disable_unused(struct sna *sna)
+{
+	xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(sna->scrn);
+	int i;
 
-	if (mode == DPMSModeOff)
-		sna_crtc_disable(crtc);
+	DBG(("%s\n", __FUNCTION__));
+
+	/* Force consistency between kernel and ourselves */
+	for (i = 0; i < xf86_config->num_crtc; i++) {
+		if (!xf86_config->crtc[i]->enabled)
+			sna_crtc_disable(xf86_config->crtc[i]);
+	}
 }
 
 static struct kgem_bo *sna_create_bo_for_fbcon(struct sna *sna,
diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index 2fa6adc..76ae24e 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -988,6 +988,8 @@ static Bool sna_enter_vt(VT_FUNC_ARGS_DECL)
 		xf86DrvMsg(scrn->scrnIndex, X_WARNING,
 			   "failed to restore desired modes on VT switch\n");
 
+	sna_mode_disable_unused(sna);
+
 	return TRUE;
 }
 


More information about the xorg-commit mailing list