[PATCH] Disable CRTCs when disabling the outputs

Piotr Redlewski predlewski at gmail.com
Sun Jun 21 07:30:16 PDT 2015


When turning the outputs off (DPMSModeOff), CRTCs stayed enabled. This led
to higher card temperatures than with fglrx driver.

Signed-off-by: Piotr Redlewski <predlewski at gmail.com>
---
 src/drmmode_display.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 3564853..04b4341 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -342,7 +342,14 @@ drmmode_do_crtc_dpms(xf86CrtcPtr crtc, int mode)
 static void
 drmmode_crtc_dpms(xf86CrtcPtr crtc, int mode)
 {
-	/* Nothing to do. drmmode_do_crtc_dpms() is called as appropriate */
+	drmmode_crtc_private_ptr drmmode_crtc = crtc->driver_private;
+	drmmode_ptr drmmode = drmmode_crtc->drmmode;
+
+	/* Disable unused CRTCs */
+	if (!crtc->enabled && mode != DPMSModeOn) {
+		drmModeSetCrtc(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id,
+			       0, 0, 0, NULL, 0, NULL);
+	}
 }
 
 static PixmapPtr
-- 
2.4.4



More information about the xorg-driver-ati mailing list