diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0732-drm-amd-display-Remove-program_csc_matrix.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0732-drm-amd-display-Remove-program_csc_matrix.patch | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0732-drm-amd-display-Remove-program_csc_matrix.patch b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0732-drm-amd-display-Remove-program_csc_matrix.patch new file mode 100644 index 00000000..4d1a9384 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0732-drm-amd-display-Remove-program_csc_matrix.patch @@ -0,0 +1,151 @@ +From 5e38e43e5cf906532d3c9903d4148f61a3334deb Mon Sep 17 00:00:00 2001 +From: Krunoslav Kovac <Krunoslav.Kovac@amd.com> +Date: Fri, 12 Oct 2018 17:31:58 -0400 +Subject: [PATCH 0732/2940] drm/amd/display: Remove program_csc_matrix + +[Why] On DCN1/DCE, There are two functions programming OCSC: +program_csc_matrix and program_output_csc. They do the same thing. + +[How] Consolidate to use only program_output_csc. + +Signed-off-by: Krunoslav Kovac <Krunoslav.Kovac@amd.com> +Reviewed-by: Aric Cyr <Aric.Cyr@amd.com> +Acked-by: Leo Li <sunpeng.li@amd.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/display/dc/core/dc.c | 8 ++++--- + .../display/dc/dce110/dce110_hw_sequencer.c | 23 ------------------ + .../amd/display/dc/dcn10/dcn10_hw_sequencer.c | 24 +++++-------------- + .../gpu/drm/amd/display/dc/inc/hw_sequencer.h | 5 ---- + 4 files changed, 11 insertions(+), 49 deletions(-) + +diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c +index 8424b754fa64..cf1b1295d1fd 100644 +--- a/drivers/gpu/drm/amd/display/dc/core/dc.c ++++ b/drivers/gpu/drm/amd/display/dc/core/dc.c +@@ -391,9 +391,11 @@ bool dc_stream_program_csc_matrix(struct dc *dc, struct dc_stream_state *stream) + == stream) { + + pipes = &dc->current_state->res_ctx.pipe_ctx[i]; +- dc->hwss.program_csc_matrix(pipes, +- stream->output_color_space, +- stream->csc_color_matrix.matrix); ++ dc->hwss.program_output_csc(dc, ++ pipes, ++ stream->output_color_space, ++ stream->csc_color_matrix.matrix, ++ pipes->plane_res.hubp->opp_id); + ret = true; + } + } +diff --git a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c +index d8bf90046b1b..5c9ed78f2f9d 100644 +--- a/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c ++++ b/drivers/gpu/drm/amd/display/dc/dce110/dce110_hw_sequencer.c +@@ -2582,28 +2582,6 @@ static void dce110_wait_for_mpcc_disconnect( + /* do nothing*/ + } + +-static void program_csc_matrix(struct pipe_ctx *pipe_ctx, +- enum dc_color_space colorspace, +- uint16_t *matrix) +-{ +- int i; +- struct out_csc_color_matrix tbl_entry; +- +- if (pipe_ctx->stream->csc_color_matrix.enable_adjustment +- == true) { +- enum dc_color_space color_space = +- pipe_ctx->stream->output_color_space; +- +- //uint16_t matrix[12]; +- for (i = 0; i < 12; i++) +- tbl_entry.regval[i] = pipe_ctx->stream->csc_color_matrix.matrix[i]; +- +- tbl_entry.color_space = color_space; +- //tbl_entry.regval = matrix; +- pipe_ctx->plane_res.xfm->funcs->opp_set_csc_adjustment(pipe_ctx->plane_res.xfm, &tbl_entry); +- } +-} +- + void dce110_set_cursor_position(struct pipe_ctx *pipe_ctx) + { + struct dc_cursor_position pos_cpy = pipe_ctx->stream->cursor_position; +@@ -2654,7 +2632,6 @@ void dce110_set_cursor_attribute(struct pipe_ctx *pipe_ctx) + + static const struct hw_sequencer_funcs dce110_funcs = { + .program_gamut_remap = program_gamut_remap, +- .program_csc_matrix = program_csc_matrix, + .init_hw = init_hw, + .apply_ctx_to_hw = dce110_apply_ctx_to_hw, + .apply_ctx_for_surface = dce110_apply_ctx_for_surface, +diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +index e3e0fd449ad5..87495dea45ec 100644 +--- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c ++++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +@@ -1704,32 +1704,21 @@ static void program_gamut_remap(struct pipe_ctx *pipe_ctx) + pipe_ctx->plane_res.dpp->funcs->dpp_set_gamut_remap(pipe_ctx->plane_res.dpp, &adjust); + } + +- +-static void program_csc_matrix(struct pipe_ctx *pipe_ctx, ++static void dcn10_program_output_csc(struct dc *dc, ++ struct pipe_ctx *pipe_ctx, + enum dc_color_space colorspace, +- uint16_t *matrix) ++ uint16_t *matrix, ++ int opp_id) + { + if (pipe_ctx->stream->csc_color_matrix.enable_adjustment == true) { +- if (pipe_ctx->plane_res.dpp->funcs->dpp_set_csc_adjustment != NULL) +- pipe_ctx->plane_res.dpp->funcs->dpp_set_csc_adjustment(pipe_ctx->plane_res.dpp, matrix); ++ if (pipe_ctx->plane_res.dpp->funcs->dpp_set_csc_adjustment != NULL) ++ pipe_ctx->plane_res.dpp->funcs->dpp_set_csc_adjustment(pipe_ctx->plane_res.dpp, matrix); + } else { + if (pipe_ctx->plane_res.dpp->funcs->dpp_set_csc_default != NULL) + pipe_ctx->plane_res.dpp->funcs->dpp_set_csc_default(pipe_ctx->plane_res.dpp, colorspace); + } + } + +-static void dcn10_program_output_csc(struct dc *dc, +- struct pipe_ctx *pipe_ctx, +- enum dc_color_space colorspace, +- uint16_t *matrix, +- int opp_id) +-{ +- if (pipe_ctx->plane_res.dpp->funcs->dpp_set_csc_adjustment != NULL) +- program_csc_matrix(pipe_ctx, +- colorspace, +- matrix); +-} +- + bool is_lower_pipe_tree_visible(struct pipe_ctx *pipe_ctx) + { + if (pipe_ctx->plane_state->visible) +@@ -2684,7 +2673,6 @@ static void dcn10_set_cursor_sdr_white_level(struct pipe_ctx *pipe_ctx) + + static const struct hw_sequencer_funcs dcn10_funcs = { + .program_gamut_remap = program_gamut_remap, +- .program_csc_matrix = program_csc_matrix, + .init_hw = dcn10_init_hw, + .apply_ctx_to_hw = dce110_apply_ctx_to_hw, + .apply_ctx_for_surface = dcn10_apply_ctx_for_surface, +diff --git a/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h b/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h +index e5a85a0563b6..e9b702ce02dd 100644 +--- a/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h ++++ b/drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h +@@ -85,11 +85,6 @@ struct hw_sequencer_funcs { + void (*program_gamut_remap)( + struct pipe_ctx *pipe_ctx); + +- void (*program_csc_matrix)( +- struct pipe_ctx *pipe_ctx, +- enum dc_color_space colorspace, +- uint16_t *matrix); +- + void (*program_output_csc)(struct dc *dc, + struct pipe_ctx *pipe_ctx, + enum dc_color_space colorspace, +-- +2.17.1 + |