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_REG_VARIABLE_LIST_DCN32 \
286	uint32_t MPCC_MOVABLE_CM_LOCATION_CONTROL[MAX_MPCC]; \
287	uint32_t MPCC_MCM_SHAPER_CONTROL[MAX_MPCC]; \
288	uint32_t MPCC_MCM_SHAPER_OFFSET_R[MAX_MPCC]; \
289	uint32_t MPCC_MCM_SHAPER_OFFSET_G[MAX_MPCC]; \
290	uint32_t MPCC_MCM_SHAPER_OFFSET_B[MAX_MPCC]; \
291	uint32_t MPCC_MCM_SHAPER_SCALE_R[MAX_MPCC]; \
292	uint32_t MPCC_MCM_SHAPER_SCALE_G_B[MAX_MPCC]; \
293	uint32_t MPCC_MCM_SHAPER_LUT_INDEX[MAX_MPCC]; \
294	uint32_t MPCC_MCM_SHAPER_LUT_DATA[MAX_MPCC]; \
295	uint32_t MPCC_MCM_SHAPER_LUT_WRITE_EN_MASK[MAX_MPCC]; \
296	uint32_t MPCC_MCM_SHAPER_RAMA_START_CNTL_B[MAX_MPCC]; \
297	uint32_t MPCC_MCM_SHAPER_RAMA_START_CNTL_G[MAX_MPCC]; \
298	uint32_t MPCC_MCM_SHAPER_RAMA_START_CNTL_R[MAX_MPCC]; \
299	uint32_t MPCC_MCM_SHAPER_RAMA_END_CNTL_B[MAX_MPCC]; \
300	uint32_t MPCC_MCM_SHAPER_RAMA_END_CNTL_G[MAX_MPCC]; \
301	uint32_t MPCC_MCM_SHAPER_RAMA_END_CNTL_R[MAX_MPCC]; \
302	uint32_t MPCC_MCM_SHAPER_RAMA_REGION_0_1[MAX_MPCC]; \
303	uint32_t MPCC_MCM_SHAPER_RAMA_REGION_2_3[MAX_MPCC]; \
304	uint32_t MPCC_MCM_SHAPER_RAMA_REGION_4_5[MAX_MPCC]; \
305	uint32_t MPCC_MCM_SHAPER_RAMA_REGION_6_7[MAX_MPCC]; \
306	uint32_t MPCC_MCM_SHAPER_RAMA_REGION_8_9[MAX_MPCC]; \
307	uint32_t MPCC_MCM_SHAPER_RAMA_REGION_10_11[MAX_MPCC]; \
308	uint32_t MPCC_MCM_SHAPER_RAMA_REGION_12_13[MAX_MPCC]; \
309	uint32_t MPCC_MCM_SHAPER_RAMA_REGION_14_15[MAX_MPCC]; \
310	uint32_t MPCC_MCM_SHAPER_RAMA_REGION_16_17[MAX_MPCC]; \
311	uint32_t MPCC_MCM_SHAPER_RAMA_REGION_18_19[MAX_MPCC]; \
312	uint32_t MPCC_MCM_SHAPER_RAMA_REGION_20_21[MAX_MPCC]; \
313	uint32_t MPCC_MCM_SHAPER_RAMA_REGION_22_23[MAX_MPCC]; \
314	uint32_t MPCC_MCM_SHAPER_RAMA_REGION_24_25[MAX_MPCC]; \
315	uint32_t MPCC_MCM_SHAPER_RAMA_REGION_26_27[MAX_MPCC]; \
316	uint32_t MPCC_MCM_SHAPER_RAMA_REGION_28_29[MAX_MPCC]; \
317	uint32_t MPCC_MCM_SHAPER_RAMA_REGION_30_31[MAX_MPCC]; \
318	uint32_t MPCC_MCM_SHAPER_RAMA_REGION_32_33[MAX_MPCC]; \
319	uint32_t MPCC_MCM_SHAPER_RAMB_START_CNTL_B[MAX_MPCC]; \
320	uint32_t MPCC_MCM_SHAPER_RAMB_START_CNTL_G[MAX_MPCC]; \
321	uint32_t MPCC_MCM_SHAPER_RAMB_START_CNTL_R[MAX_MPCC]; \
322	uint32_t MPCC_MCM_SHAPER_RAMB_END_CNTL_B[MAX_MPCC]; \
323	uint32_t MPCC_MCM_SHAPER_RAMB_END_CNTL_G[MAX_MPCC]; \
324	uint32_t MPCC_MCM_SHAPER_RAMB_END_CNTL_R[MAX_MPCC]; \
325	uint32_t MPCC_MCM_SHAPER_RAMB_REGION_0_1[MAX_MPCC]; \
326	uint32_t MPCC_MCM_SHAPER_RAMB_REGION_2_3[MAX_MPCC]; \
327	uint32_t MPCC_MCM_SHAPER_RAMB_REGION_4_5[MAX_MPCC]; \
328	uint32_t MPCC_MCM_SHAPER_RAMB_REGION_6_7[MAX_MPCC]; \
329	uint32_t MPCC_MCM_SHAPER_RAMB_REGION_8_9[MAX_MPCC]; \
330	uint32_t MPCC_MCM_SHAPER_RAMB_REGION_10_11[MAX_MPCC]; \
331	uint32_t MPCC_MCM_SHAPER_RAMB_REGION_12_13[MAX_MPCC]; \
332	uint32_t MPCC_MCM_SHAPER_RAMB_REGION_14_15[MAX_MPCC]; \
333	uint32_t MPCC_MCM_SHAPER_RAMB_REGION_16_17[MAX_MPCC]; \
334	uint32_t MPCC_MCM_SHAPER_RAMB_REGION_18_19[MAX_MPCC]; \
335	uint32_t MPCC_MCM_SHAPER_RAMB_REGION_20_21[MAX_MPCC]; \
336	uint32_t MPCC_MCM_SHAPER_RAMB_REGION_22_23[MAX_MPCC]; \
337	uint32_t MPCC_MCM_SHAPER_RAMB_REGION_24_25[MAX_MPCC]; \
338	uint32_t MPCC_MCM_SHAPER_RAMB_REGION_26_27[MAX_MPCC]; \
339	uint32_t MPCC_MCM_SHAPER_RAMB_REGION_28_29[MAX_MPCC]; \
340	uint32_t MPCC_MCM_SHAPER_RAMB_REGION_30_31[MAX_MPCC]; \
341	uint32_t MPCC_MCM_SHAPER_RAMB_REGION_32_33[MAX_MPCC]; \
342	uint32_t MPCC_MCM_3DLUT_MODE[MAX_MPCC]; \
343	uint32_t MPCC_MCM_3DLUT_INDEX[MAX_MPCC]; \
344	uint32_t MPCC_MCM_3DLUT_DATA[MAX_MPCC]; \
345	uint32_t MPCC_MCM_3DLUT_DATA_30BIT[MAX_MPCC]; \
346	uint32_t MPCC_MCM_3DLUT_READ_WRITE_CONTROL[MAX_MPCC]; \
347	uint32_t MPCC_MCM_3DLUT_OUT_NORM_FACTOR[MAX_MPCC]; \
348	uint32_t MPCC_MCM_3DLUT_OUT_OFFSET_R[MAX_MPCC]; \
349	uint32_t MPCC_MCM_3DLUT_OUT_OFFSET_G[MAX_MPCC]; \
350	uint32_t MPCC_MCM_3DLUT_OUT_OFFSET_B[MAX_MPCC]; \
351	uint32_t MPCC_MCM_1DLUT_CONTROL[MAX_MPCC]; \
352	uint32_t MPCC_MCM_1DLUT_LUT_INDEX[MAX_MPCC]; \
353	uint32_t MPCC_MCM_1DLUT_LUT_DATA[MAX_MPCC]; \
354	uint32_t MPCC_MCM_1DLUT_LUT_CONTROL[MAX_MPCC]; \
355	uint32_t MPCC_MCM_1DLUT_RAMA_START_CNTL_B[MAX_MPCC]; \
356	uint32_t MPCC_MCM_1DLUT_RAMA_START_CNTL_G[MAX_MPCC]; \
357	uint32_t MPCC_MCM_1DLUT_RAMA_START_CNTL_R[MAX_MPCC]; \
358	uint32_t MPCC_MCM_1DLUT_RAMA_START_SLOPE_CNTL_B[MAX_MPCC]; \
359	uint32_t MPCC_MCM_1DLUT_RAMA_START_SLOPE_CNTL_G[MAX_MPCC]; \
360	uint32_t MPCC_MCM_1DLUT_RAMA_START_SLOPE_CNTL_R[MAX_MPCC]; \
361	uint32_t MPCC_MCM_1DLUT_RAMA_START_BASE_CNTL_B[MAX_MPCC]; \
362	uint32_t MPCC_MCM_1DLUT_RAMA_START_BASE_CNTL_G[MAX_MPCC]; \
363	uint32_t MPCC_MCM_1DLUT_RAMA_START_BASE_CNTL_R[MAX_MPCC]; \
364	uint32_t MPCC_MCM_1DLUT_RAMA_END_CNTL1_B[MAX_MPCC]; \
365	uint32_t MPCC_MCM_1DLUT_RAMA_END_CNTL2_B[MAX_MPCC]; \
366	uint32_t MPCC_MCM_1DLUT_RAMA_END_CNTL1_G[MAX_MPCC]; \
367	uint32_t MPCC_MCM_1DLUT_RAMA_END_CNTL2_G[MAX_MPCC]; \
368	uint32_t MPCC_MCM_1DLUT_RAMA_END_CNTL1_R[MAX_MPCC]; \
369	uint32_t MPCC_MCM_1DLUT_RAMA_END_CNTL2_R[MAX_MPCC]; \
370	uint32_t MPCC_MCM_1DLUT_RAMA_OFFSET_B[MAX_MPCC]; \
371	uint32_t MPCC_MCM_1DLUT_RAMA_OFFSET_G[MAX_MPCC]; \
372	uint32_t MPCC_MCM_1DLUT_RAMA_OFFSET_R[MAX_MPCC]; \
373	uint32_t MPCC_MCM_1DLUT_RAMA_REGION_0_1[MAX_MPCC]; \
374	uint32_t MPCC_MCM_1DLUT_RAMA_REGION_2_3[MAX_MPCC]; \
375	uint32_t MPCC_MCM_1DLUT_RAMA_REGION_4_5[MAX_MPCC]; \
376	uint32_t MPCC_MCM_1DLUT_RAMA_REGION_6_7[MAX_MPCC]; \
377	uint32_t MPCC_MCM_1DLUT_RAMA_REGION_8_9[MAX_MPCC]; \
378	uint32_t MPCC_MCM_1DLUT_RAMA_REGION_10_11[MAX_MPCC]; \
379	uint32_t MPCC_MCM_1DLUT_RAMA_REGION_12_13[MAX_MPCC]; \
380	uint32_t MPCC_MCM_1DLUT_RAMA_REGION_14_15[MAX_MPCC]; \
381	uint32_t MPCC_MCM_1DLUT_RAMA_REGION_16_17[MAX_MPCC]; \
382	uint32_t MPCC_MCM_1DLUT_RAMA_REGION_18_19[MAX_MPCC]; \
383	uint32_t MPCC_MCM_1DLUT_RAMA_REGION_20_21[MAX_MPCC]; \
384	uint32_t MPCC_MCM_1DLUT_RAMA_REGION_22_23[MAX_MPCC]; \
385	uint32_t MPCC_MCM_1DLUT_RAMA_REGION_24_25[MAX_MPCC]; \
386	uint32_t MPCC_MCM_1DLUT_RAMA_REGION_26_27[MAX_MPCC]; \
387	uint32_t MPCC_MCM_1DLUT_RAMA_REGION_28_29[MAX_MPCC]; \
388	uint32_t MPCC_MCM_1DLUT_RAMA_REGION_30_31[MAX_MPCC]; \
389	uint32_t MPCC_MCM_1DLUT_RAMA_REGION_32_33[MAX_MPCC]; \
390	uint32_t MPCC_MCM_1DLUT_RAMB_START_CNTL_B[MAX_MPCC]; \
391	uint32_t MPCC_MCM_1DLUT_RAMB_START_CNTL_G[MAX_MPCC]; \
392	uint32_t MPCC_MCM_1DLUT_RAMB_START_CNTL_R[MAX_MPCC]; \
393	uint32_t MPCC_MCM_1DLUT_RAMB_START_SLOPE_CNTL_B[MAX_MPCC]; \
394	uint32_t MPCC_MCM_1DLUT_RAMB_START_SLOPE_CNTL_G[MAX_MPCC]; \
395	uint32_t MPCC_MCM_1DLUT_RAMB_START_SLOPE_CNTL_R[MAX_MPCC]; \
396	uint32_t MPCC_MCM_1DLUT_RAMB_START_BASE_CNTL_B[MAX_MPCC]; \
397	uint32_t MPCC_MCM_1DLUT_RAMB_START_BASE_CNTL_G[MAX_MPCC]; \
398	uint32_t MPCC_MCM_1DLUT_RAMB_START_BASE_CNTL_R[MAX_MPCC]; \
399	uint32_t MPCC_MCM_1DLUT_RAMB_END_CNTL1_B[MAX_MPCC]; \
400	uint32_t MPCC_MCM_1DLUT_RAMB_END_CNTL2_B[MAX_MPCC]; \
401	uint32_t MPCC_MCM_1DLUT_RAMB_END_CNTL1_G[MAX_MPCC]; \
402	uint32_t MPCC_MCM_1DLUT_RAMB_END_CNTL2_G[MAX_MPCC]; \
403	uint32_t MPCC_MCM_1DLUT_RAMB_END_CNTL1_R[MAX_MPCC]; \
404	uint32_t MPCC_MCM_1DLUT_RAMB_END_CNTL2_R[MAX_MPCC]; \
405	uint32_t MPCC_MCM_1DLUT_RAMB_OFFSET_B[MAX_MPCC]; \
406	uint32_t MPCC_MCM_1DLUT_RAMB_OFFSET_G[MAX_MPCC]; \
407	uint32_t MPCC_MCM_1DLUT_RAMB_OFFSET_R[MAX_MPCC]; \
408	uint32_t MPCC_MCM_1DLUT_RAMB_REGION_0_1[MAX_MPCC]; \
409	uint32_t MPCC_MCM_1DLUT_RAMB_REGION_2_3[MAX_MPCC]; \
410	uint32_t MPCC_MCM_1DLUT_RAMB_REGION_4_5[MAX_MPCC]; \
411	uint32_t MPCC_MCM_1DLUT_RAMB_REGION_6_7[MAX_MPCC]; \
412	uint32_t MPCC_MCM_1DLUT_RAMB_REGION_8_9[MAX_MPCC]; \
413	uint32_t MPCC_MCM_1DLUT_RAMB_REGION_10_11[MAX_MPCC]; \
414	uint32_t MPCC_MCM_1DLUT_RAMB_REGION_12_13[MAX_MPCC]; \
415	uint32_t MPCC_MCM_1DLUT_RAMB_REGION_14_15[MAX_MPCC]; \
416	uint32_t MPCC_MCM_1DLUT_RAMB_REGION_16_17[MAX_MPCC]; \
417	uint32_t MPCC_MCM_1DLUT_RAMB_REGION_18_19[MAX_MPCC]; \
418	uint32_t MPCC_MCM_1DLUT_RAMB_REGION_20_21[MAX_MPCC]; \
419	uint32_t MPCC_MCM_1DLUT_RAMB_REGION_22_23[MAX_MPCC]; \
420	uint32_t MPCC_MCM_1DLUT_RAMB_REGION_24_25[MAX_MPCC]; \
421	uint32_t MPCC_MCM_1DLUT_RAMB_REGION_26_27[MAX_MPCC]; \
422	uint32_t MPCC_MCM_1DLUT_RAMB_REGION_28_29[MAX_MPCC]; \
423	uint32_t MPCC_MCM_1DLUT_RAMB_REGION_30_31[MAX_MPCC]; \
424	uint32_t MPCC_MCM_1DLUT_RAMB_REGION_32_33[MAX_MPCC]; \
425	uint32_t MPCC_MCM_MEM_PWR_CTRL[MAX_MPCC]
426
427#define MPC_COMMON_MASK_SH_LIST_DCN3_0(mask_sh) \
428	MPC_COMMON_MASK_SH_LIST_DCN1_0(mask_sh),\
429	SF(MPCC0_MPCC_CONTROL, MPCC_BG_BPC, mask_sh),\
430	SF(MPCC0_MPCC_CONTROL, MPCC_BOT_GAIN_MODE, mask_sh),\
431	SF(MPCC0_MPCC_TOP_GAIN, MPCC_TOP_GAIN, mask_sh),\
432	SF(MPCC0_MPCC_BOT_GAIN_INSIDE, MPCC_BOT_GAIN_INSIDE, mask_sh),\
433	SF(MPCC0_MPCC_BOT_GAIN_OUTSIDE, MPCC_BOT_GAIN_OUTSIDE, mask_sh),\
434	SF(MPC_OUT0_CSC_MODE, MPC_OCSC_MODE, mask_sh),\
435	SF(MPC_OUT0_CSC_C11_C12_A, MPC_OCSC_C11_A, mask_sh),\
436	SF(MPC_OUT0_CSC_C11_C12_A, MPC_OCSC_C12_A, mask_sh),\
437	SF(MPCC0_MPCC_STATUS, MPCC_DISABLED, mask_sh),\
438	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_PWR_FORCE, mask_sh),\
439	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_PWR_DIS, mask_sh),\
440	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_PWR_STATE, mask_sh),\
441	SF(MPC_OUT0_DENORM_CONTROL, MPC_OUT_DENORM_MODE, mask_sh),\
442	SF(MPC_OUT0_DENORM_CONTROL, MPC_OUT_DENORM_CLAMP_MAX_R_CR, mask_sh),\
443	SF(MPC_OUT0_DENORM_CONTROL, MPC_OUT_DENORM_CLAMP_MIN_R_CR, mask_sh),\
444	SF(MPC_OUT0_DENORM_CLAMP_G_Y, MPC_OUT_DENORM_CLAMP_MAX_G_Y, mask_sh),\
445	SF(MPC_OUT0_DENORM_CLAMP_G_Y, MPC_OUT_DENORM_CLAMP_MIN_G_Y, mask_sh),\
446	SF(MPC_OUT0_DENORM_CLAMP_B_CB, MPC_OUT_DENORM_CLAMP_MAX_B_CB, mask_sh),\
447	SF(MPC_OUT0_DENORM_CLAMP_B_CB, MPC_OUT_DENORM_CLAMP_MIN_B_CB, mask_sh),\
448	SF(MPCC_OGAM0_MPCC_GAMUT_REMAP_MODE, MPCC_GAMUT_REMAP_MODE, mask_sh),\
449	SF(MPCC_OGAM0_MPCC_GAMUT_REMAP_MODE, MPCC_GAMUT_REMAP_MODE_CURRENT, mask_sh),\
450	SF(MPCC_OGAM0_MPCC_GAMUT_REMAP_COEF_FORMAT, MPCC_GAMUT_REMAP_COEF_FORMAT, mask_sh),\
451	SF(MPCC_OGAM0_MPC_GAMUT_REMAP_C11_C12_A, MPCC_GAMUT_REMAP_C11_A, mask_sh),\
452	SF(MPCC_OGAM0_MPC_GAMUT_REMAP_C11_C12_A, MPCC_GAMUT_REMAP_C12_A, mask_sh),\
453	SF(MPC_DWB0_MUX, MPC_DWB0_MUX, mask_sh),\
454	SF(MPC_DWB0_MUX, MPC_DWB0_MUX_STATUS, mask_sh),\
455	SF(MPC_OUT0_MUX, MPC_OUT_RATE_CONTROL, mask_sh),\
456	SF(MPC_OUT0_MUX, MPC_OUT_RATE_CONTROL_DISABLE, mask_sh),\
457	SF(MPC_OUT0_MUX, MPC_OUT_FLOW_CONTROL_MODE, mask_sh),\
458	SF(MPC_OUT0_MUX, MPC_OUT_FLOW_CONTROL_COUNT, mask_sh), \
459	SF(MPC_RMU_CONTROL, MPC_RMU0_MUX, mask_sh), \
460	SF(MPC_RMU_CONTROL, MPC_RMU1_MUX, mask_sh), \
461	SF(MPC_RMU_CONTROL, MPC_RMU0_MUX_STATUS, mask_sh), \
462	SF(MPC_RMU_CONTROL, MPC_RMU1_MUX_STATUS, mask_sh), \
463	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION0_LUT_OFFSET, mask_sh),\
464	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION0_NUM_SEGMENTS, mask_sh),\
465	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION1_LUT_OFFSET, mask_sh),\
466	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION1_NUM_SEGMENTS, mask_sh),\
467	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_END_CNTL2_B, MPCC_OGAM_RAMA_EXP_REGION_END_SLOPE_B, mask_sh),\
468	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_END_CNTL2_B, MPCC_OGAM_RAMA_EXP_REGION_END_B, mask_sh),\
469	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_END_CNTL1_B, MPCC_OGAM_RAMA_EXP_REGION_END_BASE_B, mask_sh),\
470	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_SLOPE_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_SLOPE_B, mask_sh),\
471	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_BASE_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_BASE_B, mask_sh),\
472	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_B, mask_sh),\
473	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_SEGMENT_B, mask_sh),\
474	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_OFFSET_B, MPCC_OGAM_RAMA_OFFSET_B, mask_sh),\
475	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_OFFSET_G, MPCC_OGAM_RAMA_OFFSET_G, mask_sh),\
476	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_OFFSET_R, MPCC_OGAM_RAMA_OFFSET_R, mask_sh),\
477	SF(MPCC_OGAM0_MPCC_OGAM_LUT_INDEX, MPCC_OGAM_LUT_INDEX, mask_sh),\
478	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_MODE, mask_sh),\
479	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_SELECT, mask_sh),\
480	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_PWL_DISABLE, mask_sh),\
481	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_MODE_CURRENT, mask_sh),\
482	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_SELECT_CURRENT, mask_sh),\
483	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_WRITE_COLOR_MASK, mask_sh),\
484	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_READ_COLOR_SEL, mask_sh),\
485	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_READ_DBG, mask_sh),\
486	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_HOST_SEL, mask_sh),\
487	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_CONFIG_MODE, mask_sh),\
488	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_STATUS, mask_sh),\
489	SF(MPCC_OGAM0_MPCC_OGAM_LUT_DATA, MPCC_OGAM_LUT_DATA, mask_sh),\
490	SF(MPC_RMU0_3DLUT_MODE, MPC_RMU_3DLUT_MODE, mask_sh),\
491	SF(MPC_RMU0_3DLUT_MODE, MPC_RMU_3DLUT_SIZE, mask_sh),\
492	SF(MPC_RMU0_3DLUT_MODE, MPC_RMU_3DLUT_MODE_CURRENT, mask_sh),\
493	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_WRITE_EN_MASK, mask_sh),\
494	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_RAM_SEL, mask_sh),\
495	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_30BIT_EN, mask_sh),\
496	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_CONFIG_STATUS, mask_sh),\
497	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_READ_SEL, mask_sh),\
498	SF(MPC_RMU0_3DLUT_INDEX, MPC_RMU_3DLUT_INDEX, mask_sh),\
499	SF(MPC_RMU0_3DLUT_DATA, MPC_RMU_3DLUT_DATA0, mask_sh),\
500	SF(MPC_RMU0_3DLUT_DATA, MPC_RMU_3DLUT_DATA1, mask_sh),\
501	SF(MPC_RMU0_3DLUT_DATA_30BIT, MPC_RMU_3DLUT_DATA_30BIT, mask_sh),\
502	SF(MPC_RMU0_SHAPER_CONTROL, MPC_RMU_SHAPER_LUT_MODE, mask_sh),\
503	SF(MPC_RMU0_SHAPER_CONTROL, MPC_RMU_SHAPER_LUT_MODE_CURRENT, mask_sh),\
504	SF(MPC_RMU0_SHAPER_OFFSET_R, MPC_RMU_SHAPER_OFFSET_R, mask_sh),\
505	SF(MPC_RMU0_SHAPER_OFFSET_G, MPC_RMU_SHAPER_OFFSET_G, mask_sh),\
506	SF(MPC_RMU0_SHAPER_OFFSET_B, MPC_RMU_SHAPER_OFFSET_B, mask_sh),\
507	SF(MPC_RMU0_SHAPER_SCALE_R, MPC_RMU_SHAPER_SCALE_R, mask_sh),\
508	SF(MPC_RMU0_SHAPER_SCALE_G_B, MPC_RMU_SHAPER_SCALE_G, mask_sh),\
509	SF(MPC_RMU0_SHAPER_SCALE_G_B, MPC_RMU_SHAPER_SCALE_B, mask_sh),\
510	SF(MPC_RMU0_SHAPER_LUT_INDEX, MPC_RMU_SHAPER_LUT_INDEX, mask_sh),\
511	SF(MPC_RMU0_SHAPER_LUT_DATA, MPC_RMU_SHAPER_LUT_DATA, mask_sh),\
512	SF(MPC_RMU0_SHAPER_LUT_WRITE_EN_MASK, MPC_RMU_SHAPER_LUT_WRITE_EN_MASK, mask_sh),\
513	SF(MPC_RMU0_SHAPER_LUT_WRITE_EN_MASK, MPC_RMU_SHAPER_LUT_WRITE_SEL, mask_sh),\
514	SF(MPC_RMU0_SHAPER_LUT_WRITE_EN_MASK, MPC_RMU_SHAPER_CONFIG_STATUS, mask_sh),\
515	SF(MPC_RMU0_SHAPER_RAMA_START_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_START_B, mask_sh),\
516	SF(MPC_RMU0_SHAPER_RAMA_START_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_START_SEGMENT_B, mask_sh),\
517	SF(MPC_RMU0_SHAPER_RAMA_END_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_END_B, mask_sh),\
518	SF(MPC_RMU0_SHAPER_RAMA_END_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_END_BASE_B, mask_sh),\
519	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION0_LUT_OFFSET, mask_sh),\
520	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION0_NUM_SEGMENTS, mask_sh),\
521	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION1_LUT_OFFSET, mask_sh),\
522	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION1_NUM_SEGMENTS, mask_sh),\
523	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_MEM_PWR_FORCE, mask_sh),\
524	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_MEM_PWR_DIS, mask_sh),\
525	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_SHAPER_MEM_PWR_STATE, mask_sh),\
526	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_3DLUT_MEM_PWR_STATE, mask_sh),\
527	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU1_MEM_PWR_FORCE, mask_sh),\
528	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU1_MEM_PWR_DIS, mask_sh),\
529	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU1_SHAPER_MEM_PWR_STATE, mask_sh),\
530	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU1_3DLUT_MEM_PWR_STATE, mask_sh),\
531	SF(CUR_VUPDATE_LOCK_SET0, CUR_VUPDATE_LOCK_SET, mask_sh)
532
533
534#define MPC_COMMON_MASK_SH_LIST_DCN30(mask_sh) \
535	MPC_COMMON_MASK_SH_LIST_DCN1_0(mask_sh),\
536	SF(MPCC0_MPCC_CONTROL, MPCC_BG_BPC, mask_sh),\
537	SF(MPCC0_MPCC_CONTROL, MPCC_BOT_GAIN_MODE, mask_sh),\
538	SF(MPCC0_MPCC_TOP_GAIN, MPCC_TOP_GAIN, mask_sh),\
539	SF(MPCC0_MPCC_BOT_GAIN_INSIDE, MPCC_BOT_GAIN_INSIDE, mask_sh),\
540	SF(MPCC0_MPCC_BOT_GAIN_OUTSIDE, MPCC_BOT_GAIN_OUTSIDE, mask_sh),\
541	SF(MPC_OUT0_CSC_MODE, MPC_OCSC_MODE, mask_sh),\
542	SF(MPC_OUT0_CSC_C11_C12_A, MPC_OCSC_C11_A, mask_sh),\
543	SF(MPC_OUT0_CSC_C11_C12_A, MPC_OCSC_C12_A, mask_sh),\
544	SF(MPCC0_MPCC_STATUS, MPCC_DISABLED, mask_sh),\
545	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_PWR_FORCE, mask_sh),\
546	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_PWR_DIS, mask_sh),\
547	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_LOW_PWR_MODE, mask_sh),\
548	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_PWR_STATE, mask_sh),\
549	SF(MPC_OUT0_DENORM_CONTROL, MPC_OUT_DENORM_MODE, mask_sh),\
550	SF(MPC_OUT0_DENORM_CONTROL, MPC_OUT_DENORM_CLAMP_MAX_R_CR, mask_sh),\
551	SF(MPC_OUT0_DENORM_CONTROL, MPC_OUT_DENORM_CLAMP_MIN_R_CR, mask_sh),\
552	SF(MPC_OUT0_DENORM_CLAMP_G_Y, MPC_OUT_DENORM_CLAMP_MAX_G_Y, mask_sh),\
553	SF(MPC_OUT0_DENORM_CLAMP_G_Y, MPC_OUT_DENORM_CLAMP_MIN_G_Y, mask_sh),\
554	SF(MPC_OUT0_DENORM_CLAMP_B_CB, MPC_OUT_DENORM_CLAMP_MAX_B_CB, mask_sh),\
555	SF(MPC_OUT0_DENORM_CLAMP_B_CB, MPC_OUT_DENORM_CLAMP_MIN_B_CB, mask_sh),\
556	SF(MPCC_OGAM0_MPCC_GAMUT_REMAP_MODE, MPCC_GAMUT_REMAP_MODE, mask_sh),\
557	SF(MPCC_OGAM0_MPCC_GAMUT_REMAP_MODE, MPCC_GAMUT_REMAP_MODE_CURRENT, mask_sh),\
558	SF(MPCC_OGAM0_MPCC_GAMUT_REMAP_COEF_FORMAT, MPCC_GAMUT_REMAP_COEF_FORMAT, mask_sh),\
559	SF(MPCC_OGAM0_MPC_GAMUT_REMAP_C11_C12_A, MPCC_GAMUT_REMAP_C11_A, mask_sh),\
560	SF(MPCC_OGAM0_MPC_GAMUT_REMAP_C11_C12_A, MPCC_GAMUT_REMAP_C12_A, mask_sh),\
561	SF(MPC_DWB0_MUX, MPC_DWB0_MUX, mask_sh),\
562	SF(MPC_DWB0_MUX, MPC_DWB0_MUX_STATUS, mask_sh),\
563	SF(MPC_OUT0_MUX, MPC_OUT_RATE_CONTROL, mask_sh),\
564	SF(MPC_OUT0_MUX, MPC_OUT_RATE_CONTROL_DISABLE, mask_sh),\
565	SF(MPC_OUT0_MUX, MPC_OUT_FLOW_CONTROL_MODE, mask_sh),\
566	SF(MPC_OUT0_MUX, MPC_OUT_FLOW_CONTROL_COUNT, mask_sh), \
567	SF(MPC_RMU_CONTROL, MPC_RMU0_MUX, mask_sh), \
568	SF(MPC_RMU_CONTROL, MPC_RMU1_MUX, mask_sh), \
569	SF(MPC_RMU_CONTROL, MPC_RMU0_MUX_STATUS, mask_sh), \
570	SF(MPC_RMU_CONTROL, MPC_RMU1_MUX_STATUS, mask_sh), \
571	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION0_LUT_OFFSET, mask_sh),\
572	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION0_NUM_SEGMENTS, mask_sh),\
573	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION1_LUT_OFFSET, mask_sh),\
574	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION1_NUM_SEGMENTS, mask_sh),\
575	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_END_CNTL2_B, MPCC_OGAM_RAMA_EXP_REGION_END_SLOPE_B, mask_sh),\
576	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_END_CNTL2_B, MPCC_OGAM_RAMA_EXP_REGION_END_B, mask_sh),\
577	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_END_CNTL1_B, MPCC_OGAM_RAMA_EXP_REGION_END_BASE_B, mask_sh),\
578	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_SLOPE_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_SLOPE_B, mask_sh),\
579	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_BASE_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_BASE_B, mask_sh),\
580	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_B, mask_sh),\
581	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_SEGMENT_B, mask_sh),\
582	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_OFFSET_B, MPCC_OGAM_RAMA_OFFSET_B, mask_sh),\
583	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_OFFSET_G, MPCC_OGAM_RAMA_OFFSET_G, mask_sh),\
584	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_OFFSET_R, MPCC_OGAM_RAMA_OFFSET_R, mask_sh),\
585	SF(MPCC_OGAM0_MPCC_OGAM_LUT_INDEX, MPCC_OGAM_LUT_INDEX, mask_sh),\
586	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_MODE, mask_sh),\
587	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_SELECT, mask_sh),\
588	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_PWL_DISABLE, mask_sh),\
589	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_MODE_CURRENT, mask_sh),\
590	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_SELECT_CURRENT, mask_sh),\
591	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_WRITE_COLOR_MASK, mask_sh),\
592	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_READ_COLOR_SEL, mask_sh),\
593	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_READ_DBG, mask_sh),\
594	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_HOST_SEL, mask_sh),\
595	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_CONFIG_MODE, mask_sh),\
596	/*SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_STATUS, mask_sh),*/\
597	SF(MPCC_OGAM0_MPCC_OGAM_LUT_DATA, MPCC_OGAM_LUT_DATA, mask_sh),\
598	SF(MPC_RMU0_3DLUT_MODE, MPC_RMU_3DLUT_MODE, mask_sh),\
599	SF(MPC_RMU0_3DLUT_MODE, MPC_RMU_3DLUT_SIZE, mask_sh),\
600	/*SF(MPC_RMU0_3DLUT_MODE, MPC_RMU_3DLUT_MODE_CURRENT, mask_sh),*/\
601	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_WRITE_EN_MASK, mask_sh),\
602	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_RAM_SEL, mask_sh),\
603	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_30BIT_EN, mask_sh),\
604	/*SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_CONFIG_STATUS, mask_sh),*/\
605	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_READ_SEL, mask_sh),\
606	SF(MPC_RMU0_3DLUT_INDEX, MPC_RMU_3DLUT_INDEX, mask_sh),\
607	SF(MPC_RMU0_3DLUT_DATA, MPC_RMU_3DLUT_DATA0, mask_sh),\
608	SF(MPC_RMU0_3DLUT_DATA, MPC_RMU_3DLUT_DATA1, mask_sh),\
609	SF(MPC_RMU0_3DLUT_DATA_30BIT, MPC_RMU_3DLUT_DATA_30BIT, mask_sh),\
610	SF(MPC_RMU0_SHAPER_CONTROL, MPC_RMU_SHAPER_LUT_MODE, mask_sh),\
611	/*SF(MPC_RMU0_SHAPER_CONTROL, MPC_RMU_SHAPER_LUT_MODE_CURRENT, mask_sh),*/\
612	SF(MPC_RMU0_SHAPER_OFFSET_R, MPC_RMU_SHAPER_OFFSET_R, mask_sh),\
613	SF(MPC_RMU0_SHAPER_OFFSET_G, MPC_RMU_SHAPER_OFFSET_G, mask_sh),\
614	SF(MPC_RMU0_SHAPER_OFFSET_B, MPC_RMU_SHAPER_OFFSET_B, mask_sh),\
615	SF(MPC_RMU0_SHAPER_SCALE_R, MPC_RMU_SHAPER_SCALE_R, mask_sh),\
616	SF(MPC_RMU0_SHAPER_SCALE_G_B, MPC_RMU_SHAPER_SCALE_G, mask_sh),\
617	SF(MPC_RMU0_SHAPER_SCALE_G_B, MPC_RMU_SHAPER_SCALE_B, mask_sh),\
618	SF(MPC_RMU0_SHAPER_LUT_INDEX, MPC_RMU_SHAPER_LUT_INDEX, mask_sh),\
619	SF(MPC_RMU0_SHAPER_LUT_DATA, MPC_RMU_SHAPER_LUT_DATA, mask_sh),\
620	SF(MPC_RMU0_SHAPER_LUT_WRITE_EN_MASK, MPC_RMU_SHAPER_LUT_WRITE_EN_MASK, mask_sh),\
621	SF(MPC_RMU0_SHAPER_LUT_WRITE_EN_MASK, MPC_RMU_SHAPER_LUT_WRITE_SEL, mask_sh),\
622	/*SF(MPC_RMU0_SHAPER_LUT_WRITE_EN_MASK, MPC_RMU_SHAPER_CONFIG_STATUS, mask_sh),*/\
623	SF(MPC_RMU0_SHAPER_RAMA_START_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_START_B, mask_sh),\
624	SF(MPC_RMU0_SHAPER_RAMA_START_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_START_SEGMENT_B, mask_sh),\
625	SF(MPC_RMU0_SHAPER_RAMA_END_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_END_B, mask_sh),\
626	SF(MPC_RMU0_SHAPER_RAMA_END_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_END_BASE_B, mask_sh),\
627	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION0_LUT_OFFSET, mask_sh),\
628	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION0_NUM_SEGMENTS, mask_sh),\
629	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION1_LUT_OFFSET, mask_sh),\
630	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION1_NUM_SEGMENTS, mask_sh),\
631	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_MEM_PWR_FORCE, mask_sh),\
632	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_MEM_PWR_DIS, mask_sh),\
633	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_SHAPER_MEM_PWR_STATE, mask_sh),\
634	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_3DLUT_MEM_PWR_STATE, mask_sh),\
635	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_MEM_LOW_PWR_MODE, mask_sh),\
636	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU1_MEM_PWR_FORCE, mask_sh),\
637	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU1_MEM_PWR_DIS, mask_sh),\
638	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU1_SHAPER_MEM_PWR_STATE, mask_sh),\
639	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU1_3DLUT_MEM_PWR_STATE, mask_sh),\
640	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU1_MEM_LOW_PWR_MODE, mask_sh),\
641	SF(MPC_RMU0_SHAPER_CONTROL, MPC_RMU_SHAPER_MODE_CURRENT, mask_sh),\
642	SF(CUR_VUPDATE_LOCK_SET0, CUR_VUPDATE_LOCK_SET, mask_sh)
643
644
645#define MPC_REG_FIELD_LIST_DCN3_0(type) \
646	MPC_REG_FIELD_LIST_DCN2_0(type) \
647	type MPC_DWB0_MUX;\
648	type MPC_DWB0_MUX_STATUS;\
649	type MPC_OUT_RATE_CONTROL;\
650	type MPC_OUT_RATE_CONTROL_DISABLE;\
651	type MPC_OUT_FLOW_CONTROL_MODE;\
652	type MPC_OUT_FLOW_CONTROL_COUNT; \
653	type MPCC_GAMUT_REMAP_MODE; \
654	type MPCC_GAMUT_REMAP_MODE_CURRENT;\
655	type MPCC_GAMUT_REMAP_COEF_FORMAT; \
656	type MPCC_GAMUT_REMAP_C11_A; \
657	type MPCC_GAMUT_REMAP_C12_A; \
658	type MPC_RMU0_MUX; \
659	type MPC_RMU1_MUX; \
660	type MPC_RMU0_MUX_STATUS; \
661	type MPC_RMU1_MUX_STATUS; \
662	type MPC_RMU0_MEM_PWR_FORCE;\
663	type MPC_RMU0_MEM_PWR_DIS;\
664	type MPC_RMU0_MEM_LOW_PWR_MODE;\
665	type MPC_RMU0_SHAPER_MEM_PWR_STATE;\
666	type MPC_RMU0_3DLUT_MEM_PWR_STATE;\
667	type MPC_RMU1_MEM_PWR_FORCE;\
668	type MPC_RMU1_MEM_PWR_DIS;\
669	type MPC_RMU1_MEM_LOW_PWR_MODE;\
670	type MPC_RMU1_SHAPER_MEM_PWR_STATE;\
671	type MPC_RMU1_3DLUT_MEM_PWR_STATE;\
672	type MPCC_OGAM_RAMA_EXP_REGION_START_SLOPE_B; \
673	type MPCC_OGAM_RAMA_EXP_REGION_START_BASE_B;\
674	type MPCC_OGAM_RAMA_OFFSET_B;\
675	type MPCC_OGAM_RAMA_OFFSET_G;\
676	type MPCC_OGAM_RAMA_OFFSET_R;\
677	type MPCC_OGAM_SELECT; \
678	type MPCC_OGAM_PWL_DISABLE; \
679	type MPCC_OGAM_MODE_CURRENT; \
680	type MPCC_OGAM_SELECT_CURRENT; \
681	type MPCC_OGAM_LUT_WRITE_COLOR_MASK; \
682	type MPCC_OGAM_LUT_READ_COLOR_SEL; \
683	type MPCC_OGAM_LUT_READ_DBG; \
684	type MPCC_OGAM_LUT_HOST_SEL; \
685	type MPCC_OGAM_LUT_CONFIG_MODE; \
686	type MPCC_OGAM_LUT_STATUS; \
687	type MPCC_OGAM_RAMA_START_BASE_CNTL_B;\
688	type MPCC_OGAM_MEM_LOW_PWR_MODE;\
689	type MPCC_OGAM_MEM_PWR_STATE;\
690	type MPC_RMU_3DLUT_MODE; \
691	type MPC_RMU_3DLUT_SIZE; \
692	type MPC_RMU_3DLUT_MODE_CURRENT; \
693	type MPC_RMU_3DLUT_WRITE_EN_MASK;\
694	type MPC_RMU_3DLUT_RAM_SEL;\
695	type MPC_RMU_3DLUT_30BIT_EN;\
696	type MPC_RMU_3DLUT_CONFIG_STATUS;\
697	type MPC_RMU_3DLUT_READ_SEL;\
698	type MPC_RMU_3DLUT_INDEX;\
699	type MPC_RMU_3DLUT_DATA0;\
700	type MPC_RMU_3DLUT_DATA1;\
701	type MPC_RMU_3DLUT_DATA_30BIT;\
702	type MPC_RMU_SHAPER_LUT_MODE;\
703	type MPC_RMU_SHAPER_LUT_MODE_CURRENT;\
704	type MPC_RMU_SHAPER_OFFSET_R;\
705	type MPC_RMU_SHAPER_OFFSET_G;\
706	type MPC_RMU_SHAPER_OFFSET_B;\
707	type MPC_RMU_SHAPER_SCALE_R;\
708	type MPC_RMU_SHAPER_SCALE_G;\
709	type MPC_RMU_SHAPER_SCALE_B;\
710	type MPC_RMU_SHAPER_LUT_INDEX;\
711	type MPC_RMU_SHAPER_LUT_DATA;\
712	type MPC_RMU_SHAPER_LUT_WRITE_EN_MASK;\
713	type MPC_RMU_SHAPER_LUT_WRITE_SEL;\
714	type MPC_RMU_SHAPER_CONFIG_STATUS;\
715	type MPC_RMU_SHAPER_RAMA_EXP_REGION_START_B;\
716	type MPC_RMU_SHAPER_RAMA_EXP_REGION_START_SEGMENT_B;\
717	type MPC_RMU_SHAPER_RAMA_EXP_REGION_END_B;\
718	type MPC_RMU_SHAPER_RAMA_EXP_REGION_END_BASE_B;\
719	type MPC_RMU_SHAPER_RAMA_EXP_REGION0_LUT_OFFSET;\
720	type MPC_RMU_SHAPER_RAMA_EXP_REGION0_NUM_SEGMENTS;\
721	type MPC_RMU_SHAPER_RAMA_EXP_REGION1_LUT_OFFSET;\
722	type MPC_RMU_SHAPER_RAMA_EXP_REGION1_NUM_SEGMENTS;\
723	type MPC_RMU_SHAPER_MODE_CURRENT
724
725#define MPC_REG_FIELD_LIST_DCN32(type) \
726	type MPCC_MOVABLE_CM_LOCATION_CNTL;\
727	type MPCC_MOVABLE_CM_LOCATION_CNTL_CURRENT;\
728	type MPCC_MCM_SHAPER_MEM_PWR_FORCE;\
729	type MPCC_MCM_SHAPER_MEM_PWR_DIS;\
730	type MPCC_MCM_SHAPER_MEM_LOW_PWR_MODE;\
731	type MPCC_MCM_3DLUT_MEM_PWR_FORCE;\
732	type MPCC_MCM_3DLUT_MEM_PWR_DIS;\
733	type MPCC_MCM_3DLUT_MEM_LOW_PWR_MODE;\
734	type MPCC_MCM_1DLUT_MEM_PWR_FORCE;\
735	type MPCC_MCM_1DLUT_MEM_PWR_DIS;\
736	type MPCC_MCM_1DLUT_MEM_LOW_PWR_MODE;\
737	type MPCC_MCM_SHAPER_MEM_PWR_STATE;\
738	type MPCC_MCM_3DLUT_MEM_PWR_STATE;\
739	type MPCC_MCM_1DLUT_MEM_PWR_STATE;\
740	type MPCC_MCM_3DLUT_MODE; \
741	type MPCC_MCM_3DLUT_SIZE; \
742	type MPCC_MCM_3DLUT_MODE_CURRENT; \
743	type MPCC_MCM_3DLUT_WRITE_EN_MASK;\
744	type MPCC_MCM_3DLUT_RAM_SEL;\
745	type MPCC_MCM_3DLUT_30BIT_EN;\
746	type MPCC_MCM_3DLUT_CONFIG_STATUS;\
747	type MPCC_MCM_3DLUT_READ_SEL;\
748	type MPCC_MCM_3DLUT_INDEX;\
749	type MPCC_MCM_3DLUT_DATA0;\
750	type MPCC_MCM_3DLUT_DATA1;\
751	type MPCC_MCM_3DLUT_DATA_30BIT;\
752	type MPCC_MCM_SHAPER_LUT_MODE;\
753	type MPCC_MCM_SHAPER_MODE_CURRENT;\
754	type MPCC_MCM_SHAPER_OFFSET_R;\
755	type MPCC_MCM_SHAPER_OFFSET_G;\
756	type MPCC_MCM_SHAPER_OFFSET_B;\
757	type MPCC_MCM_SHAPER_SCALE_R;\
758	type MPCC_MCM_SHAPER_SCALE_G;\
759	type MPCC_MCM_SHAPER_SCALE_B;\
760	type MPCC_MCM_SHAPER_LUT_INDEX;\
761	type MPCC_MCM_SHAPER_LUT_DATA;\
762	type MPCC_MCM_SHAPER_LUT_WRITE_EN_MASK;\
763	type MPCC_MCM_SHAPER_LUT_WRITE_SEL;\
764	type MPCC_MCM_SHAPER_CONFIG_STATUS;\
765	type MPCC_MCM_SHAPER_RAMA_EXP_REGION_START_B;\
766	type MPCC_MCM_SHAPER_RAMA_EXP_REGION_START_SEGMENT_B;\
767	type MPCC_MCM_SHAPER_RAMA_EXP_REGION_END_B;\
768	type MPCC_MCM_SHAPER_RAMA_EXP_REGION_END_BASE_B;\
769	type MPCC_MCM_SHAPER_RAMA_EXP_REGION0_LUT_OFFSET;\
770	type MPCC_MCM_SHAPER_RAMA_EXP_REGION0_NUM_SEGMENTS;\
771	type MPCC_MCM_SHAPER_RAMA_EXP_REGION1_LUT_OFFSET;\
772	type MPCC_MCM_SHAPER_RAMA_EXP_REGION1_NUM_SEGMENTS; \
773	type MPCC_MCM_1DLUT_MODE;\
774	type MPCC_MCM_1DLUT_SELECT;\
775	type MPCC_MCM_1DLUT_PWL_DISABLE;\
776	type MPCC_MCM_1DLUT_MODE_CURRENT;\
777	type MPCC_MCM_1DLUT_SELECT_CURRENT;\
778	type MPCC_MCM_1DLUT_LUT_INDEX;\
779	type MPCC_MCM_1DLUT_LUT_DATA;\
780	type MPCC_MCM_1DLUT_LUT_WRITE_COLOR_MASK;\
781	type MPCC_MCM_1DLUT_LUT_READ_COLOR_SEL;\
782	type MPCC_MCM_1DLUT_LUT_HOST_SEL;\
783	type MPCC_MCM_1DLUT_LUT_CONFIG_MODE;\
784	type MPCC_MCM_1DLUT_RAMA_EXP_REGION_START_B;\
785	type MPCC_MCM_1DLUT_RAMA_EXP_REGION_START_SEGMENT_B;\
786	type MPCC_MCM_1DLUT_RAMA_EXP_REGION_START_SLOPE_B;\
787	type MPCC_MCM_1DLUT_RAMA_EXP_REGION_START_BASE_B;\
788	type MPCC_MCM_1DLUT_RAMA_EXP_REGION_END_BASE_B;\
789	type MPCC_MCM_1DLUT_RAMA_EXP_REGION_END_B;\
790	type MPCC_MCM_1DLUT_RAMA_EXP_REGION_END_SLOPE_B;\
791	type MPCC_MCM_1DLUT_RAMA_OFFSET_B;\
792	type MPCC_MCM_1DLUT_RAMA_OFFSET_G;\
793	type MPCC_MCM_1DLUT_RAMA_OFFSET_R;\
794	type MPCC_MCM_1DLUT_RAMA_EXP_REGION0_LUT_OFFSET;\
795	type MPCC_MCM_1DLUT_RAMA_EXP_REGION0_NUM_SEGMENTS;\
796	type MPCC_MCM_1DLUT_RAMA_EXP_REGION1_LUT_OFFSET;\
797	type MPCC_MCM_1DLUT_RAMA_EXP_REGION1_NUM_SEGMENTS
798
799
800#define MPC_COMMON_MASK_SH_LIST_DCN303(mask_sh) \
801	MPC_COMMON_MASK_SH_LIST_DCN1_0(mask_sh),\
802	SF(MPCC0_MPCC_CONTROL, MPCC_BG_BPC, mask_sh),\
803	SF(MPCC0_MPCC_CONTROL, MPCC_BOT_GAIN_MODE, mask_sh),\
804	SF(MPCC0_MPCC_TOP_GAIN, MPCC_TOP_GAIN, mask_sh),\
805	SF(MPCC0_MPCC_BOT_GAIN_INSIDE, MPCC_BOT_GAIN_INSIDE, mask_sh),\
806	SF(MPCC0_MPCC_BOT_GAIN_OUTSIDE, MPCC_BOT_GAIN_OUTSIDE, mask_sh),\
807	SF(MPC_OUT0_CSC_MODE, MPC_OCSC_MODE, mask_sh),\
808	SF(MPC_OUT0_CSC_C11_C12_A, MPC_OCSC_C11_A, mask_sh),\
809	SF(MPC_OUT0_CSC_C11_C12_A, MPC_OCSC_C12_A, mask_sh),\
810	SF(MPCC0_MPCC_STATUS, MPCC_DISABLED, mask_sh),\
811	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_PWR_FORCE, mask_sh),\
812	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_PWR_DIS, mask_sh),\
813	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_LOW_PWR_MODE, mask_sh),\
814	SF(MPCC0_MPCC_MEM_PWR_CTRL, MPCC_OGAM_MEM_PWR_STATE, mask_sh),\
815	SF(MPC_OUT0_DENORM_CONTROL, MPC_OUT_DENORM_MODE, mask_sh),\
816	SF(MPC_OUT0_DENORM_CONTROL, MPC_OUT_DENORM_CLAMP_MAX_R_CR, mask_sh),\
817	SF(MPC_OUT0_DENORM_CONTROL, MPC_OUT_DENORM_CLAMP_MIN_R_CR, mask_sh),\
818	SF(MPC_OUT0_DENORM_CLAMP_G_Y, MPC_OUT_DENORM_CLAMP_MAX_G_Y, mask_sh),\
819	SF(MPC_OUT0_DENORM_CLAMP_G_Y, MPC_OUT_DENORM_CLAMP_MIN_G_Y, mask_sh),\
820	SF(MPC_OUT0_DENORM_CLAMP_B_CB, MPC_OUT_DENORM_CLAMP_MAX_B_CB, mask_sh),\
821	SF(MPC_OUT0_DENORM_CLAMP_B_CB, MPC_OUT_DENORM_CLAMP_MIN_B_CB, mask_sh),\
822	SF(MPCC_OGAM0_MPCC_GAMUT_REMAP_MODE, MPCC_GAMUT_REMAP_MODE, mask_sh),\
823	SF(MPCC_OGAM0_MPCC_GAMUT_REMAP_MODE, MPCC_GAMUT_REMAP_MODE_CURRENT, mask_sh),\
824	SF(MPCC_OGAM0_MPCC_GAMUT_REMAP_COEF_FORMAT, MPCC_GAMUT_REMAP_COEF_FORMAT, mask_sh),\
825	SF(MPCC_OGAM0_MPC_GAMUT_REMAP_C11_C12_A, MPCC_GAMUT_REMAP_C11_A, mask_sh),\
826	SF(MPCC_OGAM0_MPC_GAMUT_REMAP_C11_C12_A, MPCC_GAMUT_REMAP_C12_A, mask_sh),\
827	SF(MPC_DWB0_MUX, MPC_DWB0_MUX, mask_sh),\
828	SF(MPC_DWB0_MUX, MPC_DWB0_MUX_STATUS, mask_sh),\
829	SF(MPC_OUT0_MUX, MPC_OUT_RATE_CONTROL, mask_sh),\
830	SF(MPC_OUT0_MUX, MPC_OUT_RATE_CONTROL_DISABLE, mask_sh),\
831	SF(MPC_OUT0_MUX, MPC_OUT_FLOW_CONTROL_MODE, mask_sh),\
832	SF(MPC_OUT0_MUX, MPC_OUT_FLOW_CONTROL_COUNT, mask_sh), \
833	SF(MPC_RMU_CONTROL, MPC_RMU0_MUX, mask_sh), \
834	SF(MPC_RMU_CONTROL, MPC_RMU0_MUX_STATUS, mask_sh), \
835	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION0_LUT_OFFSET, mask_sh),\
836	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION0_NUM_SEGMENTS, mask_sh),\
837	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION1_LUT_OFFSET, mask_sh),\
838	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_REGION_0_1, MPCC_OGAM_RAMA_EXP_REGION1_NUM_SEGMENTS, mask_sh),\
839	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_END_CNTL2_B, MPCC_OGAM_RAMA_EXP_REGION_END_SLOPE_B, mask_sh),\
840	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_END_CNTL2_B, MPCC_OGAM_RAMA_EXP_REGION_END_B, mask_sh),\
841	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_END_CNTL1_B, MPCC_OGAM_RAMA_EXP_REGION_END_BASE_B, mask_sh),\
842	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_SLOPE_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_SLOPE_B, mask_sh),\
843	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_BASE_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_BASE_B, mask_sh),\
844	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_B, mask_sh),\
845	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_START_CNTL_B, MPCC_OGAM_RAMA_EXP_REGION_START_SEGMENT_B, mask_sh),\
846	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_OFFSET_B, MPCC_OGAM_RAMA_OFFSET_B, mask_sh),\
847	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_OFFSET_G, MPCC_OGAM_RAMA_OFFSET_G, mask_sh),\
848	SF(MPCC_OGAM0_MPCC_OGAM_RAMA_OFFSET_R, MPCC_OGAM_RAMA_OFFSET_R, mask_sh),\
849	SF(MPCC_OGAM0_MPCC_OGAM_LUT_INDEX, MPCC_OGAM_LUT_INDEX, mask_sh),\
850	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_MODE, mask_sh),\
851	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_SELECT, mask_sh),\
852	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_PWL_DISABLE, mask_sh),\
853	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_MODE_CURRENT, mask_sh),\
854	SF(MPCC_OGAM0_MPCC_OGAM_CONTROL, MPCC_OGAM_SELECT_CURRENT, mask_sh),\
855	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_WRITE_COLOR_MASK, mask_sh),\
856	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_READ_COLOR_SEL, mask_sh),\
857	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_READ_DBG, mask_sh),\
858	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_HOST_SEL, mask_sh),\
859	SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_CONFIG_MODE, mask_sh),\
860	/*SF(MPCC_OGAM0_MPCC_OGAM_LUT_CONTROL, MPCC_OGAM_LUT_STATUS, mask_sh),*/\
861	SF(MPCC_OGAM0_MPCC_OGAM_LUT_DATA, MPCC_OGAM_LUT_DATA, mask_sh),\
862	SF(MPC_RMU0_3DLUT_MODE, MPC_RMU_3DLUT_MODE, mask_sh),\
863	SF(MPC_RMU0_3DLUT_MODE, MPC_RMU_3DLUT_SIZE, mask_sh),\
864	/*SF(MPC_RMU0_3DLUT_MODE, MPC_RMU_3DLUT_MODE_CURRENT, mask_sh),*/\
865	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_WRITE_EN_MASK, mask_sh),\
866	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_RAM_SEL, mask_sh),\
867	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_30BIT_EN, mask_sh),\
868	/*SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_CONFIG_STATUS, mask_sh),*/\
869	SF(MPC_RMU0_3DLUT_READ_WRITE_CONTROL, MPC_RMU_3DLUT_READ_SEL, mask_sh),\
870	SF(MPC_RMU0_3DLUT_INDEX, MPC_RMU_3DLUT_INDEX, mask_sh),\
871	SF(MPC_RMU0_3DLUT_DATA, MPC_RMU_3DLUT_DATA0, mask_sh),\
872	SF(MPC_RMU0_3DLUT_DATA, MPC_RMU_3DLUT_DATA1, mask_sh),\
873	SF(MPC_RMU0_3DLUT_DATA_30BIT, MPC_RMU_3DLUT_DATA_30BIT, mask_sh),\
874	SF(MPC_RMU0_SHAPER_CONTROL, MPC_RMU_SHAPER_LUT_MODE, mask_sh),\
875	/*SF(MPC_RMU0_SHAPER_CONTROL, MPC_RMU_SHAPER_LUT_MODE_CURRENT, mask_sh),*/\
876	SF(MPC_RMU0_SHAPER_OFFSET_R, MPC_RMU_SHAPER_OFFSET_R, mask_sh),\
877	SF(MPC_RMU0_SHAPER_OFFSET_G, MPC_RMU_SHAPER_OFFSET_G, mask_sh),\
878	SF(MPC_RMU0_SHAPER_OFFSET_B, MPC_RMU_SHAPER_OFFSET_B, mask_sh),\
879	SF(MPC_RMU0_SHAPER_SCALE_R, MPC_RMU_SHAPER_SCALE_R, mask_sh),\
880	SF(MPC_RMU0_SHAPER_SCALE_G_B, MPC_RMU_SHAPER_SCALE_G, mask_sh),\
881	SF(MPC_RMU0_SHAPER_SCALE_G_B, MPC_RMU_SHAPER_SCALE_B, mask_sh),\
882	SF(MPC_RMU0_SHAPER_LUT_INDEX, MPC_RMU_SHAPER_LUT_INDEX, mask_sh),\
883	SF(MPC_RMU0_SHAPER_LUT_DATA, MPC_RMU_SHAPER_LUT_DATA, mask_sh),\
884	SF(MPC_RMU0_SHAPER_LUT_WRITE_EN_MASK, MPC_RMU_SHAPER_LUT_WRITE_EN_MASK, mask_sh),\
885	SF(MPC_RMU0_SHAPER_LUT_WRITE_EN_MASK, MPC_RMU_SHAPER_LUT_WRITE_SEL, mask_sh),\
886	/*SF(MPC_RMU0_SHAPER_LUT_WRITE_EN_MASK, MPC_RMU_SHAPER_CONFIG_STATUS, mask_sh),*/\
887	SF(MPC_RMU0_SHAPER_RAMA_START_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_START_B, mask_sh),\
888	SF(MPC_RMU0_SHAPER_RAMA_START_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_START_SEGMENT_B, mask_sh),\
889	SF(MPC_RMU0_SHAPER_RAMA_END_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_END_B, mask_sh),\
890	SF(MPC_RMU0_SHAPER_RAMA_END_CNTL_B, MPC_RMU_SHAPER_RAMA_EXP_REGION_END_BASE_B, mask_sh),\
891	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION0_LUT_OFFSET, mask_sh),\
892	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION0_NUM_SEGMENTS, mask_sh),\
893	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION1_LUT_OFFSET, mask_sh),\
894	SF(MPC_RMU0_SHAPER_RAMA_REGION_0_1, MPC_RMU_SHAPER_RAMA_EXP_REGION1_NUM_SEGMENTS, mask_sh),\
895	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_MEM_PWR_FORCE, mask_sh),\
896	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_MEM_PWR_DIS, mask_sh),\
897	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_SHAPER_MEM_PWR_STATE, mask_sh),\
898	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_3DLUT_MEM_PWR_STATE, mask_sh),\
899	SF(MPC_RMU_MEM_PWR_CTRL, MPC_RMU0_MEM_LOW_PWR_MODE, mask_sh),\
900	SF(MPC_RMU0_SHAPER_CONTROL, MPC_RMU_SHAPER_MODE_CURRENT, mask_sh),\
901	SF(CUR_VUPDATE_LOCK_SET0, CUR_VUPDATE_LOCK_SET, mask_sh)
902
903#define MPC_REG_FIELD_LIST_DCN3_03(type) \
904	MPC_REG_FIELD_LIST_DCN2_0(type) \
905	type MPC_DWB0_MUX;\
906	type MPC_DWB0_MUX_STATUS;\
907	type MPC_OUT_RATE_CONTROL;\
908	type MPC_OUT_RATE_CONTROL_DISABLE;\
909	type MPC_OUT_FLOW_CONTROL_MODE;\
910	type MPC_OUT_FLOW_CONTROL_COUNT; \
911	type MPCC_GAMUT_REMAP_MODE; \
912	type MPCC_GAMUT_REMAP_MODE_CURRENT;\
913	type MPCC_GAMUT_REMAP_COEF_FORMAT; \
914	type MPCC_GAMUT_REMAP_C11_A; \
915	type MPCC_GAMUT_REMAP_C12_A; \
916	type MPC_RMU0_MUX; \
917	type MPC_RMU0_MUX_STATUS; \
918	type MPC_RMU0_MEM_PWR_FORCE;\
919	type MPC_RMU0_MEM_PWR_DIS;\
920	type MPC_RMU0_MEM_LOW_PWR_MODE;\
921	type MPC_RMU0_SHAPER_MEM_PWR_STATE;\
922	type MPC_RMU0_3DLUT_MEM_PWR_STATE;\
923	type MPCC_OGAM_RAMA_EXP_REGION_START_SLOPE_B; \
924	type MPCC_OGAM_RAMA_EXP_REGION_START_BASE_B;\
925	type MPCC_OGAM_RAMA_OFFSET_B;\
926	type MPCC_OGAM_RAMA_OFFSET_G;\
927	type MPCC_OGAM_RAMA_OFFSET_R;\
928	type MPCC_OGAM_SELECT; \
929	type MPCC_OGAM_PWL_DISABLE; \
930	type MPCC_OGAM_MODE_CURRENT; \
931	type MPCC_OGAM_SELECT_CURRENT; \
932	type MPCC_OGAM_LUT_WRITE_COLOR_MASK; \
933	type MPCC_OGAM_LUT_READ_COLOR_SEL; \
934	type MPCC_OGAM_LUT_READ_DBG; \
935	type MPCC_OGAM_LUT_HOST_SEL; \
936	type MPCC_OGAM_LUT_CONFIG_MODE; \
937	type MPCC_OGAM_LUT_STATUS; \
938	type MPCC_OGAM_RAMA_START_BASE_CNTL_B;\
939	type MPCC_OGAM_MEM_LOW_PWR_MODE;\
940	type MPCC_OGAM_MEM_PWR_STATE;\
941	type MPC_RMU_3DLUT_MODE; \
942	type MPC_RMU_3DLUT_SIZE; \
943	type MPC_RMU_3DLUT_MODE_CURRENT; \
944	type MPC_RMU_3DLUT_WRITE_EN_MASK;\
945	type MPC_RMU_3DLUT_RAM_SEL;\
946	type MPC_RMU_3DLUT_30BIT_EN;\
947	type MPC_RMU_3DLUT_CONFIG_STATUS;\
948	type MPC_RMU_3DLUT_READ_SEL;\
949	type MPC_RMU_3DLUT_INDEX;\
950	type MPC_RMU_3DLUT_DATA0;\
951	type MPC_RMU_3DLUT_DATA1;\
952	type MPC_RMU_3DLUT_DATA_30BIT;\
953	type MPC_RMU_SHAPER_LUT_MODE;\
954	type MPC_RMU_SHAPER_LUT_MODE_CURRENT;\
955	type MPC_RMU_SHAPER_OFFSET_R;\
956	type MPC_RMU_SHAPER_OFFSET_G;\
957	type MPC_RMU_SHAPER_OFFSET_B;\
958	type MPC_RMU_SHAPER_SCALE_R;\
959	type MPC_RMU_SHAPER_SCALE_G;\
960	type MPC_RMU_SHAPER_SCALE_B;\
961	type MPC_RMU_SHAPER_LUT_INDEX;\
962	type MPC_RMU_SHAPER_LUT_DATA;\
963	type MPC_RMU_SHAPER_LUT_WRITE_EN_MASK;\
964	type MPC_RMU_SHAPER_LUT_WRITE_SEL;\
965	type MPC_RMU_SHAPER_CONFIG_STATUS;\
966	type MPC_RMU_SHAPER_RAMA_EXP_REGION_START_B;\
967	type MPC_RMU_SHAPER_RAMA_EXP_REGION_START_SEGMENT_B;\
968	type MPC_RMU_SHAPER_RAMA_EXP_REGION_END_B;\
969	type MPC_RMU_SHAPER_RAMA_EXP_REGION_END_BASE_B;\
970	type MPC_RMU_SHAPER_RAMA_EXP_REGION0_LUT_OFFSET;\
971	type MPC_RMU_SHAPER_RAMA_EXP_REGION0_NUM_SEGMENTS;\
972	type MPC_RMU_SHAPER_RAMA_EXP_REGION1_LUT_OFFSET;\
973	type MPC_RMU_SHAPER_RAMA_EXP_REGION1_NUM_SEGMENTS;\
974	type MPC_RMU_SHAPER_MODE_CURRENT
975
976struct dcn30_mpc_registers {
977	MPC_REG_VARIABLE_LIST_DCN3_0;
978	MPC_REG_VARIABLE_LIST_DCN32;
979};
980
981struct dcn30_mpc_shift {
982	MPC_REG_FIELD_LIST_DCN3_0(uint8_t);
983	MPC_REG_FIELD_LIST_DCN32(uint8_t);
984};
985
986struct dcn30_mpc_mask {
987	MPC_REG_FIELD_LIST_DCN3_0(uint32_t);
988	MPC_REG_FIELD_LIST_DCN32(uint32_t);
989};
990
991struct dcn30_mpc {
992	struct mpc base;
993
994	int mpcc_in_use_mask;
995	int num_mpcc;
996	const struct dcn30_mpc_registers *mpc_regs;
997	const struct dcn30_mpc_shift *mpc_shift;
998	const struct dcn30_mpc_mask *mpc_mask;
999	int num_rmu;
1000};
1001
1002void dcn30_mpc_construct(struct dcn30_mpc *mpc30,
1003	struct dc_context *ctx,
1004	const struct dcn30_mpc_registers *mpc_regs,
1005	const struct dcn30_mpc_shift *mpc_shift,
1006	const struct dcn30_mpc_mask *mpc_mask,
1007	int num_mpcc,
1008	int num_rmu);
1009
1010void mpc3_mpc_init(
1011	struct mpc *mpc);
1012
1013void mpc3_mpc_init_single_inst(
1014	struct mpc *mpc,
1015	unsigned int mpcc_id);
1016
1017bool mpc3_program_shaper(
1018		struct mpc *mpc,
1019		const struct pwl_params *params,
1020		uint32_t rmu_idx);
1021
1022bool mpc3_program_3dlut(
1023		struct mpc *mpc,
1024		const struct tetrahedral_params *params,
1025		int rmu_idx);
1026
1027uint32_t mpcc3_acquire_rmu(struct mpc *mpc,
1028		int mpcc_id, int rmu_idx);
1029
1030void mpc3_set_denorm(
1031	struct mpc *mpc,
1032	int opp_id,
1033	enum dc_color_depth output_depth);
1034
1035void mpc3_set_denorm_clamp(
1036	struct mpc *mpc,
1037	int opp_id,
1038	struct mpc_denorm_clamp denorm_clamp);
1039
1040void mpc3_set_output_csc(
1041	struct mpc *mpc,
1042	int opp_id,
1043	const uint16_t *regval,
1044	enum mpc_output_csc_mode ocsc_mode);
1045
1046void mpc3_set_ocsc_default(
1047	struct mpc *mpc,
1048	int opp_id,
1049	enum dc_color_space color_space,
1050	enum mpc_output_csc_mode ocsc_mode);
1051
1052void mpc3_set_output_gamma(
1053	struct mpc *mpc,
1054	int mpcc_id,
1055	const struct pwl_params *params);
1056
1057uint32_t mpc3_get_rmu_mux_status(
1058	struct mpc *mpc,
1059	int rmu_idx);
1060
1061void mpc3_set_gamut_remap(
1062	struct mpc *mpc,
1063	int mpcc_id,
1064	const struct mpc_grph_gamut_adjustment *adjust);
1065
1066void mpc3_get_gamut_remap(struct mpc *mpc,
1067			  int mpcc_id,
1068			  struct mpc_grph_gamut_adjustment *adjust);
1069
1070void mpc3_set_rmu_mux(
1071	struct mpc *mpc,
1072	int rmu_idx,
1073	int value);
1074
1075void mpc3_set_dwb_mux(
1076	struct mpc *mpc,
1077	int dwb_id,
1078	int mpcc_id);
1079
1080void mpc3_disable_dwb_mux(
1081	struct mpc *mpc,
1082	int dwb_id);
1083
1084bool mpc3_is_dwb_idle(
1085	struct mpc *mpc,
1086	int dwb_id);
1087
1088void mpc3_power_on_ogam_lut(
1089	struct mpc *mpc, int mpcc_id,
1090	bool power_on);
1091
1092void mpc3_init_mpcc(struct mpcc *mpcc, int mpcc_inst);
1093
1094enum dc_lut_mode mpc3_get_ogam_current(
1095	struct mpc *mpc,
1096	int mpcc_id);
1097
1098#endif
1099