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

v2: when entering DPMS also disable active CRTCs
v3: use drmmode_set_mode_major() for enabling CRTCs when leaving DPMS

Signed-off-by: Piotr Redlewski <[email protected]>
---
 src/drmmode_display.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 205ef6a..4291f4d 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -342,7 +342,18 @@ 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);
+               return;
+       }
+
+       crtc->funcs->set_mode_major(crtc, &crtc->mode, crtc->rotation,
+                                   crtc->x, crtc->y);
 }
 
 static PixmapPtr
-- 
2.4.4

_______________________________________________
xorg-driver-ati mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-driver-ati

Reply via email to