Commit a0d10c43 authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/amd/display: attempt to fix the logic in commit_planes_for_stream()



The indentation is screwed up.  I'm not sure quite how the logic
should flow.  Someone more familiar with this code should
verify this.

Reviewed-by: default avatarHawking Zhang <Hawking.Zhang@amd.com>
Reviewed-by: default avatarHarry Wentland <harry.wentland@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 43195162
Loading
Loading
Loading
Loading
+24 −21
Original line number Diff line number Diff line
@@ -3229,7 +3229,7 @@ static void commit_planes_for_stream(struct dc *dc,
				odm_pipe->ttu_regs.min_ttu_vblank = MAX_TTU;
	}

	if ((update_type != UPDATE_TYPE_FAST) && stream->update_flags.bits.dsc_changed)
	if ((update_type != UPDATE_TYPE_FAST) && stream->update_flags.bits.dsc_changed) {
		if (top_pipe_to_program &&
			top_pipe_to_program->stream_res.tg->funcs->lock_doublebuffer_enable) {
			if (should_use_dmub_lock(stream->link)) {
@@ -3247,6 +3247,7 @@ static void commit_planes_for_stream(struct dc *dc,
				top_pipe_to_program->stream_res.tg->funcs->lock_doublebuffer_enable(
						top_pipe_to_program->stream_res.tg);
		}
	}

	if (should_lock_all_pipes && dc->hwss.interdependent_update_lock) {
		if (dc->hwss.subvp_pipe_control_lock)
@@ -3465,7 +3466,7 @@ static void commit_planes_for_stream(struct dc *dc,
		dc->hwss.pipe_control_lock(dc, top_pipe_to_program, false);
	}

		if ((update_type != UPDATE_TYPE_FAST) && stream->update_flags.bits.dsc_changed)
	if ((update_type != UPDATE_TYPE_FAST) && stream->update_flags.bits.dsc_changed) {
		if (top_pipe_to_program->stream_res.tg->funcs->lock_doublebuffer_enable) {
			top_pipe_to_program->stream_res.tg->funcs->wait_for_state(
				top_pipe_to_program->stream_res.tg,
@@ -3492,8 +3493,9 @@ static void commit_planes_for_stream(struct dc *dc,
				top_pipe_to_program->stream_res.tg->funcs->lock_doublebuffer_disable(
					top_pipe_to_program->stream_res.tg);
		}
	}

	if (update_type != UPDATE_TYPE_FAST)
	if (update_type != UPDATE_TYPE_FAST) {
		dc->hwss.post_unlock_program_front_end(dc, context);

		/* Since phantom pipe programming is moved to post_unlock_program_front_end,
@@ -3506,6 +3508,7 @@ static void commit_planes_for_stream(struct dc *dc,
			if (dc->hwss.subvp_pipe_control_lock)
				dc->hwss.subvp_pipe_control_lock(dc, context, false, should_lock_all_pipes, top_pipe_to_program, subvp_prev_use);
		}
	}

	// Fire manual trigger only when bottom plane is flipped
	for (j = 0; j < dc->res_pool->pipe_count; j++) {