diff options
author | Michel Dänzer <michel.daenzer@amd.com> | 2016-05-10 18:45:30 +0900 |
---|---|---|
committer | Michel Dänzer <michel@daenzer.net> | 2016-08-03 18:17:50 +0900 |
commit | 9090309e057dc703d1a5bffd88e6cae14108cfc3 (patch) | |
tree | c687a0aedcc5285a5b39ec5a0d62d157f7f7518b /src/radeon_kms.c | |
parent | 9a1afbf61fbb2827c86bd86d295fa0848980d60b (diff) |
Wait for pending flips to complete before turning off an output or CRTC
At least with older kernels, the flip may never complete otherwise,
which can result in us hanging in drmmode_set_mode_major.
Fixes: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-ati/+bug/1577170
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'src/radeon_kms.c')
-rw-r--r-- | src/radeon_kms.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/radeon_kms.c b/src/radeon_kms.c index da11358a..264b6a12 100644 --- a/src/radeon_kms.c +++ b/src/radeon_kms.c @@ -430,7 +430,7 @@ radeon_scanout_do_update(xf86CrtcPtr xf86_crtc, int scanout_id) Bool force; if (!xf86_crtc->enabled || - drmmode_crtc->dpms_mode != DPMSModeOn || + drmmode_crtc->pending_dpms_mode != DPMSModeOn || !drmmode_crtc->scanout[scanout_id].pixmap) return FALSE; @@ -564,7 +564,7 @@ radeon_scanout_update(xf86CrtcPtr xf86_crtc) if (!xf86_crtc->enabled || drmmode_crtc->scanout_update_pending || !drmmode_crtc->scanout[0].pixmap || - drmmode_crtc->dpms_mode != DPMSModeOn) + drmmode_crtc->pending_dpms_mode != DPMSModeOn) return; pDamage = drmmode_crtc->scanout[0].damage; |