From: Charlene Liu <charlene....@amd.com>

[WHAT]
Add HW change to required mpc gamut remap

Reviewed-by: Dmytro Laktyushkin <dmytro.laktyush...@amd.com>
Signed-off-by: Charlene Liu <charlene....@amd.com>
Signed-off-by: Alex Hung <alex.h...@amd.com>
---
 drivers/gpu/drm/amd/display/dc/dc_hw_types.h        |  3 ++-
 .../gpu/drm/amd/display/dc/mpc/dcn401/dcn401_mpc.c  | 10 +++++-----
 .../gpu/drm/amd/display/dc/mpc/dcn401/dcn401_mpc.h  | 13 +++++++++++++
 3 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/dc/dc_hw_types.h 
b/drivers/gpu/drm/amd/display/dc/dc_hw_types.h
index d562ddeca512..a0e99db61410 100644
--- a/drivers/gpu/drm/amd/display/dc/dc_hw_types.h
+++ b/drivers/gpu/drm/amd/display/dc/dc_hw_types.h
@@ -1103,7 +1103,8 @@ enum mpcc_gamut_remap_mode_select {
 enum mpcc_gamut_remap_id {
        MPCC_OGAM_GAMUT_REMAP,
        MPCC_MCM_FIRST_GAMUT_REMAP,
-       MPCC_MCM_SECOND_GAMUT_REMAP
+       MPCC_MCM_SECOND_GAMUT_REMAP,
+       MPCC_RMCM_GAMUT_REMAP,
 };
 
 enum cursor_matrix_mode {
diff --git a/drivers/gpu/drm/amd/display/dc/mpc/dcn401/dcn401_mpc.c 
b/drivers/gpu/drm/amd/display/dc/mpc/dcn401/dcn401_mpc.c
index 98cf0cbd59ba..99c10a7acbf3 100644
--- a/drivers/gpu/drm/amd/display/dc/mpc/dcn401/dcn401_mpc.c
+++ b/drivers/gpu/drm/amd/display/dc/mpc/dcn401/dcn401_mpc.c
@@ -294,7 +294,7 @@ void mpc401_program_3dlut_size(struct mpc *mpc, bool 
is_17x17x17, int mpcc_id)
        REG_UPDATE(MPCC_MCM_3DLUT_MODE[mpcc_id], MPCC_MCM_3DLUT_SIZE, 
is_17x17x17 ? 0 : 1);
 }
 
-static void program_gamut_remap(
+void mpc_program_gamut_remap(
        struct mpc *mpc,
        unsigned int mpcc_id,
        const uint16_t *regval,
@@ -426,7 +426,7 @@ void mpc401_set_gamut_remap(
 
        if (adjust->gamut_adjust_type != GRAPHICS_GAMUT_ADJUST_TYPE_SW) {
                /* Bypass / Disable if type is bypass or hw */
-               program_gamut_remap(mpc, mpcc_id, NULL,
+               mpc_program_gamut_remap(mpc, mpcc_id, NULL,
                        adjust->mpcc_gamut_remap_block_id, 
MPCC_GAMUT_REMAP_MODE_SELECT_0);
        } else {
                struct fixed31_32 arr_matrix[12];
@@ -460,12 +460,12 @@ void mpc401_set_gamut_remap(
                else
                        mode_select = MPCC_GAMUT_REMAP_MODE_SELECT_2;
 
-               program_gamut_remap(mpc, mpcc_id, arr_reg_val,
+               mpc_program_gamut_remap(mpc, mpcc_id, arr_reg_val,
                        adjust->mpcc_gamut_remap_block_id, mode_select);
        }
 }
 
-static void read_gamut_remap(struct mpc *mpc,
+void mpc_read_gamut_remap(struct mpc *mpc,
        int mpcc_id,
        uint16_t *regval,
        enum mpcc_gamut_remap_id gamut_remap_block_id,
@@ -563,7 +563,7 @@ void mpc401_get_gamut_remap(struct mpc *mpc,
        uint16_t arr_reg_val[12] = {0};
        uint32_t mode_select;
 
-       read_gamut_remap(mpc, mpcc_id, arr_reg_val, 
adjust->mpcc_gamut_remap_block_id, &mode_select);
+       mpc_read_gamut_remap(mpc, mpcc_id, arr_reg_val, 
adjust->mpcc_gamut_remap_block_id, &mode_select);
 
        if (mode_select == MPCC_GAMUT_REMAP_MODE_SELECT_0) {
                adjust->gamut_adjust_type = GRAPHICS_GAMUT_ADJUST_TYPE_BYPASS;
diff --git a/drivers/gpu/drm/amd/display/dc/mpc/dcn401/dcn401_mpc.h 
b/drivers/gpu/drm/amd/display/dc/mpc/dcn401/dcn401_mpc.h
index 8e35ebc603a9..eb0c68d0b0c7 100644
--- a/drivers/gpu/drm/amd/display/dc/mpc/dcn401/dcn401_mpc.h
+++ b/drivers/gpu/drm/amd/display/dc/mpc/dcn401/dcn401_mpc.h
@@ -241,6 +241,19 @@ void mpc401_update_3dlut_fast_load_select(
        int mpcc_id,
        int hubp_idx);
 
+void mpc_program_gamut_remap(
+       struct mpc *mpc,
+       unsigned int mpcc_id,
+       const uint16_t *regval,
+       enum mpcc_gamut_remap_id gamut_remap_block_id,
+       enum mpcc_gamut_remap_mode_select mode_select);
+
+void mpc_read_gamut_remap(struct mpc *mpc,
+       int mpcc_id,
+       uint16_t *regval,
+       enum mpcc_gamut_remap_id gamut_remap_block_id,
+       uint32_t *mode_select);
+
 void mpc401_update_3dlut_fast_load_select(
        struct mpc *mpc,
        int mpcc_id,
-- 
2.43.0

Reply via email to