Commit 79592db3 authored by Dmytro Laktyushkin's avatar Dmytro Laktyushkin Committed by Alex Deucher

drm/amd/display: fix acquire_first_split_pipe function

This function needs to re-calculate the scaling on the pipe
that loses it's half.
Signed-off-by: default avatarDmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Reviewed-by: default avatarEric Bernstein <Eric.Bernstein@amd.com>
Acked-by: default avatarBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent e7e10c46
...@@ -1184,24 +1184,27 @@ static int acquire_first_split_pipe( ...@@ -1184,24 +1184,27 @@ static int acquire_first_split_pipe(
int i; int i;
for (i = 0; i < pool->pipe_count; i++) { for (i = 0; i < pool->pipe_count; i++) {
struct pipe_ctx *pipe_ctx = &res_ctx->pipe_ctx[i]; struct pipe_ctx *split_pipe = &res_ctx->pipe_ctx[i];
if (pipe_ctx->top_pipe && if (split_pipe->top_pipe && !dc_res_is_odm_head_pipe(split_pipe) &&
pipe_ctx->top_pipe->plane_state == pipe_ctx->plane_state) { split_pipe->top_pipe->plane_state == split_pipe->plane_state) {
pipe_ctx->top_pipe->bottom_pipe = pipe_ctx->bottom_pipe; split_pipe->top_pipe->bottom_pipe = split_pipe->bottom_pipe;
if (pipe_ctx->bottom_pipe) if (split_pipe->bottom_pipe)
pipe_ctx->bottom_pipe->top_pipe = pipe_ctx->top_pipe; split_pipe->bottom_pipe->top_pipe = split_pipe->top_pipe;
memset(pipe_ctx, 0, sizeof(*pipe_ctx)); if (split_pipe->top_pipe->plane_state)
pipe_ctx->stream_res.tg = pool->timing_generators[i]; resource_build_scaling_params(split_pipe->top_pipe);
pipe_ctx->plane_res.hubp = pool->hubps[i];
pipe_ctx->plane_res.ipp = pool->ipps[i]; memset(split_pipe, 0, sizeof(*split_pipe));
pipe_ctx->plane_res.dpp = pool->dpps[i]; split_pipe->stream_res.tg = pool->timing_generators[i];
pipe_ctx->stream_res.opp = pool->opps[i]; split_pipe->plane_res.hubp = pool->hubps[i];
pipe_ctx->plane_res.mpcc_inst = pool->dpps[i]->inst; split_pipe->plane_res.ipp = pool->ipps[i];
pipe_ctx->pipe_idx = i; split_pipe->plane_res.dpp = pool->dpps[i];
split_pipe->stream_res.opp = pool->opps[i];
pipe_ctx->stream = stream; split_pipe->plane_res.mpcc_inst = pool->dpps[i]->inst;
split_pipe->pipe_idx = i;
split_pipe->stream = stream;
return i; return i;
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment