forked from Minki/linux
drm/amd/display: Do cursor updates after stream updates
[Why] Cursor updates used to happen after vblank/flip/stream updates before the stream update refactor. They now happen before stream updates which means that they're not going to be synced with fb changes and that they're going to programmed for pipes that we're disabling within the same commit. [How] Move them after stream updates. Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com> Reviewed-by: David Francis <David.Francis@amd.com> Acked-by: Leo Li <sunpeng.li@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
6836d23916
commit
80c218d56e
@ -4663,10 +4663,9 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
|
|||||||
struct dc_plane_state *dc_plane;
|
struct dc_plane_state *dc_plane;
|
||||||
struct dm_plane_state *dm_new_plane_state = to_dm_plane_state(new_plane_state);
|
struct dm_plane_state *dm_new_plane_state = to_dm_plane_state(new_plane_state);
|
||||||
|
|
||||||
if (plane->type == DRM_PLANE_TYPE_CURSOR) {
|
/* Cursor plane is handled after stream updates */
|
||||||
handle_cursor_update(plane, old_plane_state);
|
if (plane->type == DRM_PLANE_TYPE_CURSOR)
|
||||||
continue;
|
continue;
|
||||||
}
|
|
||||||
|
|
||||||
if (!fb || !crtc || pcrtc != crtc)
|
if (!fb || !crtc || pcrtc != crtc)
|
||||||
continue;
|
continue;
|
||||||
@ -4866,6 +4865,10 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
|
|||||||
mutex_unlock(&dm->dc_lock);
|
mutex_unlock(&dm->dc_lock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for_each_oldnew_plane_in_state(state, plane, old_plane_state, new_plane_state, i)
|
||||||
|
if (plane->type == DRM_PLANE_TYPE_CURSOR)
|
||||||
|
handle_cursor_update(plane, old_plane_state);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
kfree(flip);
|
kfree(flip);
|
||||||
kfree(full);
|
kfree(full);
|
||||||
|
Loading…
Reference in New Issue
Block a user