aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux-4.19/linux-yocto-4.19.8/0732-drm-amd-display-Remove-program_csc_matrix.patch
diff options
context:
space:
mode:
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.patch151
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
+