Commit 012fe067 authored by Charlene Liu's avatar Charlene Liu Committed by Alex Deucher
Browse files

drm/amd/display: Add logging resource checks



[Why]
When mapping resources, resources could be unavailable.

Cc: Mario Limonciello <mario.limonciello@amd.com>
Cc: Alex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
Reviewed-by: default avatarSung joon Kim <sungjoon.kim@amd.com>
Acked-by: default avatarAlex Hung <alex.hung@amd.com>
Signed-off-by: default avatarCharlene Liu <charlene.liu@amd.com>
Tested-by: default avatarDaniel Wheeler <daniel.wheeler@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 73888bad
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -3522,7 +3522,7 @@ static void commit_planes_for_stream(struct dc *dc,
	top_pipe_to_program = resource_get_otg_master_for_stream(
				&context->res_ctx,
				stream);

	ASSERT(top_pipe_to_program != NULL);
	for (i = 0; i < dc->res_pool->pipe_count; i++) {
		struct pipe_ctx *old_pipe = &dc->current_state->res_ctx.pipe_ctx[i];

@@ -4345,6 +4345,8 @@ static bool should_commit_minimal_transition_for_windowed_mpo_odm(struct dc *dc,

	cur_pipe = resource_get_otg_master_for_stream(&dc->current_state->res_ctx, stream);
	new_pipe = resource_get_otg_master_for_stream(&context->res_ctx, stream);
	if (!cur_pipe || !new_pipe)
		return false;
	cur_is_odm_in_use = resource_get_odm_slice_count(cur_pipe) > 1;
	new_is_odm_in_use = resource_get_odm_slice_count(new_pipe) > 1;
	if (cur_is_odm_in_use == new_is_odm_in_use)
+4 −0
Original line number Diff line number Diff line
@@ -2194,6 +2194,10 @@ void resource_log_pipe_topology_update(struct dc *dc, struct dc_state *state)
	for (stream_idx = 0; stream_idx < state->stream_count; stream_idx++) {
		otg_master = resource_get_otg_master_for_stream(
				&state->res_ctx, state->streams[stream_idx]);
		if (!otg_master	|| otg_master->stream_res.tg == NULL) {
			DC_LOG_DC("topology update: otg_master NULL stream_idx %d!\n", stream_idx);
			return;
		}
		slice_count = resource_get_opp_heads_for_otg_master(otg_master,
				&state->res_ctx, opp_heads);
		for (slice_idx = 0; slice_idx < slice_count; slice_idx++) {
+3 −2
Original line number Diff line number Diff line
@@ -434,6 +434,7 @@ bool dc_state_add_plane(

	otg_master_pipe = resource_get_otg_master_for_stream(
			&state->res_ctx, stream);
	if (otg_master_pipe)
		added = resource_append_dpp_pipes_for_plane_composition(state,
				dc->current_state, pool, otg_master_pipe, plane_state);