xf86-video-ati: Branch 'master'

Michel Dänzer daenzer at kemper.freedesktop.org
Fri Aug 26 08:40:06 UTC 2016


 src/drmmode_display.c |    8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

New commits:
commit 4bd2d01552f18153afa03a8947b22eebf3d67c6b
Author: Michel Dänzer <michel.daenzer at amd.com>
Date:   Fri Aug 26 12:02:38 2016 +0900

    Also handle disabled CRTCs in drmmode_clear_pending_flip
    
    If disabling a CRTC had to be deferred due to a pending flip in
    drmmode_crtc_dpms, there may no longer be any outputs associated with
    the CRTC when we get here. So we have to check for !crtc->enabled and
    call drmmode_crtc_dpms in that case as well.
    
    Fixes: 9090309e057d ("Wait for pending flips to complete before turning
    off an output or CRTC")
    Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index cb228da..e474046 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -2181,8 +2181,9 @@ drmmode_clear_pending_flip(xf86CrtcPtr crtc)
 
 	drmmode_crtc->flip_pending = FALSE;
 
-	if (drmmode_crtc->pending_dpms_mode != DPMSModeOn &&
-	    drmmode_crtc->dpms_mode != drmmode_crtc->pending_dpms_mode) {
+	if (!crtc->enabled ||
+	    (drmmode_crtc->pending_dpms_mode != DPMSModeOn &&
+	     drmmode_crtc->dpms_mode != drmmode_crtc->pending_dpms_mode)) {
 		xf86CrtcConfigPtr xf86_config = XF86_CRTC_CONFIG_PTR(crtc->scrn);
 		int o;
 
@@ -2193,8 +2194,9 @@ drmmode_clear_pending_flip(xf86CrtcPtr crtc)
 				continue;
 
 			drmmode_output_dpms(output, drmmode_crtc->pending_dpms_mode);
-			drmmode_crtc_dpms(crtc, drmmode_crtc->pending_dpms_mode);
 		}
+
+		drmmode_crtc_dpms(crtc, drmmode_crtc->pending_dpms_mode);
 	}
 }
 


More information about the xorg-commit mailing list