Commit c1473558 authored by Andrey Grodzovsky's avatar Andrey Grodzovsky Committed by Alex Deucher

drm/amd/display: program scaler not called.

Scaler code in case of UPDATE_TYPE_MED was not called
since new pipe context and current context are the same.
Signed-off-by: default avatarAndrey Grodzovsky <Andrey.Grodzovsky@amd.com>
Reviewed-by: default avatarDmytro Laktyushkin <Dmytro.Laktyushkin@amd.com>
Acked-by: default avatarHarry Wentland <Harry.Wentland@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent e73b59b7
...@@ -1011,12 +1011,23 @@ bool dc_commit_surfaces_to_stream( ...@@ -1011,12 +1011,23 @@ bool dc_commit_surfaces_to_stream(
struct dc_plane_info plane_info[MAX_SURFACES]; struct dc_plane_info plane_info[MAX_SURFACES];
struct dc_scaling_info scaling_info[MAX_SURFACES]; struct dc_scaling_info scaling_info[MAX_SURFACES];
int i; int i;
bool ret;
struct dc_stream_update *stream_update =
dm_alloc(sizeof(struct dc_stream_update));
if (!stream_update) {
BREAK_TO_DEBUGGER();
return false;
}
memset(updates, 0, sizeof(updates)); memset(updates, 0, sizeof(updates));
memset(flip_addr, 0, sizeof(flip_addr)); memset(flip_addr, 0, sizeof(flip_addr));
memset(plane_info, 0, sizeof(plane_info)); memset(plane_info, 0, sizeof(plane_info));
memset(scaling_info, 0, sizeof(scaling_info)); memset(scaling_info, 0, sizeof(scaling_info));
stream_update->src = dc_stream->src;
stream_update->dst = dc_stream->dst;
for (i = 0; i < new_surface_count; i++) { for (i = 0; i < new_surface_count; i++) {
updates[i].surface = new_surfaces[i]; updates[i].surface = new_surfaces[i];
updates[i].gamma = updates[i].gamma =
...@@ -1041,9 +1052,17 @@ bool dc_commit_surfaces_to_stream( ...@@ -1041,9 +1052,17 @@ bool dc_commit_surfaces_to_stream(
updates[i].plane_info = &plane_info[i]; updates[i].plane_info = &plane_info[i];
updates[i].scaling_info = &scaling_info[i]; updates[i].scaling_info = &scaling_info[i];
} }
dc_update_surfaces_for_stream(dc, updates, new_surface_count, dc_stream);
return dc_post_update_surfaces_to_stream(dc); dc_update_surfaces_and_stream(
dc,
updates,
new_surface_count,
dc_stream, stream_update);
ret = dc_post_update_surfaces_to_stream(dc);
dm_free(stream_update);
return ret;
} }
static bool is_surface_in_context( static bool is_surface_in_context(
......
...@@ -2408,10 +2408,8 @@ static void dce110_program_front_end_for_pipe( ...@@ -2408,10 +2408,8 @@ static void dce110_program_front_end_for_pipe(
pipe_ctx->xfm->funcs->transform_set_gamut_remap(pipe_ctx->xfm, &adjust); pipe_ctx->xfm->funcs->transform_set_gamut_remap(pipe_ctx->xfm, &adjust);
pipe_ctx->scl_data.lb_params.alpha_en = pipe_ctx->bottom_pipe != 0; pipe_ctx->scl_data.lb_params.alpha_en = pipe_ctx->bottom_pipe != 0;
if (old_pipe && memcmp(&old_pipe->scl_data,
&pipe_ctx->scl_data, program_scaler(dc, pipe_ctx);
sizeof(struct scaler_data)) != 0)
program_scaler(dc, pipe_ctx);
mi->funcs->mem_input_program_surface_config( mi->funcs->mem_input_program_surface_config(
mi, mi,
......
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