Commit ca74cc42 authored by Clay King's avatar Clay King Committed by Alex Deucher
Browse files

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: default avatarAlvin Lee <alvin.lee2@amd.com>
Signed-off-by: default avatarClay King <clayking@amd.com>
Signed-off-by: default avatarWayne Lin <wayne.lin@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 92f68f6a
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -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++) {