mirror of https://gitee.com/openkylin/linux.git
drm/atomic: Wait for vblank whenever a plane is added to state.
There's 2 reasons for doing a vblank wait: - To fulfill uabi expectations, but the legacy ioctls are ill-defined enough that we really only need this when we do send out an event. - To make sure we don't tear down mappings before the scanout engine stops accessing it. The later is problematic with the current code since e.g. rotation might need a different mapping than normal orientation. And rotation is a plane property, and not on the fb. Hence we need to remove this optimization. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> [danvet: Completely new commit message.] Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1481204729-9058-5-git-send-email-maarten.lankhorst@linux.intel.com
This commit is contained in:
parent
bdc571464c
commit
a3fbb53f45
|
@ -1129,11 +1129,7 @@ drm_atomic_helper_wait_for_vblanks(struct drm_device *dev,
|
||||||
for_each_crtc_in_state(old_state, crtc, old_crtc_state, i) {
|
for_each_crtc_in_state(old_state, crtc, old_crtc_state, i) {
|
||||||
struct drm_crtc_state *new_crtc_state = crtc->state;
|
struct drm_crtc_state *new_crtc_state = crtc->state;
|
||||||
|
|
||||||
if (!new_crtc_state->active)
|
if (!new_crtc_state->active || !new_crtc_state->planes_changed)
|
||||||
continue;
|
|
||||||
|
|
||||||
if (!drm_atomic_helper_framebuffer_changed(dev,
|
|
||||||
old_state, crtc))
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
ret = drm_crtc_vblank_get(crtc);
|
ret = drm_crtc_vblank_get(crtc);
|
||||||
|
|
Loading…
Reference in New Issue