mirror of https://gitee.com/openkylin/linux.git
drm/amd/display: Move drm_get_vblank from legacy code
Previously, we assumed that allow_modeset=false => page flip. This assumption breaks when an atomic commit is submitted with allow_modeset set to false, since the legacy flip code is never called (the legacy code grabs the vblank reference). Fix: Move drm_vblank_get() from amdgpu_atomic_helper_page_flip() to amdgpu_dm_commit_surfaces(). Signed-off-by: Leo (Sunpeng) Li <sunpeng.li@amd.com> Reviewed-by: Andrey Grodzovsky <Andrey.Grodzovsky@amd.com> Acked-by: Harry Wentland <Harry.Wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
061d349945
commit
e29088b293
|
@ -2383,8 +2383,6 @@ static void amdgpu_dm_commit_surfaces(struct drm_atomic_state *state,
|
|||
if (!con_state)
|
||||
continue;
|
||||
|
||||
|
||||
|
||||
add_surface(dm->dc, crtc, plane,
|
||||
&dc_surfaces_constructed[planes_count]);
|
||||
if (dc_surfaces_constructed[planes_count] == NULL) {
|
||||
|
@ -2403,6 +2401,10 @@ static void amdgpu_dm_commit_surfaces(struct drm_atomic_state *state,
|
|||
acrtc_attach->flip_flags & DRM_MODE_PAGE_FLIP_ASYNC ?
|
||||
false : true;
|
||||
|
||||
/* TODO: Needs rework for multiplane flip */
|
||||
if (plane->type == DRM_PLANE_TYPE_PRIMARY)
|
||||
drm_crtc_vblank_get(crtc);
|
||||
|
||||
amdgpu_dm_do_flip(
|
||||
crtc,
|
||||
fb,
|
||||
|
|
Loading…
Reference in New Issue