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

Chris Wilson ickle at kemper.freedesktop.org
Fri Oct 21 22:15:45 UTC 2016


 src/sna/sna.h        |    1 +
 src/sna/sna_driver.c |    4 +++-
 2 files changed, 4 insertions(+), 1 deletion(-)

New commits:
commit b7d6f695ddab02b7afef0f1ca3ae132f4fdbfd43
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Oct 21 23:11:42 2016 +0100

    sna: Disable screen saver if Option "DPMS" is specified
    
    The defacto standard is that the screensaver only blanks the screen but
    keeps the outputs alive. We differ by actually disabling the CRTC when
    the screen saver kicks in (to save power), however this circumvents
    Option "DPMS".
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98375
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/sna.h b/src/sna/sna.h
index 09f57cc..4f9fc89 100644
--- a/src/sna/sna.h
+++ b/src/sna/sna.h
@@ -264,6 +264,7 @@ struct sna {
 #define SNA_FLUSH_GTT		0x800
 #define SNA_PERFORMANCE		0x1000
 #define SNA_POWERSAVE		0x2000
+#define SNA_NO_DPMS		0x4000
 #define SNA_HAS_FLIP		0x10000
 #define SNA_HAS_ASYNC_FLIP	0x20000
 #define SNA_LINEAR_FB		0x40000
diff --git a/src/sna/sna_driver.c b/src/sna/sna_driver.c
index c731e58..3e9cf86 100644
--- a/src/sna/sna_driver.c
+++ b/src/sna/sna_driver.c
@@ -296,7 +296,7 @@ static void sna_dpms_set(ScrnInfoPtr scrn, int mode, int flags)
 
 	DBG(("%s(mode=%d, flags=%d), vtSema=%d => off?=%d\n",
 	     __FUNCTION__, mode, flags, scrn->vtSema, mode!=DPMSModeOn));
-	if (!scrn->vtSema)
+	if (!scrn->vtSema || sna->flags & SNA_NO_DPMS)
 		return;
 
 	/* Opencoded version of xf86DPMSSet().
@@ -1209,6 +1209,8 @@ sna_screen_init(SCREEN_INIT_ARGS_DECL)
 				 CMAP_PALETTED_TRUECOLOR))
 		return FALSE;
 
+	if (!xf86CheckBoolOption(scrn->options, "dpms", TRUE))
+		sna->flags |= SNA_NO_DPMS;
 	xf86DPMSInit(screen, sna_dpms_set, 0);
 
 	sna_uevent_init(sna);


More information about the xorg-commit mailing list