mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-03 16:04:16 -04:00
drm/amd/display: ensure committing streams is seamless
[Why] When transitioning between topologies such as multi-display to single display ODM 2:1, pipes might not be freed before use. [How] In dc_commit_streams, commit an additional, minimal transition if original transition is not seamless to ensure pipes are freed. Reviewed-by: Alvin Lee <alvin.lee2@amd.com> Signed-off-by: Clay King <clayking@amd.com> Signed-off-by: Wayne Lin <wayne.lin@amd.com> Tested-by: Daniel Wheeler <daniel.wheeler@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
@@ -2399,6 +2399,18 @@ enum dc_status dc_commit_streams(struct dc *dc, struct dc_commit_streams_params
|
||||
goto fail;
|
||||
}
|
||||
|
||||
/*
|
||||
* If not already seamless, make transition seamless by inserting intermediate minimal transition
|
||||
*/
|
||||
if (dc->hwss.is_pipe_topology_transition_seamless &&
|
||||
!dc->hwss.is_pipe_topology_transition_seamless(dc, dc->current_state, context)) {
|
||||
res = commit_minimal_transition_state(dc, context);
|
||||
if (res != DC_OK) {
|
||||
BREAK_TO_DEBUGGER();
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
||||
res = dc_commit_state_no_check(dc, context);
|
||||
|
||||
for (i = 0; i < params->stream_count; i++) {
|
||||
|
||||
Reference in New Issue
Block a user