[PATCH] Disable CRTCs when disabling the outputs
Michel Dänzer
michel at daenzer.net
Mon Jun 22 00:49:39 PDT 2015
On 21.06.2015 23:30, Piotr Redlewski wrote:
> 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) {
Maybe this should be
if (!crtc->enabled || mode != DPMSModeOn) {
or can it actually happen that !crtc->enabled and mode == DPMSModeOn?
> + drmModeSetCrtc(drmmode->fd, drmmode_crtc->mode_crtc->crtc_id,
> + 0, 0, 0, NULL, 0, NULL);
> + }
> }
>
> static PixmapPtr
>
Other than that, looks good to me.
--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Mesa and X developer
More information about the xorg-driver-ati
mailing list