From: Krunoslav Kovac <krunoslav.ko...@amd.com>

[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.ko...@amd.com>
Reviewed-by: Aric Cyr <aric....@amd.com>
Acked-by: Leo Li <sunpeng...@amd.com>
---
 drivers/gpu/drm/amd/display/dc/core/dc.c           |  8 +++++---
 .../amd/display/dc/dce110/dce110_hw_sequencer.c    | 23 ---------------------
 .../drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c  | 24 ++++++----------------
 drivers/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 503bb16..3279e26 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 de22077..8873a609 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 e3e0fd4..87495de 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 e5a85a0..e9b702c 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.7.4

_______________________________________________
amd-gfx mailing list
amd-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to