xf86-video-intel: src/intel_display.c src/intel_driver.c src/intel.h

Chris Wilson ickle at kemper.freedesktop.org
Thu Jun 14 11:51:00 PDT 2012


 src/intel.h         |    1 +
 src/intel_display.c |   17 ++++++++++++++++-
 src/intel_driver.c  |    1 +
 3 files changed, 18 insertions(+), 1 deletion(-)

New commits:
commit 4e50467b4f50b522a07bedae7ff68b9c37362af8
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Thu Jun 14 17:40:09 2012 +0100

    uxa: Force the outputs to off for consistency with xf86DisableUnusedFunctions()
    
    Upon a VT switch, we set the desired modes and turn off the DPMS on any
    unused output. Make this explicit so that we always maintain consistency
    between the kernel and X's list of enabled CRTCs.
    
    References: https://bugs.freedesktop.org/show_bug.cgi?id=50772
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/intel.h b/src/intel.h
index caf07bb..1555acd 100644
--- a/src/intel.h
+++ b/src/intel.h
@@ -362,6 +362,7 @@ enum {
 
 extern Bool intel_mode_pre_init(ScrnInfoPtr pScrn, int fd, int cpp);
 extern void intel_mode_init(struct intel_screen_private *intel);
+extern void intel_mode_disable_unused_functions(ScrnInfoPtr scrn);
 extern void intel_mode_remove_fb(intel_screen_private *intel);
 extern void intel_mode_fini(intel_screen_private *intel);
 
diff --git a/src/intel_display.c b/src/intel_display.c
index 8de6344..949a822 100644
--- a/src/intel_display.c
+++ b/src/intel_display.c
@@ -332,9 +332,24 @@ mode_to_kmode(ScrnInfoPtr scrn,
 }
 
 static void
-intel_crtc_dpms(xf86CrtcPtr intel_crtc, int mode)
+intel_crtc_dpms(xf86CrtcPtr crtc, int mode)
 {
+}
+
+void
+intel_mode_disable_unused_functions(ScrnInfoPtr scrn)
+{
+	xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(scrn);
+	struct intel_mode *mode = intel_get_screen_private(scrn)->modes;
+	int i;
 
+	/* Force off for consistency between kernel and ddx */
+	for (i = 0; i < xf86_config->num_crtc; i++) {
+		xf86CrtcPtr crtc = xf86_config->crtc[i];
+		if (!crtc->enabled)
+			drmModeSetCrtc(mode->fd, crtc_id(crtc->driver_private),
+				       0, 0, 0, NULL, 0, NULL);
+	}
 }
 
 static Bool
diff --git a/src/intel_driver.c b/src/intel_driver.c
index 8962a11..3a9fe6f 100644
--- a/src/intel_driver.c
+++ b/src/intel_driver.c
@@ -1068,6 +1068,7 @@ static Bool I830EnterVT(VT_FUNC_ARGS_DECL)
 	if (!xf86SetDesiredModes(scrn))
 		return FALSE;
 
+	intel_mode_disable_unused_functions(scrn);
 	return TRUE;
 }
 


More information about the xorg-commit mailing list