cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

dcn30_mpc.h (41854B)


      1/* Copyright 2020 Advanced Micro Devices, Inc.
      2 *
      3 * Permission is hereby granted, free of charge, to any person obtaining a
      4 * copy of this software and associated documentation files (the "Software"),
      5 * to deal in the Software without restriction, including without limitation
      6 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
      7 * and/or sell copies of the Software, and to permit persons to whom the
      8 * Software is furnished to do so, subject to the following conditions:
      9 *
     10 * The above copyright notice and this permission notice shall be included in
     11 * all copies or substantial portions of the Software.
     12 *
     13 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     14 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     15 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
     16 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
     17 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
     18 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
     19 * OTHER DEALINGS IN THE SOFTWARE.
     20 *
     21 * Authors: AMD
     22 *
     23 */
     24
     25#ifndef __DC_MPCC_DCN30_H__
     26#define __DC_MPCC_DCN30_H__
     27
     28#include "dcn20/dcn20_mpc.h"
     29
     30#define MAX_RMU 3
     31
     32#define TO_DCN30_MPC(mpc_base) \
     33	container_of(mpc_base, struct dcn30_mpc, base)
     34
     35#ifdef SRII_MPC_RMU
     36#undef SRII_MPC_RMU
     37
     38#define SRII_MPC_RMU(reg_name, block, id)\
     39	.RMU##_##reg_name[id] = BASE(mm ## block ## id ## _ ## reg_name ## _BASE_IDX) + \
     40					mm ## block ## id ## _ ## reg_name
     41
     42#endif
     43
     44
     45#define MPC_REG_LIST_DCN3_0(inst)\
     46	MPC_COMMON_REG_LIST_DCN1_0(inst),\
     47	SRII(MPCC_TOP_GAIN, MPCC, inst),\
     48	SRII(MPCC_BOT_GAIN_INSIDE, MPCC, inst),\
     49	SRII(MPCC_BOT_GAIN_OUTSIDE, MPCC, inst),\
     50	SRII(MPCC_MEM_PWR_CTRL, MPCC, inst),\
     51	SRII(MPCC_OGAM_LUT_INDEX, MPCC_OGAM, inst),\
     52	SRII(MPCC_OGAM_LUT_DATA, MPCC_OGAM, inst), \
     53	SRII(MPCC_GAMUT_REMAP_COEF_FORMAT, MPCC_OGAM, inst),\
     54	SRII(MPCC_GAMUT_REMAP_MODE, MPCC_OGAM, inst),\
     55	SRII(MPC_GAMUT_REMAP_C11_C12_A, MPCC_OGAM, inst),\
     56	SRII(MPC_GAMUT_REMAP_C33_C34_A, MPCC_OGAM, inst),\
     57	SRII(MPC_GAMUT_REMAP_C11_C12_B, MPCC_OGAM, inst),\
     58	SRII(MPC_GAMUT_REMAP_C33_C34_B, MPCC_OGAM, inst),\
     59	SRII(MPCC_OGAM_RAMA_START_CNTL_B, MPCC_OGAM, inst),\
     60	SRII(MPCC_OGAM_RAMA_START_CNTL_G, MPCC_OGAM, inst),\
     61	SRII(MPCC_OGAM_RAMA_START_CNTL_R, MPCC_OGAM, inst),\
     62	SRII(MPCC_OGAM_RAMA_START_SLOPE_CNTL_B, MPCC_OGAM, inst),\
     63	SRII(MPCC_OGAM_RAMA_START_SLOPE_CNTL_G, MPCC_OGAM, inst),\
     64	SRII(MPCC_OGAM_RAMA_START_SLOPE_CNTL_R, MPCC_OGAM, inst),\
     65	SRII(MPCC_OGAM_RAMA_END_CNTL1_B, MPCC_OGAM, inst),\
     66	SRII(MPCC_OGAM_RAMA_END_CNTL2_B, MPCC_OGAM, inst),\
     67	SRII(MPCC_OGAM_RAMA_END_CNTL1_G, MPCC_OGAM, inst),\
     68	SRII(MPCC_OGAM_RAMA_END_CNTL2_G, MPCC_OGAM, inst),\
     69	SRII(MPCC_OGAM_RAMA_END_CNTL1_R, MPCC_OGAM, inst),\
     70	SRII(MPCC_OGAM_RAMA_END_CNTL2_R, MPCC_OGAM, inst),\
     71	SRII(MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM, inst),\
     72	SRII(MPCC_OGAM_RAMA_REGION_32_33, MPCC_OGAM, inst),\
     73	SRII(MPCC_OGAM_RAMA_OFFSET_B, MPCC_OGAM, inst),\
     74	SRII(MPCC_OGAM_RAMA_OFFSET_G, MPCC_OGAM, inst),\
     75	SRII(MPCC_OGAM_RAMA_OFFSET_R, MPCC_OGAM, inst),\
     76	SRII(MPCC_OGAM_RAMA_START_BASE_CNTL_B, MPCC_OGAM, inst),\
     77	SRII(MPCC_OGAM_RAMA_START_BASE_CNTL_G, MPCC_OGAM, inst),\
     78	SRII(MPCC_OGAM_RAMA_START_BASE_CNTL_R, MPCC_OGAM, inst),\
     79	SRII(MPCC_OGAM_RAMB_START_CNTL_B, MPCC_OGAM, inst),\
     80	SRII(MPCC_OGAM_RAMB_START_CNTL_G, MPCC_OGAM, inst),\
     81	SRII(MPCC_OGAM_RAMB_START_CNTL_R, MPCC_OGAM, inst),\
     82	SRII(MPCC_OGAM_RAMB_START_SLOPE_CNTL_B, MPCC_OGAM, inst),\
     83	SRII(MPCC_OGAM_RAMB_START_SLOPE_CNTL_G, MPCC_OGAM, inst),\
     84	SRII(MPCC_OGAM_RAMB_START_SLOPE_CNTL_R, MPCC_OGAM, inst),\
     85	SRII(MPCC_OGAM_RAMB_END_CNTL1_B, MPCC_OGAM, inst),\
     86	SRII(MPCC_OGAM_RAMB_END_CNTL2_B, MPCC_OGAM, inst),\
     87	SRII(MPCC_OGAM_RAMB_END_CNTL1_G, MPCC_OGAM, inst),\
     88	SRII(MPCC_OGAM_RAMB_END_CNTL2_G, MPCC_OGAM, inst),\
     89	SRII(MPCC_OGAM_RAMB_END_CNTL1_R, MPCC_OGAM, inst),\
     90	SRII(MPCC_OGAM_RAMB_END_CNTL2_R, MPCC_OGAM, inst),\
     91	SRII(MPCC_OGAM_RAMB_REGION_0_1, MPCC_OGAM, inst),\
     92	SRII(MPCC_OGAM_RAMB_REGION_32_33, MPCC_OGAM, inst),\
     93	SRII(MPCC_OGAM_RAMB_OFFSET_B, MPCC_OGAM, inst),\
     94	SRII(MPCC_OGAM_RAMB_OFFSET_G, MPCC_OGAM, inst),\
     95	SRII(MPCC_OGAM_RAMB_OFFSET_R, MPCC_OGAM, inst),\
     96	SRII(MPCC_OGAM_RAMB_START_BASE_CNTL_B, MPCC_OGAM, inst),\
     97	SRII(MPCC_OGAM_RAMB_START_BASE_CNTL_G, MPCC_OGAM, inst),\
     98	SRII(MPCC_OGAM_RAMB_START_BASE_CNTL_R, MPCC_OGAM, inst),\
     99	SRII(MPCC_OGAM_CONTROL, MPCC_OGAM, inst),\
    100	SRII(MPCC_OGAM_LUT_CONTROL, MPCC_OGAM, inst)
    101
    102#define MPC_OUT_MUX_REG_LIST_DCN3_0(inst) \
    103	MPC_OUT_MUX_COMMON_REG_LIST_DCN1_0(inst),\
    104	SRII(CSC_MODE, MPC_OUT, inst),\
    105	SRII(CSC_C11_C12_A, MPC_OUT, inst),\
    106	SRII(CSC_C33_C34_A, MPC_OUT, inst),\
    107	SRII(CSC_C11_C12_B, MPC_OUT, inst),\
    108	SRII(CSC_C33_C34_B, MPC_OUT, inst),\
    109	SRII(DENORM_CONTROL, MPC_OUT, inst),\
    110	SRII(DENORM_CLAMP_G_Y, MPC_OUT, inst),\
    111	SRII(DENORM_CLAMP_B_CB, MPC_OUT, inst), \
    112	SR(MPC_OUT_CSC_COEF_FORMAT)
    113
    114#define MPC_RMU_GLOBAL_REG_LIST_DCN3AG \
    115	SR(MPC_RMU_CONTROL),\
    116	SR(MPC_RMU_MEM_PWR_CTRL)
    117
    118#define MPC_RMU_REG_LIST_DCN3AG(inst) \
    119	SRII(SHAPER_CONTROL, MPC_RMU, inst),\
    120	SRII(SHAPER_OFFSET_R, MPC_RMU, inst),\
    121	SRII(SHAPER_OFFSET_G, MPC_RMU, inst),\
    122	SRII(SHAPER_OFFSET_B, MPC_RMU, inst),\
    123	SRII(SHAPER_SCALE_R, MPC_RMU, inst),\
    124	SRII(SHAPER_SCALE_G_B, MPC_RMU, inst),\
    125	SRII(SHAPER_LUT_INDEX, MPC_RMU, inst),\
    126	SRII(SHAPER_LUT_DATA, MPC_RMU, inst),\
    127	SRII(SHAPER_LUT_WRITE_EN_MASK, MPC_RMU, inst),\
    128	SRII(SHAPER_RAMA_START_CNTL_B, MPC_RMU, inst),\
    129	SRII(SHAPER_RAMA_START_CNTL_G, MPC_RMU, inst),\
    130	SRII(SHAPER_RAMA_START_CNTL_R, MPC_RMU, inst),\
    131	SRII(SHAPER_RAMA_END_CNTL_B, MPC_RMU, inst),\
    132	SRII(SHAPER_RAMA_END_CNTL_G, MPC_RMU, inst),\
    133	SRII(SHAPER_RAMA_END_CNTL_R, MPC_RMU, inst),\
    134	SRII(SHAPER_RAMA_REGION_0_1, MPC_RMU, inst),\
    135	SRII(SHAPER_RAMA_REGION_2_3, MPC_RMU, inst),\
    136	SRII(SHAPER_RAMA_REGION_4_5, MPC_RMU, inst),\
    137	SRII(SHAPER_RAMA_REGION_6_7, MPC_RMU, inst),\
    138	SRII(SHAPER_RAMA_REGION_8_9, MPC_RMU, inst),\
    139	SRII(SHAPER_RAMA_REGION_10_11, MPC_RMU, inst),\
    140	SRII(SHAPER_RAMA_REGION_12_13, MPC_RMU, inst),\
    141	SRII(SHAPER_RAMA_REGION_14_15, MPC_RMU, inst),\
    142	SRII(SHAPER_RAMA_REGION_16_17, MPC_RMU, inst),\
    143	SRII(SHAPER_RAMA_REGION_18_19, MPC_RMU, inst),\
    144	SRII(SHAPER_RAMA_REGION_20_21, MPC_RMU, inst),\
    145	SRII(SHAPER_RAMA_REGION_22_23, MPC_RMU, inst),\
    146	SRII(SHAPER_RAMA_REGION_24_25, MPC_RMU, inst),\
    147	SRII(SHAPER_RAMA_REGION_26_27, MPC_RMU, inst),\
    148	SRII(SHAPER_RAMA_REGION_28_29, MPC_RMU, inst),\
    149	SRII(SHAPER_RAMA_REGION_30_31, MPC_RMU, inst),\
    150	SRII(SHAPER_RAMA_REGION_32_33, MPC_RMU, inst),\
    151	SRII(SHAPER_RAMB_START_CNTL_B, MPC_RMU, inst),\
    152	SRII(SHAPER_RAMB_START_CNTL_G, MPC_RMU, inst),\
    153	SRII(SHAPER_RAMB_START_CNTL_R, MPC_RMU, inst),\
    154	SRII(SHAPER_RAMB_END_CNTL_B, MPC_RMU, inst),\
    155	SRII(SHAPER_RAMB_END_CNTL_G, MPC_RMU, inst),\
    156	SRII(SHAPER_RAMB_END_CNTL_R, MPC_RMU, inst),\
    157	SRII(SHAPER_RAMB_REGION_0_1, MPC_RMU, inst),\
    158	SRII(SHAPER_RAMB_REGION_2_3, MPC_RMU, inst),\
    159	SRII(SHAPER_RAMB_REGION_4_5, MPC_RMU, inst),\
    160	SRII(SHAPER_RAMB_REGION_6_7, MPC_RMU, inst),\
    161	SRII(SHAPER_RAMB_REGION_8_9, MPC_RMU, inst),\
    162	SRII(SHAPER_RAMB_REGION_10_11, MPC_RMU, inst),\
    163	SRII(SHAPER_RAMB_REGION_12_13, MPC_RMU, inst),\
    164	SRII(SHAPER_RAMB_REGION_14_15, MPC_RMU, inst),\
    165	SRII(SHAPER_RAMB_REGION_16_17, MPC_RMU, inst),\
    166	SRII(SHAPER_RAMB_REGION_18_19, MPC_RMU, inst),\
    167	SRII(SHAPER_RAMB_REGION_20_21, MPC_RMU, inst),\
    168	SRII(SHAPER_RAMB_REGION_22_23, MPC_RMU, inst),\
    169	SRII(SHAPER_RAMB_REGION_24_25, MPC_RMU, inst),\
    170	SRII(SHAPER_RAMB_REGION_26_27, MPC_RMU, inst),\
    171	SRII(SHAPER_RAMB_REGION_28_29, MPC_RMU, inst),\
    172	SRII(SHAPER_RAMB_REGION_30_31, MPC_RMU, inst),\
    173	SRII(SHAPER_RAMB_REGION_32_33, MPC_RMU, inst),\
    174	SRII_MPC_RMU(3DLUT_MODE, MPC_RMU, inst),\
    175	SRII_MPC_RMU(3DLUT_INDEX, MPC_RMU, inst),\
    176	SRII_MPC_RMU(3DLUT_DATA, MPC_RMU, inst),\
    177	SRII_MPC_RMU(3DLUT_DATA_30BIT, MPC_RMU, inst),\
    178	SRII_MPC_RMU(3DLUT_READ_WRITE_CONTROL, MPC_RMU, inst),\
    179	SRII_MPC_RMU(3DLUT_OUT_NORM_FACTOR, MPC_RMU, inst),\
    180	SRII_MPC_RMU(3DLUT_OUT_OFFSET_R, MPC_RMU, inst),\
    181	SRII_MPC_RMU(3DLUT_OUT_OFFSET_G, MPC_RMU, inst),\
    182	SRII_MPC_RMU(3DLUT_OUT_OFFSET_B, MPC_RMU, inst)
    183
    184
    185#define MPC_DWB_MUX_REG_LIST_DCN3_0(inst) \
    186	SRII_DWB(DWB_MUX, MUX, MPC_DWB, inst)
    187
    188#define MPC_REG_VARIABLE_LIST_DCN3_0 \
    189	MPC_REG_VARIABLE_LIST_DCN2_0 \
    190	uint32_t DWB_MUX[MAX_DWB]; \
    191	uint32_t MPCC_GAMUT_REMAP_COEF_FORMAT[MAX_MPCC]; \
    192	uint32_t MPCC_GAMUT_REMAP_MODE[MAX_MPCC]; \
    193	uint32_t MPC_GAMUT_REMAP_C11_C12_A[MAX_MPCC]; \
    194	uint32_t MPC_GAMUT_REMAP_C33_C34_A[MAX_MPCC]; \
    195	uint32_t MPC_GAMUT_REMAP_C11_C12_B[MAX_MPCC]; \
    196	uint32_t MPC_GAMUT_REMAP_C33_C34_B[MAX_MPCC]; \
    197	uint32_t MPC_RMU_CONTROL; \
    198	uint32_t MPC_RMU_MEM_PWR_CTRL; \
    199	uint32_t SHAPER_CONTROL[MAX_RMU]; \
    200	uint32_t SHAPER_OFFSET_R[MAX_RMU]; \
    201	uint32_t SHAPER_OFFSET_G[MAX_RMU]; \
    202	uint32_t SHAPER_OFFSET_B[MAX_RMU]; \
    203	uint32_t SHAPER_SCALE_R[MAX_RMU]; \
    204	uint32_t SHAPER_SCALE_G_B[MAX_RMU]; \
    205	uint32_t SHAPER_LUT_INDEX[MAX_RMU]; \
    206	uint32_t SHAPER_LUT_DATA[MAX_RMU]; \
    207	uint32_t SHAPER_LUT_WRITE_EN_MASK[MAX_RMU]; \
    208	uint32_t SHAPER_RAMA_START_CNTL_B[MAX_RMU]; \
    209	uint32_t SHAPER_RAMA_START_CNTL_G[MAX_RMU]; \
    210	uint32_t SHAPER_RAMA_START_CNTL_R[MAX_RMU]; \
    211	uint32_t SHAPER_RAMA_END_CNTL_B[MAX_RMU]; \
    212	uint32_t SHAPER_RAMA_END_CNTL_G[MAX_RMU]; \
    213	uint32_t SHAPER_RAMA_END_CNTL_R[MAX_RMU]; \
    214	uint32_t SHAPER_RAMA_REGION_0_1[MAX_RMU]; \
    215	uint32_t SHAPER_RAMA_REGION_2_3[MAX_RMU]; \
    216	uint32_t SHAPER_RAMA_REGION_4_5[MAX_RMU]; \
    217	uint32_t SHAPER_RAMA_REGION_6_7[MAX_RMU]; \
    218	uint32_t SHAPER_RAMA_REGION_8_9[MAX_RMU]; \
    219	uint32_t SHAPER_RAMA_REGION_10_11[MAX_RMU]; \
    220	uint32_t SHAPER_RAMA_REGION_12_13[MAX_RMU]; \
    221	uint32_t SHAPER_RAMA_REGION_14_15[MAX_RMU]; \
    222	uint32_t SHAPER_RAMA_REGION_16_17[MAX_RMU]; \
    223	uint32_t SHAPER_RAMA_REGION_18_19[MAX_RMU]; \
    224	uint32_t SHAPER_RAMA_REGION_20_21[MAX_RMU]; \
    225	uint32_t SHAPER_RAMA_REGION_22_23[MAX_RMU]; \
    226	uint32_t SHAPER_RAMA_REGION_24_25[MAX_RMU]; \
    227	uint32_t SHAPER_RAMA_REGION_26_27[MAX_RMU]; \
    228	uint32_t SHAPER_RAMA_REGION_28_29[MAX_RMU]; \
    229	uint32_t SHAPER_RAMA_REGION_30_31[MAX_RMU]; \
    230	uint32_t SHAPER_RAMA_REGION_32_33[MAX_RMU]; \
    231	uint32_t MPCC_OGAM_RAMA_START_SLOPE_CNTL_B[MAX_MPCC]; \
    232	uint32_t MPCC_OGAM_RAMA_START_SLOPE_CNTL_G[MAX_MPCC]; \
    233	uint32_t MPCC_OGAM_RAMA_START_SLOPE_CNTL_R[MAX_MPCC]; \
    234	uint32_t MPCC_OGAM_RAMA_OFFSET_B[MAX_MPCC]; \
    235	uint32_t MPCC_OGAM_RAMA_OFFSET_G[MAX_MPCC]; \
    236	uint32_t MPCC_OGAM_RAMA_OFFSET_R[MAX_MPCC]; \
    237	uint32_t MPCC_OGAM_RAMA_START_BASE_CNTL_B[MAX_MPCC]; \
    238	uint32_t MPCC_OGAM_RAMA_START_BASE_CNTL_G[MAX_MPCC]; \
    239	uint32_t MPCC_OGAM_RAMA_START_BASE_CNTL_R[MAX_MPCC];\
    240	uint32_t SHAPER_RAMB_START_CNTL_B[MAX_RMU]; \
    241	uint32_t SHAPER_RAMB_START_CNTL_G[MAX_RMU]; \
    242	uint32_t SHAPER_RAMB_START_CNTL_R[MAX_RMU]; \
    243	uint32_t SHAPER_RAMB_END_CNTL_B[MAX_RMU]; \
    244	uint32_t SHAPER_RAMB_END_CNTL_G[MAX_RMU]; \
    245	uint32_t SHAPER_RAMB_END_CNTL_R[MAX_RMU]; \
    246	uint32_t SHAPER_RAMB_REGION_0_1[MAX_RMU]; \
    247	uint32_t SHAPER_RAMB_REGION_2_3[MAX_RMU]; \
    248	uint32_t SHAPER_RAMB_REGION_4_5[MAX_RMU]; \
    249	uint32_t SHAPER_RAMB_REGION_6_7[MAX_RMU]; \
    250	uint32_t SHAPER_RAMB_REGION_8_9[MAX_RMU]; \
    251	uint32_t SHAPER_RAMB_REGION_10_11[MAX_RMU]; \
    252	uint32_t SHAPER_RAMB_REGION_12_13[MAX_RMU]; \
    253	uint32_t SHAPER_RAMB_REGION_14_15[MAX_RMU]; \
    254	uint32_t SHAPER_RAMB_REGION_16_17[MAX_RMU]; \
    255	uint32_t SHAPER_RAMB_REGION_18_19[MAX_RMU]; \
    256	uint32_t SHAPER_RAMB_REGION_20_21[MAX_RMU]; \
    257	uint32_t SHAPER_RAMB_REGION_22_23[MAX_RMU]; \
    258	uint32_t SHAPER_RAMB_REGION_24_25[MAX_RMU]; \
    259	uint32_t SHAPER_RAMB_REGION_26_27[MAX_RMU]; \
    260	uint32_t SHAPER_RAMB_REGION_28_29[MAX_RMU]; \
    261	uint32_t SHAPER_RAMB_REGION_30_31[MAX_RMU]; \
    262	uint32_t SHAPER_RAMB_REGION_32_33[MAX_RMU]; \
    263	uint32_t RMU_3DLUT_MODE[MAX_RMU]; \
    264	uint32_t RMU_3DLUT_INDEX[MAX_RMU]; \
    265	uint32_t RMU_3DLUT_DATA[MAX_RMU]; \
    266	uint32_t RMU_3DLUT_DATA_30BIT[MAX_RMU]; \
    267	uint32_t RMU_3DLUT_READ_WRITE_CONTROL[MAX_RMU]; \
    268	uint32_t RMU_3DLUT_OUT_NORM_FACTOR[MAX_RMU]; \
    269	uint32_t RMU_3DLUT_OUT_OFFSET_R[MAX_RMU]; \
    270	uint32_t RMU_3DLUT_OUT_OFFSET_G[MAX_RMU]; \
    271	uint32_t RMU_3DLUT_OUT_OFFSET_B[MAX_RMU]; \
    272	uint32_t MPCC_OGAM_RAMB_START_SLOPE_CNTL_B[MAX_MPCC]; \
    273	uint32_t MPCC_OGAM_RAMB_START_SLOPE_CNTL_G[MAX_MPCC]; \
    274	uint32_t MPCC_OGAM_RAMB_START_SLOPE_CNTL_R[MAX_MPCC]; \
    275	uint32_t MPCC_OGAM_CONTROL[MAX_MPCC]; \
    276	uint32_t MPCC_OGAM_LUT_CONTROL[MAX_MPCC]; \
    277	uint32_t MPCC_OGAM_RAMB_OFFSET_B[MAX_MPCC]; \
    278	uint32_t MPCC_OGAM_RAMB_OFFSET_G[MAX_MPCC]; \
    279	uint32_t MPCC_OGAM_RAMB_OFFSET_R[MAX_MPCC]; \
    280	uint32_t MPCC_OGAM_RAMB_START_BASE_CNTL_B[MAX_MPCC]; \
    281	uint32_t MPCC_OGAM_RAMB_START_BASE_CNTL_G[MAX_MPCC]; \
    282	uint32_t MPCC_OGAM_RAMB_START_BASE_CNTL_R[MAX_MPCC]; \
    283	uint32_t MPC_OUT_CSC_COEF_FORMAT
    284
    285#define MPC_COMMON_MASK_SH_LIST_DCN3_0(mask_sh) \
    286	MPC_COMMON_MASK_SH_LIST_DCN1_0(mask_sh),\
    287	SF(MPCC0_MPCC_CONTROL, MPCC_BG_BPC, mask_sh),\
    288	SF(MPCC0_MPCC_CONTROL, MPCC_BOT_GAIN_MODE, mask_sh),\
    289	SF(MPCC0_MPCC_TOP_GAIN, MPCC_TOP_GAIN, mask_sh),\
    290	SF(MPCC0_MPCC_BOT_GAIN_INSIDE, MPCC_BOT_GAIN_INSIDE, mask_sh),\
    291	SF(MPCC0_MPCC_BOT_GAIN_OUTSIDE, MPCC_BOT_GAIN_OUTSIDE, mask_sh),\
    292	SF(MPC_OUT0_CSC_MODE, MPC_OCSC_MODE, mask_sh),\
    293	SF(MPC_OUT0_CSC_C11_C12_A, MPC_OCSC_C11_A, mask_sh),\
    294	SF(MPC_OUT0_CSC_C11_C12_A, MPC_OCSC_C12_A, mask_sh),\
    295	SF(MPCC0_MPCC_STATUS, MPCC_DISABLED, mask_sh),\
    296	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_PWR_FORCE, mask_sh),\
    297	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_PWR_DIS, mask_sh),\
    298	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_PWR_STATE, mask_sh),\
    299	SF(MPC_OUT0_DENORM_CONTROL, MPC_OUT_DENORM_MODE, mask_sh),\
    300	SF(MPC_OUT0_DENORM_CONTROL, MPC_OUT_DENORM_CLAMP_MAX_R_CR, mask_sh),\
    301	SF(MPC_OUT0_DENORM_CONTROL, MPC_OUT_DENORM_CLAMP_MIN_R_CR, mask_sh),\
    302	SF(MPC_OUT0_DENORM_CLAMP_G_Y, MPC_OUT_DENORM_CLAMP_MAX_G_Y, mask_sh),\
    303	SF(MPC_OUT0_DENORM_CLAMP_G_Y, MPC_OUT_DENORM_CLAMP_MIN_G_Y, mask_sh),\
    304	SF(MPC_OUT0_DENORM_CLAMP_B_CB, MPC_OUT_DENORM_CLAMP_MAX_B_CB, mask_sh),\
    305	SF(MPC_OUT0_DENORM_CLAMP_B_CB, MPC_OUT_DENORM_CLAMP_MIN_B_CB, mask_sh),\
    306	SF(MPCC_OGAM0_MPCC_GAMUT_REMAP_MODE, MPCC_GAMUT_REMAP_MODE, mask_sh),\
    307	SF(MPCC_OGAM0_MPCC_GAMUT_REMAP_MODE, MPCC_GAMUT_REMAP_MODE_CURRENT, mask_sh),\
    308	SF(MPCC_OGAM0_MPCC_GAMUT_REMAP_COEF_FORMAT, MPCC_GAMUT_REMAP_COEF_FORMAT, mask_sh),\
    309	SF(MPCC_OGAM0_MPC_GAMUT_REMAP_C11_C12_A, MPCC_GAMUT_REMAP_C11_A, mask_sh),\
    310	SF(MPCC_OGAM0_MPC_GAMUT_REMAP_C11_C12_A, MPCC_GAMUT_REMAP_C12_A, mask_sh),\
    311	SF(MPC_DWB0_MUX, MPC_DWB0_MUX, mask_sh),\
    312	SF(MPC_DWB0_MUX, MPC_DWB0_MUX_STATUS, mask_sh),\
    313	SF(MPC_OUT0_MUX, MPC_OUT_RATE_CONTROL, mask_sh),\
    314	SF(MPC_OUT0_MUX, MPC_OUT_RATE_CONTROL_DISABLE, mask_sh),\
    315	SF(MPC_OUT0_MUX, MPC_OUT_FLOW_CONTROL_MODE, mask_sh),\
    316	SF(MPC_OUT0_MUX, MPC_OUT_FLOW_CONTROL_COUNT, mask_sh), \
    317	SF(MPC_RMU_CONTROL, MPC_RMU0_MUX, mask_sh), \
    318	SF(MPC_RMU_CONTROL, MPC_RMU1_MUX, mask_sh), \
    319	SF(MPC_RMU_CONTROL, MPC_RMU0_MUX_STATUS, mask_sh), \
    320	SF(MPC_RMU_CONTROL, MPC_RMU1_MUX_STATUS, mask_sh), \
    321	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION0_LUT_OFFSET, mask_sh),\
    322	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION0_NUM_SEGMENTS, mask_sh),\
    323	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION1_LUT_OFFSET, mask_sh),\
    324	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION1_NUM_SEGMENTS, mask_sh),\
    325	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_END_CNTL2_B, MPCC_OGAM_RAMA_EXP_REGION_END_SLOPE_B, mask_sh),\
    326	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_END_CNTL2_B, MPCC_OGAM_RAMA_EXP_REGION_END_B, mask_sh),\
    327	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_END_CNTL1_B, MPCC_OGAM_RAMA_EXP_REGION_END_BASE_B, mask_sh),\
    328	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_SLOPE_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_SLOPE_B, mask_sh),\
    329	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_BASE_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_BASE_B, mask_sh),\
    330	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_B, mask_sh),\
    331	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_SEGMENT_B, mask_sh),\
    332	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_OFFSET_B, MPCC_OGAM_RAMA_OFFSET_B, mask_sh),\
    333	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_OFFSET_G, MPCC_OGAM_RAMA_OFFSET_G, mask_sh),\
    334	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_OFFSET_R, MPCC_OGAM_RAMA_OFFSET_R, mask_sh),\
    335	SF(MPCC_OGAM0_MPCC_OGAM_LUT_INDEX, MPCC_OGAM_LUT_INDEX, mask_sh),\
    336	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_MODE, mask_sh),\
    337	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_SELECT, mask_sh),\
    338	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_PWL_DISABLE, mask_sh),\
    339	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_MODE_CURRENT, mask_sh),\
    340	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_SELECT_CURRENT, mask_sh),\
    341	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_WRITE_COLOR_MASK, mask_sh),\
    342	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_READ_COLOR_SEL, mask_sh),\
    343	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_READ_DBG, mask_sh),\
    344	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_HOST_SEL, mask_sh),\
    345	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_CONFIG_MODE, mask_sh),\
    346	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_STATUS, mask_sh),\
    347	SF(MPCC_OGAM0_MPCC_OGAM_LUT_DATA, MPCC_OGAM_LUT_DATA, mask_sh),\
    348	SF(MPC_RMU0_3DLUT_MODE, MPC_RMU_3DLUT_MODE, mask_sh),\
    349	SF(MPC_RMU0_3DLUT_MODE, MPC_RMU_3DLUT_SIZE, mask_sh),\
    350	SF(MPC_RMU0_3DLUT_MODE, MPC_RMU_3DLUT_MODE_CURRENT, mask_sh),\
    351	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_WRITE_EN_MASK, mask_sh),\
    352	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_RAM_SEL, mask_sh),\
    353	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_30BIT_EN, mask_sh),\
    354	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_CONFIG_STATUS, mask_sh),\
    355	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_READ_SEL, mask_sh),\
    356	SF(MPC_RMU0_3DLUT_INDEX, MPC_RMU_3DLUT_INDEX, mask_sh),\
    357	SF(MPC_RMU0_3DLUT_DATA, MPC_RMU_3DLUT_DATA0, mask_sh),\
    358	SF(MPC_RMU0_3DLUT_DATA, MPC_RMU_3DLUT_DATA1, mask_sh),\
    359	SF(MPC_RMU0_3DLUT_DATA_30BIT, MPC_RMU_3DLUT_DATA_30BIT, mask_sh),\
    360	SF(MPC_RMU0_SHAPER_CONTROL, MPC_RMU_SHAPER_LUT_MODE, mask_sh),\
    361	SF(MPC_RMU0_SHAPER_CONTROL, MPC_RMU_SHAPER_LUT_MODE_CURRENT, mask_sh),\
    362	SF(MPC_RMU0_SHAPER_OFFSET_R, MPC_RMU_SHAPER_OFFSET_R, mask_sh),\
    363	SF(MPC_RMU0_SHAPER_OFFSET_G, MPC_RMU_SHAPER_OFFSET_G, mask_sh),\
    364	SF(MPC_RMU0_SHAPER_OFFSET_B, MPC_RMU_SHAPER_OFFSET_B, mask_sh),\
    365	SF(MPC_RMU0_SHAPER_SCALE_R, MPC_RMU_SHAPER_SCALE_R, mask_sh),\
    366	SF(MPC_RMU0_SHAPER_SCALE_G_B, MPC_RMU_SHAPER_SCALE_G, mask_sh),\
    367	SF(MPC_RMU0_SHAPER_SCALE_G_B, MPC_RMU_SHAPER_SCALE_B, mask_sh),\
    368	SF(MPC_RMU0_SHAPER_LUT_INDEX, MPC_RMU_SHAPER_LUT_INDEX, mask_sh),\
    369	SF(MPC_RMU0_SHAPER_LUT_DATA, MPC_RMU_SHAPER_LUT_DATA, mask_sh),\
    370	SF(MPC_RMU0_SHAPER_LUT_WRITE_EN_MASK, MPC_RMU_SHAPER_LUT_WRITE_EN_MASK, mask_sh),\
    371	SF(MPC_RMU0_SHAPER_LUT_WRITE_EN_MASK, MPC_RMU_SHAPER_LUT_WRITE_SEL, mask_sh),\
    372	SF(MPC_RMU0_SHAPER_LUT_WRITE_EN_MASK, MPC_RMU_SHAPER_CONFIG_STATUS, mask_sh),\
    373	SF(MPC_RMU0_SHAPER_RAMA_START_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_START_B, mask_sh),\
    374	SF(MPC_RMU0_SHAPER_RAMA_START_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_START_SEGMENT_B, mask_sh),\
    375	SF(MPC_RMU0_SHAPER_RAMA_END_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_END_B, mask_sh),\
    376	SF(MPC_RMU0_SHAPER_RAMA_END_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_END_BASE_B, mask_sh),\
    377	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION0_LUT_OFFSET, mask_sh),\
    378	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION0_NUM_SEGMENTS, mask_sh),\
    379	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION1_LUT_OFFSET, mask_sh),\
    380	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION1_NUM_SEGMENTS, mask_sh),\
    381	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_MEM_PWR_FORCE, mask_sh),\
    382	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_MEM_PWR_DIS, mask_sh),\
    383	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_SHAPER_MEM_PWR_STATE, mask_sh),\
    384	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_3DLUT_MEM_PWR_STATE, mask_sh),\
    385	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU1_MEM_PWR_FORCE, mask_sh),\
    386	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU1_MEM_PWR_DIS, mask_sh),\
    387	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU1_SHAPER_MEM_PWR_STATE, mask_sh),\
    388	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU1_3DLUT_MEM_PWR_STATE, mask_sh),\
    389	SF(CUR_VUPDATE_LOCK_SET0, CUR_VUPDATE_LOCK_SET, mask_sh)
    390
    391
    392#define MPC_COMMON_MASK_SH_LIST_DCN30(mask_sh) \
    393	MPC_COMMON_MASK_SH_LIST_DCN1_0(mask_sh),\
    394	SF(MPCC0_MPCC_CONTROL, MPCC_BG_BPC, mask_sh),\
    395	SF(MPCC0_MPCC_CONTROL, MPCC_BOT_GAIN_MODE, mask_sh),\
    396	SF(MPCC0_MPCC_TOP_GAIN, MPCC_TOP_GAIN, mask_sh),\
    397	SF(MPCC0_MPCC_BOT_GAIN_INSIDE, MPCC_BOT_GAIN_INSIDE, mask_sh),\
    398	SF(MPCC0_MPCC_BOT_GAIN_OUTSIDE, MPCC_BOT_GAIN_OUTSIDE, mask_sh),\
    399	SF(MPC_OUT0_CSC_MODE, MPC_OCSC_MODE, mask_sh),\
    400	SF(MPC_OUT0_CSC_C11_C12_A, MPC_OCSC_C11_A, mask_sh),\
    401	SF(MPC_OUT0_CSC_C11_C12_A, MPC_OCSC_C12_A, mask_sh),\
    402	SF(MPCC0_MPCC_STATUS, MPCC_DISABLED, mask_sh),\
    403	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_PWR_FORCE, mask_sh),\
    404	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_PWR_DIS, mask_sh),\
    405	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_LOW_PWR_MODE, mask_sh),\
    406	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_PWR_STATE, mask_sh),\
    407	SF(MPC_OUT0_DENORM_CONTROL, MPC_OUT_DENORM_MODE, mask_sh),\
    408	SF(MPC_OUT0_DENORM_CONTROL, MPC_OUT_DENORM_CLAMP_MAX_R_CR, mask_sh),\
    409	SF(MPC_OUT0_DENORM_CONTROL, MPC_OUT_DENORM_CLAMP_MIN_R_CR, mask_sh),\
    410	SF(MPC_OUT0_DENORM_CLAMP_G_Y, MPC_OUT_DENORM_CLAMP_MAX_G_Y, mask_sh),\
    411	SF(MPC_OUT0_DENORM_CLAMP_G_Y, MPC_OUT_DENORM_CLAMP_MIN_G_Y, mask_sh),\
    412	SF(MPC_OUT0_DENORM_CLAMP_B_CB, MPC_OUT_DENORM_CLAMP_MAX_B_CB, mask_sh),\
    413	SF(MPC_OUT0_DENORM_CLAMP_B_CB, MPC_OUT_DENORM_CLAMP_MIN_B_CB, mask_sh),\
    414	SF(MPCC_OGAM0_MPCC_GAMUT_REMAP_MODE, MPCC_GAMUT_REMAP_MODE, mask_sh),\
    415	SF(MPCC_OGAM0_MPCC_GAMUT_REMAP_MODE, MPCC_GAMUT_REMAP_MODE_CURRENT, mask_sh),\
    416	SF(MPCC_OGAM0_MPCC_GAMUT_REMAP_COEF_FORMAT, MPCC_GAMUT_REMAP_COEF_FORMAT, mask_sh),\
    417	SF(MPCC_OGAM0_MPC_GAMUT_REMAP_C11_C12_A, MPCC_GAMUT_REMAP_C11_A, mask_sh),\
    418	SF(MPCC_OGAM0_MPC_GAMUT_REMAP_C11_C12_A, MPCC_GAMUT_REMAP_C12_A, mask_sh),\
    419	SF(MPC_DWB0_MUX, MPC_DWB0_MUX, mask_sh),\
    420	SF(MPC_DWB0_MUX, MPC_DWB0_MUX_STATUS, mask_sh),\
    421	SF(MPC_OUT0_MUX, MPC_OUT_RATE_CONTROL, mask_sh),\
    422	SF(MPC_OUT0_MUX, MPC_OUT_RATE_CONTROL_DISABLE, mask_sh),\
    423	SF(MPC_OUT0_MUX, MPC_OUT_FLOW_CONTROL_MODE, mask_sh),\
    424	SF(MPC_OUT0_MUX, MPC_OUT_FLOW_CONTROL_COUNT, mask_sh), \
    425	SF(MPC_RMU_CONTROL, MPC_RMU0_MUX, mask_sh), \
    426	SF(MPC_RMU_CONTROL, MPC_RMU1_MUX, mask_sh), \
    427	SF(MPC_RMU_CONTROL, MPC_RMU0_MUX_STATUS, mask_sh), \
    428	SF(MPC_RMU_CONTROL, MPC_RMU1_MUX_STATUS, mask_sh), \
    429	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION0_LUT_OFFSET, mask_sh),\
    430	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION0_NUM_SEGMENTS, mask_sh),\
    431	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION1_LUT_OFFSET, mask_sh),\
    432	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION1_NUM_SEGMENTS, mask_sh),\
    433	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_END_CNTL2_B, MPCC_OGAM_RAMA_EXP_REGION_END_SLOPE_B, mask_sh),\
    434	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_END_CNTL2_B, MPCC_OGAM_RAMA_EXP_REGION_END_B, mask_sh),\
    435	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_END_CNTL1_B, MPCC_OGAM_RAMA_EXP_REGION_END_BASE_B, mask_sh),\
    436	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_SLOPE_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_SLOPE_B, mask_sh),\
    437	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_BASE_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_BASE_B, mask_sh),\
    438	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_B, mask_sh),\
    439	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_SEGMENT_B, mask_sh),\
    440	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_OFFSET_B, MPCC_OGAM_RAMA_OFFSET_B, mask_sh),\
    441	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_OFFSET_G, MPCC_OGAM_RAMA_OFFSET_G, mask_sh),\
    442	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_OFFSET_R, MPCC_OGAM_RAMA_OFFSET_R, mask_sh),\
    443	SF(MPCC_OGAM0_MPCC_OGAM_LUT_INDEX, MPCC_OGAM_LUT_INDEX, mask_sh),\
    444	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_MODE, mask_sh),\
    445	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_SELECT, mask_sh),\
    446	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_PWL_DISABLE, mask_sh),\
    447	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_MODE_CURRENT, mask_sh),\
    448	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_SELECT_CURRENT, mask_sh),\
    449	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_WRITE_COLOR_MASK, mask_sh),\
    450	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_READ_COLOR_SEL, mask_sh),\
    451	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_READ_DBG, mask_sh),\
    452	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_HOST_SEL, mask_sh),\
    453	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_CONFIG_MODE, mask_sh),\
    454	/*SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_STATUS, mask_sh),*/\
    455	SF(MPCC_OGAM0_MPCC_OGAM_LUT_DATA, MPCC_OGAM_LUT_DATA, mask_sh),\
    456	SF(MPC_RMU0_3DLUT_MODE, MPC_RMU_3DLUT_MODE, mask_sh),\
    457	SF(MPC_RMU0_3DLUT_MODE, MPC_RMU_3DLUT_SIZE, mask_sh),\
    458	/*SF(MPC_RMU0_3DLUT_MODE, MPC_RMU_3DLUT_MODE_CURRENT, mask_sh),*/\
    459	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_WRITE_EN_MASK, mask_sh),\
    460	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_RAM_SEL, mask_sh),\
    461	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_30BIT_EN, mask_sh),\
    462	/*SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_CONFIG_STATUS, mask_sh),*/\
    463	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_READ_SEL, mask_sh),\
    464	SF(MPC_RMU0_3DLUT_INDEX, MPC_RMU_3DLUT_INDEX, mask_sh),\
    465	SF(MPC_RMU0_3DLUT_DATA, MPC_RMU_3DLUT_DATA0, mask_sh),\
    466	SF(MPC_RMU0_3DLUT_DATA, MPC_RMU_3DLUT_DATA1, mask_sh),\
    467	SF(MPC_RMU0_3DLUT_DATA_30BIT, MPC_RMU_3DLUT_DATA_30BIT, mask_sh),\
    468	SF(MPC_RMU0_SHAPER_CONTROL, MPC_RMU_SHAPER_LUT_MODE, mask_sh),\
    469	/*SF(MPC_RMU0_SHAPER_CONTROL, MPC_RMU_SHAPER_LUT_MODE_CURRENT, mask_sh),*/\
    470	SF(MPC_RMU0_SHAPER_OFFSET_R, MPC_RMU_SHAPER_OFFSET_R, mask_sh),\
    471	SF(MPC_RMU0_SHAPER_OFFSET_G, MPC_RMU_SHAPER_OFFSET_G, mask_sh),\
    472	SF(MPC_RMU0_SHAPER_OFFSET_B, MPC_RMU_SHAPER_OFFSET_B, mask_sh),\
    473	SF(MPC_RMU0_SHAPER_SCALE_R, MPC_RMU_SHAPER_SCALE_R, mask_sh),\
    474	SF(MPC_RMU0_SHAPER_SCALE_G_B, MPC_RMU_SHAPER_SCALE_G, mask_sh),\
    475	SF(MPC_RMU0_SHAPER_SCALE_G_B, MPC_RMU_SHAPER_SCALE_B, mask_sh),\
    476	SF(MPC_RMU0_SHAPER_LUT_INDEX, MPC_RMU_SHAPER_LUT_INDEX, mask_sh),\
    477	SF(MPC_RMU0_SHAPER_LUT_DATA, MPC_RMU_SHAPER_LUT_DATA, mask_sh),\
    478	SF(MPC_RMU0_SHAPER_LUT_WRITE_EN_MASK, MPC_RMU_SHAPER_LUT_WRITE_EN_MASK, mask_sh),\
    479	SF(MPC_RMU0_SHAPER_LUT_WRITE_EN_MASK, MPC_RMU_SHAPER_LUT_WRITE_SEL, mask_sh),\
    480	/*SF(MPC_RMU0_SHAPER_LUT_WRITE_EN_MASK, MPC_RMU_SHAPER_CONFIG_STATUS, mask_sh),*/\
    481	SF(MPC_RMU0_SHAPER_RAMA_START_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_START_B, mask_sh),\
    482	SF(MPC_RMU0_SHAPER_RAMA_START_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_START_SEGMENT_B, mask_sh),\
    483	SF(MPC_RMU0_SHAPER_RAMA_END_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_END_B, mask_sh),\
    484	SF(MPC_RMU0_SHAPER_RAMA_END_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_END_BASE_B, mask_sh),\
    485	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION0_LUT_OFFSET, mask_sh),\
    486	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION0_NUM_SEGMENTS, mask_sh),\
    487	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION1_LUT_OFFSET, mask_sh),\
    488	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION1_NUM_SEGMENTS, mask_sh),\
    489	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_MEM_PWR_FORCE, mask_sh),\
    490	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_MEM_PWR_DIS, mask_sh),\
    491	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_SHAPER_MEM_PWR_STATE, mask_sh),\
    492	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_3DLUT_MEM_PWR_STATE, mask_sh),\
    493	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_MEM_LOW_PWR_MODE, mask_sh),\
    494	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU1_MEM_PWR_FORCE, mask_sh),\
    495	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU1_MEM_PWR_DIS, mask_sh),\
    496	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU1_SHAPER_MEM_PWR_STATE, mask_sh),\
    497	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU1_3DLUT_MEM_PWR_STATE, mask_sh),\
    498	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU1_MEM_LOW_PWR_MODE, mask_sh),\
    499	SF(MPC_RMU0_SHAPER_CONTROL, MPC_RMU_SHAPER_MODE_CURRENT, mask_sh),\
    500	SF(CUR_VUPDATE_LOCK_SET0, CUR_VUPDATE_LOCK_SET, mask_sh)
    501
    502
    503#define MPC_REG_FIELD_LIST_DCN3_0(type) \
    504	MPC_REG_FIELD_LIST_DCN2_0(type) \
    505	type MPC_DWB0_MUX;\
    506	type MPC_DWB0_MUX_STATUS;\
    507	type MPC_OUT_RATE_CONTROL;\
    508	type MPC_OUT_RATE_CONTROL_DISABLE;\
    509	type MPC_OUT_FLOW_CONTROL_MODE;\
    510	type MPC_OUT_FLOW_CONTROL_COUNT; \
    511	type MPCC_GAMUT_REMAP_MODE; \
    512	type MPCC_GAMUT_REMAP_MODE_CURRENT;\
    513	type MPCC_GAMUT_REMAP_COEF_FORMAT; \
    514	type MPCC_GAMUT_REMAP_C11_A; \
    515	type MPCC_GAMUT_REMAP_C12_A; \
    516	type MPC_RMU0_MUX; \
    517	type MPC_RMU1_MUX; \
    518	type MPC_RMU0_MUX_STATUS; \
    519	type MPC_RMU1_MUX_STATUS; \
    520	type MPC_RMU0_MEM_PWR_FORCE;\
    521	type MPC_RMU0_MEM_PWR_DIS;\
    522	type MPC_RMU0_MEM_LOW_PWR_MODE;\
    523	type MPC_RMU0_SHAPER_MEM_PWR_STATE;\
    524	type MPC_RMU0_3DLUT_MEM_PWR_STATE;\
    525	type MPC_RMU1_MEM_PWR_FORCE;\
    526	type MPC_RMU1_MEM_PWR_DIS;\
    527	type MPC_RMU1_MEM_LOW_PWR_MODE;\
    528	type MPC_RMU1_SHAPER_MEM_PWR_STATE;\
    529	type MPC_RMU1_3DLUT_MEM_PWR_STATE;\
    530	type MPCC_OGAM_RAMA_EXP_REGION_START_SLOPE_B; \
    531	type MPCC_OGAM_RAMA_EXP_REGION_START_BASE_B;\
    532	type MPCC_OGAM_RAMA_OFFSET_B;\
    533	type MPCC_OGAM_RAMA_OFFSET_G;\
    534	type MPCC_OGAM_RAMA_OFFSET_R;\
    535	type MPCC_OGAM_SELECT; \
    536	type MPCC_OGAM_PWL_DISABLE; \
    537	type MPCC_OGAM_MODE_CURRENT; \
    538	type MPCC_OGAM_SELECT_CURRENT; \
    539	type MPCC_OGAM_LUT_WRITE_COLOR_MASK; \
    540	type MPCC_OGAM_LUT_READ_COLOR_SEL; \
    541	type MPCC_OGAM_LUT_READ_DBG; \
    542	type MPCC_OGAM_LUT_HOST_SEL; \
    543	type MPCC_OGAM_LUT_CONFIG_MODE; \
    544	type MPCC_OGAM_LUT_STATUS; \
    545	type MPCC_OGAM_RAMA_START_BASE_CNTL_B;\
    546	type MPCC_OGAM_MEM_LOW_PWR_MODE;\
    547	type MPCC_OGAM_MEM_PWR_STATE;\
    548	type MPC_RMU_3DLUT_MODE; \
    549	type MPC_RMU_3DLUT_SIZE; \
    550	type MPC_RMU_3DLUT_MODE_CURRENT; \
    551	type MPC_RMU_3DLUT_WRITE_EN_MASK;\
    552	type MPC_RMU_3DLUT_RAM_SEL;\
    553	type MPC_RMU_3DLUT_30BIT_EN;\
    554	type MPC_RMU_3DLUT_CONFIG_STATUS;\
    555	type MPC_RMU_3DLUT_READ_SEL;\
    556	type MPC_RMU_3DLUT_INDEX;\
    557	type MPC_RMU_3DLUT_DATA0;\
    558	type MPC_RMU_3DLUT_DATA1;\
    559	type MPC_RMU_3DLUT_DATA_30BIT;\
    560	type MPC_RMU_SHAPER_LUT_MODE;\
    561	type MPC_RMU_SHAPER_LUT_MODE_CURRENT;\
    562	type MPC_RMU_SHAPER_OFFSET_R;\
    563	type MPC_RMU_SHAPER_OFFSET_G;\
    564	type MPC_RMU_SHAPER_OFFSET_B;\
    565	type MPC_RMU_SHAPER_SCALE_R;\
    566	type MPC_RMU_SHAPER_SCALE_G;\
    567	type MPC_RMU_SHAPER_SCALE_B;\
    568	type MPC_RMU_SHAPER_LUT_INDEX;\
    569	type MPC_RMU_SHAPER_LUT_DATA;\
    570	type MPC_RMU_SHAPER_LUT_WRITE_EN_MASK;\
    571	type MPC_RMU_SHAPER_LUT_WRITE_SEL;\
    572	type MPC_RMU_SHAPER_CONFIG_STATUS;\
    573	type MPC_RMU_SHAPER_RAMA_EXP_REGION_START_B;\
    574	type MPC_RMU_SHAPER_RAMA_EXP_REGION_START_SEGMENT_B;\
    575	type MPC_RMU_SHAPER_RAMA_EXP_REGION_END_B;\
    576	type MPC_RMU_SHAPER_RAMA_EXP_REGION_END_BASE_B;\
    577	type MPC_RMU_SHAPER_RAMA_EXP_REGION0_LUT_OFFSET;\
    578	type MPC_RMU_SHAPER_RAMA_EXP_REGION0_NUM_SEGMENTS;\
    579	type MPC_RMU_SHAPER_RAMA_EXP_REGION1_LUT_OFFSET;\
    580	type MPC_RMU_SHAPER_RAMA_EXP_REGION1_NUM_SEGMENTS;\
    581	type MPC_RMU_SHAPER_MODE_CURRENT
    582
    583#define MPC_COMMON_MASK_SH_LIST_DCN303(mask_sh) \
    584	MPC_COMMON_MASK_SH_LIST_DCN1_0(mask_sh),\
    585	SF(MPCC0_MPCC_CONTROL, MPCC_BG_BPC, mask_sh),\
    586	SF(MPCC0_MPCC_CONTROL, MPCC_BOT_GAIN_MODE, mask_sh),\
    587	SF(MPCC0_MPCC_TOP_GAIN, MPCC_TOP_GAIN, mask_sh),\
    588	SF(MPCC0_MPCC_BOT_GAIN_INSIDE, MPCC_BOT_GAIN_INSIDE, mask_sh),\
    589	SF(MPCC0_MPCC_BOT_GAIN_OUTSIDE, MPCC_BOT_GAIN_OUTSIDE, mask_sh),\
    590	SF(MPC_OUT0_CSC_MODE, MPC_OCSC_MODE, mask_sh),\
    591	SF(MPC_OUT0_CSC_C11_C12_A, MPC_OCSC_C11_A, mask_sh),\
    592	SF(MPC_OUT0_CSC_C11_C12_A, MPC_OCSC_C12_A, mask_sh),\
    593	SF(MPCC0_MPCC_STATUS, MPCC_DISABLED, mask_sh),\
    594	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_PWR_FORCE, mask_sh),\
    595	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_PWR_DIS, mask_sh),\
    596	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_LOW_PWR_MODE, mask_sh),\
    597	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_PWR_STATE, mask_sh),\
    598	SF(MPC_OUT0_DENORM_CONTROL, MPC_OUT_DENORM_MODE, mask_sh),\
    599	SF(MPC_OUT0_DENORM_CONTROL, MPC_OUT_DENORM_CLAMP_MAX_R_CR, mask_sh),\
    600	SF(MPC_OUT0_DENORM_CONTROL, MPC_OUT_DENORM_CLAMP_MIN_R_CR, mask_sh),\
    601	SF(MPC_OUT0_DENORM_CLAMP_G_Y, MPC_OUT_DENORM_CLAMP_MAX_G_Y, mask_sh),\
    602	SF(MPC_OUT0_DENORM_CLAMP_G_Y, MPC_OUT_DENORM_CLAMP_MIN_G_Y, mask_sh),\
    603	SF(MPC_OUT0_DENORM_CLAMP_B_CB, MPC_OUT_DENORM_CLAMP_MAX_B_CB, mask_sh),\
    604	SF(MPC_OUT0_DENORM_CLAMP_B_CB, MPC_OUT_DENORM_CLAMP_MIN_B_CB, mask_sh),\
    605	SF(MPCC_OGAM0_MPCC_GAMUT_REMAP_MODE, MPCC_GAMUT_REMAP_MODE, mask_sh),\
    606	SF(MPCC_OGAM0_MPCC_GAMUT_REMAP_MODE, MPCC_GAMUT_REMAP_MODE_CURRENT, mask_sh),\
    607	SF(MPCC_OGAM0_MPCC_GAMUT_REMAP_COEF_FORMAT, MPCC_GAMUT_REMAP_COEF_FORMAT, mask_sh),\
    608	SF(MPCC_OGAM0_MPC_GAMUT_REMAP_C11_C12_A, MPCC_GAMUT_REMAP_C11_A, mask_sh),\
    609	SF(MPCC_OGAM0_MPC_GAMUT_REMAP_C11_C12_A, MPCC_GAMUT_REMAP_C12_A, mask_sh),\
    610	SF(MPC_DWB0_MUX, MPC_DWB0_MUX, mask_sh),\
    611	SF(MPC_DWB0_MUX, MPC_DWB0_MUX_STATUS, mask_sh),\
    612	SF(MPC_OUT0_MUX, MPC_OUT_RATE_CONTROL, mask_sh),\
    613	SF(MPC_OUT0_MUX, MPC_OUT_RATE_CONTROL_DISABLE, mask_sh),\
    614	SF(MPC_OUT0_MUX, MPC_OUT_FLOW_CONTROL_MODE, mask_sh),\
    615	SF(MPC_OUT0_MUX, MPC_OUT_FLOW_CONTROL_COUNT, mask_sh), \
    616	SF(MPC_RMU_CONTROL, MPC_RMU0_MUX, mask_sh), \
    617	SF(MPC_RMU_CONTROL, MPC_RMU0_MUX_STATUS, mask_sh), \
    618	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION0_LUT_OFFSET, mask_sh),\
    619	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION0_NUM_SEGMENTS, mask_sh),\
    620	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION1_LUT_OFFSET, mask_sh),\
    621	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION1_NUM_SEGMENTS, mask_sh),\
    622	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_END_CNTL2_B, MPCC_OGAM_RAMA_EXP_REGION_END_SLOPE_B, mask_sh),\
    623	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_END_CNTL2_B, MPCC_OGAM_RAMA_EXP_REGION_END_B, mask_sh),\
    624	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_END_CNTL1_B, MPCC_OGAM_RAMA_EXP_REGION_END_BASE_B, mask_sh),\
    625	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_SLOPE_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_SLOPE_B, mask_sh),\
    626	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_BASE_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_BASE_B, mask_sh),\
    627	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_B, mask_sh),\
    628	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_SEGMENT_B, mask_sh),\
    629	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_OFFSET_B, MPCC_OGAM_RAMA_OFFSET_B, mask_sh),\
    630	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_OFFSET_G, MPCC_OGAM_RAMA_OFFSET_G, mask_sh),\
    631	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_OFFSET_R, MPCC_OGAM_RAMA_OFFSET_R, mask_sh),\
    632	SF(MPCC_OGAM0_MPCC_OGAM_LUT_INDEX, MPCC_OGAM_LUT_INDEX, mask_sh),\
    633	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_MODE, mask_sh),\
    634	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_SELECT, mask_sh),\
    635	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_PWL_DISABLE, mask_sh),\
    636	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_MODE_CURRENT, mask_sh),\
    637	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_SELECT_CURRENT, mask_sh),\
    638	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_WRITE_COLOR_MASK, mask_sh),\
    639	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_READ_COLOR_SEL, mask_sh),\
    640	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_READ_DBG, mask_sh),\
    641	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_HOST_SEL, mask_sh),\
    642	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_CONFIG_MODE, mask_sh),\
    643	/*SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_STATUS, mask_sh),*/\
    644	SF(MPCC_OGAM0_MPCC_OGAM_LUT_DATA, MPCC_OGAM_LUT_DATA, mask_sh),\
    645	SF(MPC_RMU0_3DLUT_MODE, MPC_RMU_3DLUT_MODE, mask_sh),\
    646	SF(MPC_RMU0_3DLUT_MODE, MPC_RMU_3DLUT_SIZE, mask_sh),\
    647	/*SF(MPC_RMU0_3DLUT_MODE, MPC_RMU_3DLUT_MODE_CURRENT, mask_sh),*/\
    648	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_WRITE_EN_MASK, mask_sh),\
    649	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_RAM_SEL, mask_sh),\
    650	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_30BIT_EN, mask_sh),\
    651	/*SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_CONFIG_STATUS, mask_sh),*/\
    652	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_READ_SEL, mask_sh),\
    653	SF(MPC_RMU0_3DLUT_INDEX, MPC_RMU_3DLUT_INDEX, mask_sh),\
    654	SF(MPC_RMU0_3DLUT_DATA, MPC_RMU_3DLUT_DATA0, mask_sh),\
    655	SF(MPC_RMU0_3DLUT_DATA, MPC_RMU_3DLUT_DATA1, mask_sh),\
    656	SF(MPC_RMU0_3DLUT_DATA_30BIT, MPC_RMU_3DLUT_DATA_30BIT, mask_sh),\
    657	SF(MPC_RMU0_SHAPER_CONTROL, MPC_RMU_SHAPER_LUT_MODE, mask_sh),\
    658	/*SF(MPC_RMU0_SHAPER_CONTROL, MPC_RMU_SHAPER_LUT_MODE_CURRENT, mask_sh),*/\
    659	SF(MPC_RMU0_SHAPER_OFFSET_R, MPC_RMU_SHAPER_OFFSET_R, mask_sh),\
    660	SF(MPC_RMU0_SHAPER_OFFSET_G, MPC_RMU_SHAPER_OFFSET_G, mask_sh),\
    661	SF(MPC_RMU0_SHAPER_OFFSET_B, MPC_RMU_SHAPER_OFFSET_B, mask_sh),\
    662	SF(MPC_RMU0_SHAPER_SCALE_R, MPC_RMU_SHAPER_SCALE_R, mask_sh),\
    663	SF(MPC_RMU0_SHAPER_SCALE_G_B, MPC_RMU_SHAPER_SCALE_G, mask_sh),\
    664	SF(MPC_RMU0_SHAPER_SCALE_G_B, MPC_RMU_SHAPER_SCALE_B, mask_sh),\
    665	SF(MPC_RMU0_SHAPER_LUT_INDEX, MPC_RMU_SHAPER_LUT_INDEX, mask_sh),\
    666	SF(MPC_RMU0_SHAPER_LUT_DATA, MPC_RMU_SHAPER_LUT_DATA, mask_sh),\
    667	SF(MPC_RMU0_SHAPER_LUT_WRITE_EN_MASK, MPC_RMU_SHAPER_LUT_WRITE_EN_MASK, mask_sh),\
    668	SF(MPC_RMU0_SHAPER_LUT_WRITE_EN_MASK, MPC_RMU_SHAPER_LUT_WRITE_SEL, mask_sh),\
    669	/*SF(MPC_RMU0_SHAPER_LUT_WRITE_EN_MASK, MPC_RMU_SHAPER_CONFIG_STATUS, mask_sh),*/\
    670	SF(MPC_RMU0_SHAPER_RAMA_START_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_START_B, mask_sh),\
    671	SF(MPC_RMU0_SHAPER_RAMA_START_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_START_SEGMENT_B, mask_sh),\
    672	SF(MPC_RMU0_SHAPER_RAMA_END_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_END_B, mask_sh),\
    673	SF(MPC_RMU0_SHAPER_RAMA_END_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_END_BASE_B, mask_sh),\
    674	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION0_LUT_OFFSET, mask_sh),\
    675	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION0_NUM_SEGMENTS, mask_sh),\
    676	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION1_LUT_OFFSET, mask_sh),\
    677	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION1_NUM_SEGMENTS, mask_sh),\
    678	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_MEM_PWR_FORCE, mask_sh),\
    679	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_MEM_PWR_DIS, mask_sh),\
    680	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_SHAPER_MEM_PWR_STATE, mask_sh),\
    681	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_3DLUT_MEM_PWR_STATE, mask_sh),\
    682	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_MEM_LOW_PWR_MODE, mask_sh),\
    683	SF(MPC_RMU0_SHAPER_CONTROL, MPC_RMU_SHAPER_MODE_CURRENT, mask_sh),\
    684	SF(CUR_VUPDATE_LOCK_SET0, CUR_VUPDATE_LOCK_SET, mask_sh)
    685
    686#define MPC_REG_FIELD_LIST_DCN3_03(type) \
    687	MPC_REG_FIELD_LIST_DCN2_0(type) \
    688	type MPC_DWB0_MUX;\
    689	type MPC_DWB0_MUX_STATUS;\
    690	type MPC_OUT_RATE_CONTROL;\
    691	type MPC_OUT_RATE_CONTROL_DISABLE;\
    692	type MPC_OUT_FLOW_CONTROL_MODE;\
    693	type MPC_OUT_FLOW_CONTROL_COUNT; \
    694	type MPCC_GAMUT_REMAP_MODE; \
    695	type MPCC_GAMUT_REMAP_MODE_CURRENT;\
    696	type MPCC_GAMUT_REMAP_COEF_FORMAT; \
    697	type MPCC_GAMUT_REMAP_C11_A; \
    698	type MPCC_GAMUT_REMAP_C12_A; \
    699	type MPC_RMU0_MUX; \
    700	type MPC_RMU0_MUX_STATUS; \
    701	type MPC_RMU0_MEM_PWR_FORCE;\
    702	type MPC_RMU0_MEM_PWR_DIS;\
    703	type MPC_RMU0_MEM_LOW_PWR_MODE;\
    704	type MPC_RMU0_SHAPER_MEM_PWR_STATE;\
    705	type MPC_RMU0_3DLUT_MEM_PWR_STATE;\
    706	type MPCC_OGAM_RAMA_EXP_REGION_START_SLOPE_B; \
    707	type MPCC_OGAM_RAMA_EXP_REGION_START_BASE_B;\
    708	type MPCC_OGAM_RAMA_OFFSET_B;\
    709	type MPCC_OGAM_RAMA_OFFSET_G;\
    710	type MPCC_OGAM_RAMA_OFFSET_R;\
    711	type MPCC_OGAM_SELECT; \
    712	type MPCC_OGAM_PWL_DISABLE; \
    713	type MPCC_OGAM_MODE_CURRENT; \
    714	type MPCC_OGAM_SELECT_CURRENT; \
    715	type MPCC_OGAM_LUT_WRITE_COLOR_MASK; \
    716	type MPCC_OGAM_LUT_READ_COLOR_SEL; \
    717	type MPCC_OGAM_LUT_READ_DBG; \
    718	type MPCC_OGAM_LUT_HOST_SEL; \
    719	type MPCC_OGAM_LUT_CONFIG_MODE; \
    720	type MPCC_OGAM_LUT_STATUS; \
    721	type MPCC_OGAM_RAMA_START_BASE_CNTL_B;\
    722	type MPCC_OGAM_MEM_LOW_PWR_MODE;\
    723	type MPCC_OGAM_MEM_PWR_STATE;\
    724	type MPC_RMU_3DLUT_MODE; \
    725	type MPC_RMU_3DLUT_SIZE; \
    726	type MPC_RMU_3DLUT_MODE_CURRENT; \
    727	type MPC_RMU_3DLUT_WRITE_EN_MASK;\
    728	type MPC_RMU_3DLUT_RAM_SEL;\
    729	type MPC_RMU_3DLUT_30BIT_EN;\
    730	type MPC_RMU_3DLUT_CONFIG_STATUS;\
    731	type MPC_RMU_3DLUT_READ_SEL;\
    732	type MPC_RMU_3DLUT_INDEX;\
    733	type MPC_RMU_3DLUT_DATA0;\
    734	type MPC_RMU_3DLUT_DATA1;\
    735	type MPC_RMU_3DLUT_DATA_30BIT;\
    736	type MPC_RMU_SHAPER_LUT_MODE;\
    737	type MPC_RMU_SHAPER_LUT_MODE_CURRENT;\
    738	type MPC_RMU_SHAPER_OFFSET_R;\
    739	type MPC_RMU_SHAPER_OFFSET_G;\
    740	type MPC_RMU_SHAPER_OFFSET_B;\
    741	type MPC_RMU_SHAPER_SCALE_R;\
    742	type MPC_RMU_SHAPER_SCALE_G;\
    743	type MPC_RMU_SHAPER_SCALE_B;\
    744	type MPC_RMU_SHAPER_LUT_INDEX;\
    745	type MPC_RMU_SHAPER_LUT_DATA;\
    746	type MPC_RMU_SHAPER_LUT_WRITE_EN_MASK;\
    747	type MPC_RMU_SHAPER_LUT_WRITE_SEL;\
    748	type MPC_RMU_SHAPER_CONFIG_STATUS;\
    749	type MPC_RMU_SHAPER_RAMA_EXP_REGION_START_B;\
    750	type MPC_RMU_SHAPER_RAMA_EXP_REGION_START_SEGMENT_B;\
    751	type MPC_RMU_SHAPER_RAMA_EXP_REGION_END_B;\
    752	type MPC_RMU_SHAPER_RAMA_EXP_REGION_END_BASE_B;\
    753	type MPC_RMU_SHAPER_RAMA_EXP_REGION0_LUT_OFFSET;\
    754	type MPC_RMU_SHAPER_RAMA_EXP_REGION0_NUM_SEGMENTS;\
    755	type MPC_RMU_SHAPER_RAMA_EXP_REGION1_LUT_OFFSET;\
    756	type MPC_RMU_SHAPER_RAMA_EXP_REGION1_NUM_SEGMENTS;\
    757	type MPC_RMU_SHAPER_MODE_CURRENT
    758
    759struct dcn30_mpc_registers {
    760	MPC_REG_VARIABLE_LIST_DCN3_0;
    761};
    762
    763struct dcn30_mpc_shift {
    764	MPC_REG_FIELD_LIST_DCN3_0(uint8_t);
    765};
    766
    767struct dcn30_mpc_mask {
    768	MPC_REG_FIELD_LIST_DCN3_0(uint32_t);
    769};
    770
    771struct dcn30_mpc {
    772	struct mpc base;
    773
    774	int mpcc_in_use_mask;
    775	int num_mpcc;
    776	const struct dcn30_mpc_registers *mpc_regs;
    777	const struct dcn30_mpc_shift *mpc_shift;
    778	const struct dcn30_mpc_mask *mpc_mask;
    779	int num_rmu;
    780};
    781
    782void dcn30_mpc_construct(struct dcn30_mpc *mpc30,
    783	struct dc_context *ctx,
    784	const struct dcn30_mpc_registers *mpc_regs,
    785	const struct dcn30_mpc_shift *mpc_shift,
    786	const struct dcn30_mpc_mask *mpc_mask,
    787	int num_mpcc,
    788	int num_rmu);
    789
    790bool mpc3_program_shaper(
    791		struct mpc *mpc,
    792		const struct pwl_params *params,
    793		uint32_t rmu_idx);
    794
    795bool mpc3_program_3dlut(
    796		struct mpc *mpc,
    797		const struct tetrahedral_params *params,
    798		int rmu_idx);
    799
    800uint32_t mpcc3_acquire_rmu(struct mpc *mpc,
    801		int mpcc_id, int rmu_idx);
    802
    803void mpc3_set_denorm(
    804	struct mpc *mpc,
    805	int opp_id,
    806	enum dc_color_depth output_depth);
    807
    808void mpc3_set_denorm_clamp(
    809	struct mpc *mpc,
    810	int opp_id,
    811	struct mpc_denorm_clamp denorm_clamp);
    812
    813void mpc3_set_output_csc(
    814	struct mpc *mpc,
    815	int opp_id,
    816	const uint16_t *regval,
    817	enum mpc_output_csc_mode ocsc_mode);
    818
    819void mpc3_set_ocsc_default(
    820	struct mpc *mpc,
    821	int opp_id,
    822	enum dc_color_space color_space,
    823	enum mpc_output_csc_mode ocsc_mode);
    824
    825void mpc3_set_output_gamma(
    826	struct mpc *mpc,
    827	int mpcc_id,
    828	const struct pwl_params *params);
    829
    830uint32_t mpc3_get_rmu_mux_status(
    831	struct mpc *mpc,
    832	int rmu_idx);
    833
    834void mpc3_set_gamut_remap(
    835	struct mpc *mpc,
    836	int mpcc_id,
    837	const struct mpc_grph_gamut_adjustment *adjust);
    838
    839void mpc3_set_rmu_mux(
    840	struct mpc *mpc,
    841	int rmu_idx,
    842	int value);
    843
    844#endif