xref: /aosp_15_r20/external/mesa3d/src/amd/vpelib/src/chip/vpe10/inc/vpe10_dpp.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1 /* Copyright 2022 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 #pragma once
25 
26 #include "dpp.h"
27 #include "transform.h"
28 #include "reg_helper.h"
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
34 // Used to resolve corner case
35 #define DPP_SFRB(field_name, reg_name, post_fix) .field_name = reg_name##_##field_name##post_fix
36 
37 #define DPP_REG_LIST_VPE10_COMMON(id)                                                              \
38     SRIDFVL(VPCNVC_SURFACE_PIXEL_FORMAT, VPCNVC_CFG, id),                                          \
39         SRIDFVL(VPCNVC_FORMAT_CONTROL, VPCNVC_CFG, id),                                            \
40         SRIDFVL(VPCNVC_FCNV_FP_BIAS_R, VPCNVC_CFG, id),                                            \
41         SRIDFVL(VPCNVC_FCNV_FP_BIAS_G, VPCNVC_CFG, id),                                            \
42         SRIDFVL(VPCNVC_FCNV_FP_BIAS_B, VPCNVC_CFG, id),                                            \
43         SRIDFVL(VPCNVC_FCNV_FP_SCALE_R, VPCNVC_CFG, id),                                           \
44         SRIDFVL(VPCNVC_FCNV_FP_SCALE_G, VPCNVC_CFG, id),                                           \
45         SRIDFVL(VPCNVC_FCNV_FP_SCALE_B, VPCNVC_CFG, id),                                           \
46         SRIDFVL(VPCNVC_COLOR_KEYER_CONTROL, VPCNVC_CFG, id),                                       \
47         SRIDFVL(VPCNVC_COLOR_KEYER_ALPHA, VPCNVC_CFG, id),                                         \
48         SRIDFVL(VPCNVC_COLOR_KEYER_RED, VPCNVC_CFG, id),                                           \
49         SRIDFVL(VPCNVC_COLOR_KEYER_GREEN, VPCNVC_CFG, id),                                         \
50         SRIDFVL(VPCNVC_COLOR_KEYER_BLUE, VPCNVC_CFG, id),                                          \
51         SRIDFVL(VPCNVC_PRE_DEALPHA, VPCNVC_CFG, id), SRIDFVL(VPCNVC_PRE_CSC_MODE, VPCNVC_CFG, id), \
52         SRIDFVL(VPCNVC_PRE_CSC_C11_C12, VPCNVC_CFG, id),                                           \
53         SRIDFVL(VPCNVC_PRE_CSC_C13_C14, VPCNVC_CFG, id),                                           \
54         SRIDFVL(VPCNVC_PRE_CSC_C21_C22, VPCNVC_CFG, id),                                           \
55         SRIDFVL(VPCNVC_PRE_CSC_C23_C24, VPCNVC_CFG, id),                                           \
56         SRIDFVL(VPCNVC_PRE_CSC_C31_C32, VPCNVC_CFG, id),                                           \
57         SRIDFVL(VPCNVC_PRE_CSC_C33_C34, VPCNVC_CFG, id),                                           \
58         SRIDFVL(VPCNVC_COEF_FORMAT, VPCNVC_CFG, id), SRIDFVL(VPCNVC_PRE_DEGAM, VPCNVC_CFG, id),    \
59         SRIDFVL(VPCNVC_PRE_REALPHA, VPCNVC_CFG, id),                                               \
60         SRIDFVL(VPDSCL_COEF_RAM_TAP_SELECT, VPDSCL, id),                                           \
61         SRIDFVL(VPDSCL_COEF_RAM_TAP_DATA, VPDSCL, id), SRIDFVL(VPDSCL_MODE, VPDSCL, id),           \
62         SRIDFVL(VPDSCL_TAP_CONTROL, VPDSCL, id), SRIDFVL(VPDSCL_CONTROL, VPDSCL, id),              \
63         SRIDFVL(VPDSCL_2TAP_CONTROL, VPDSCL, id),                                                  \
64         SRIDFVL(VPDSCL_MANUAL_REPLICATE_CONTROL, VPDSCL, id),                                      \
65         SRIDFVL(VPDSCL_HORZ_FILTER_SCALE_RATIO, VPDSCL, id),                                       \
66         SRIDFVL(VPDSCL_HORZ_FILTER_INIT, VPDSCL, id),                                              \
67         SRIDFVL(VPDSCL_HORZ_FILTER_SCALE_RATIO_C, VPDSCL, id),                                     \
68         SRIDFVL(VPDSCL_HORZ_FILTER_INIT_C, VPDSCL, id),                                            \
69         SRIDFVL(VPDSCL_VERT_FILTER_SCALE_RATIO, VPDSCL, id),                                       \
70         SRIDFVL(VPDSCL_VERT_FILTER_INIT, VPDSCL, id),                                              \
71         SRIDFVL(VPDSCL_VERT_FILTER_SCALE_RATIO_C, VPDSCL, id),                                     \
72         SRIDFVL(VPDSCL_VERT_FILTER_INIT_C, VPDSCL, id), SRIDFVL(VPDSCL_BLACK_COLOR, VPDSCL, id),   \
73         SRIDFVL(VPDSCL_UPDATE, VPDSCL, id), SRIDFVL(VPDSCL_AUTOCAL, VPDSCL, id),                   \
74         SRIDFVL(VPDSCL_EXT_OVERSCAN_LEFT_RIGHT, VPDSCL, id),                                       \
75         SRIDFVL(VPDSCL_EXT_OVERSCAN_TOP_BOTTOM, VPDSCL, id), SRIDFVL(VPOTG_H_BLANK, VPDSCL, id),   \
76         SRIDFVL(VPOTG_V_BLANK, VPDSCL, id), SRIDFVL(VPDSCL_RECOUT_START, VPDSCL, id),              \
77         SRIDFVL(VPDSCL_RECOUT_SIZE, VPDSCL, id), SRIDFVL(VPMPC_SIZE, VPDSCL, id),                  \
78         SRIDFVL(VPLB_DATA_FORMAT, VPDSCL, id), SRIDFVL(VPLB_MEMORY_CTRL, VPDSCL, id),              \
79         SRIDFVL(VPLB_V_COUNTER, VPDSCL, id), SRIDFVL(VPDSCL_MEM_PWR_CTRL, VPDSCL, id),             \
80         SRIDFVL(VPDSCL_MEM_PWR_STATUS, VPDSCL, id), SRIDFVL(VPCM_CONTROL, VPCM, id),               \
81         SRIDFVL(VPCM_POST_CSC_CONTROL, VPCM, id), SRIDFVL(VPCM_POST_CSC_C11_C12, VPCM, id),        \
82         SRIDFVL(VPCM_POST_CSC_C13_C14, VPCM, id), SRIDFVL(VPCM_POST_CSC_C21_C22, VPCM, id),        \
83         SRIDFVL(VPCM_POST_CSC_C23_C24, VPCM, id), SRIDFVL(VPCM_POST_CSC_C31_C32, VPCM, id),        \
84         SRIDFVL(VPCM_POST_CSC_C33_C34, VPCM, id),                                                  \
85         SRIDFVL(VPCM_BIAS_CR_R, VPCM, id), SRIDFVL(VPCM_BIAS_Y_G_CB_B, VPCM, id),                  \
86         SRIDFVL(VPCM_GAMCOR_CONTROL, VPCM, id), SRIDFVL(VPCM_GAMCOR_LUT_INDEX, VPCM, id),          \
87         SRIDFVL(VPCM_GAMCOR_LUT_DATA, VPCM, id), SRIDFVL(VPCM_GAMCOR_LUT_CONTROL, VPCM, id),       \
88         SRIDFVL(VPCM_GAMCOR_RAMA_START_CNTL_B, VPCM, id),                                          \
89         SRIDFVL(VPCM_GAMCOR_RAMA_START_CNTL_G, VPCM, id),                                          \
90         SRIDFVL(VPCM_GAMCOR_RAMA_START_CNTL_R, VPCM, id),                                          \
91         SRIDFVL(VPCM_GAMCOR_RAMA_START_SLOPE_CNTL_B, VPCM, id),                                    \
92         SRIDFVL(VPCM_GAMCOR_RAMA_START_SLOPE_CNTL_G, VPCM, id),                                    \
93         SRIDFVL(VPCM_GAMCOR_RAMA_START_SLOPE_CNTL_R, VPCM, id),                                    \
94         SRIDFVL(VPCM_GAMCOR_RAMA_START_BASE_CNTL_B, VPCM, id),                                     \
95         SRIDFVL(VPCM_GAMCOR_RAMA_START_BASE_CNTL_G, VPCM, id),                                     \
96         SRIDFVL(VPCM_GAMCOR_RAMA_START_BASE_CNTL_R, VPCM, id),                                     \
97         SRIDFVL(VPCM_GAMCOR_RAMA_END_CNTL1_B, VPCM, id),                                           \
98         SRIDFVL(VPCM_GAMCOR_RAMA_END_CNTL2_B, VPCM, id),                                           \
99         SRIDFVL(VPCM_GAMCOR_RAMA_END_CNTL1_G, VPCM, id),                                           \
100         SRIDFVL(VPCM_GAMCOR_RAMA_END_CNTL2_G, VPCM, id),                                           \
101         SRIDFVL(VPCM_GAMCOR_RAMA_END_CNTL1_R, VPCM, id),                                           \
102         SRIDFVL(VPCM_GAMCOR_RAMA_END_CNTL2_R, VPCM, id),                                           \
103         SRIDFVL(VPCM_GAMCOR_RAMA_OFFSET_B, VPCM, id),                                              \
104         SRIDFVL(VPCM_GAMCOR_RAMA_OFFSET_G, VPCM, id),                                              \
105         SRIDFVL(VPCM_GAMCOR_RAMA_OFFSET_R, VPCM, id),                                              \
106         SRIDFVL(VPCM_GAMCOR_RAMA_REGION_0_1, VPCM, id),                                            \
107         SRIDFVL(VPCM_GAMCOR_RAMA_REGION_2_3, VPCM, id),                                            \
108         SRIDFVL(VPCM_GAMCOR_RAMA_REGION_4_5, VPCM, id),                                            \
109         SRIDFVL(VPCM_GAMCOR_RAMA_REGION_6_7, VPCM, id),                                            \
110         SRIDFVL(VPCM_GAMCOR_RAMA_REGION_8_9, VPCM, id),                                            \
111         SRIDFVL(VPCM_GAMCOR_RAMA_REGION_10_11, VPCM, id),                                          \
112         SRIDFVL(VPCM_GAMCOR_RAMA_REGION_12_13, VPCM, id),                                          \
113         SRIDFVL(VPCM_GAMCOR_RAMA_REGION_14_15, VPCM, id),                                          \
114         SRIDFVL(VPCM_GAMCOR_RAMA_REGION_16_17, VPCM, id),                                          \
115         SRIDFVL(VPCM_GAMCOR_RAMA_REGION_18_19, VPCM, id),                                          \
116         SRIDFVL(VPCM_GAMCOR_RAMA_REGION_20_21, VPCM, id),                                          \
117         SRIDFVL(VPCM_GAMCOR_RAMA_REGION_22_23, VPCM, id),                                          \
118         SRIDFVL(VPCM_GAMCOR_RAMA_REGION_24_25, VPCM, id),                                          \
119         SRIDFVL(VPCM_GAMCOR_RAMA_REGION_26_27, VPCM, id),                                          \
120         SRIDFVL(VPCM_GAMCOR_RAMA_REGION_28_29, VPCM, id),                                          \
121         SRIDFVL(VPCM_GAMCOR_RAMA_REGION_30_31, VPCM, id),                                          \
122         SRIDFVL(VPCM_GAMCOR_RAMA_REGION_32_33, VPCM, id), SRIDFVL(VPCM_HDR_MULT_COEF, VPCM, id),   \
123         SRIDFVL(VPCM_MEM_PWR_CTRL, VPCM, id), SRIDFVL(VPCM_MEM_PWR_STATUS, VPCM, id),              \
124         SRIDFVL(VPCM_DEALPHA, VPCM, id), SRIDFVL(VPCM_COEF_FORMAT, VPCM, id),                      \
125         SRIDFVL(VPDPP_CONTROL, VPDPP_TOP, id), SRIDFVL(VPDPP_CRC_CTRL, VPDPP_TOP, id)
126 
127 #define DPP_REG_LIST_VPE10(id)                                                                     \
128     DPP_REG_LIST_VPE10_COMMON(id),                                                                 \
129         SRIDFVL(VPCNVC_ALPHA_2BIT_LUT, VPCNVC_CFG, id),                                            \
130         SRIDFVL(VPCM_GAMUT_REMAP_CONTROL, VPCM, id),                                               \
131         SRIDFVL(VPCM_GAMUT_REMAP_C11_C12, VPCM, id), SRIDFVL(VPCM_GAMUT_REMAP_C13_C14, VPCM, id),  \
132         SRIDFVL(VPCM_GAMUT_REMAP_C21_C22, VPCM, id), SRIDFVL(VPCM_GAMUT_REMAP_C23_C24, VPCM, id),  \
133         SRIDFVL(VPCM_GAMUT_REMAP_C31_C32, VPCM, id), SRIDFVL(VPCM_GAMUT_REMAP_C33_C34, VPCM, id)
134 
135 #define DPP_FIELD_LIST_VPE10_COMMON(post_fix)                                                      \
136     SFRB(VPCNVC_SURFACE_PIXEL_FORMAT, VPCNVC_SURFACE_PIXEL_FORMAT, post_fix),                      \
137         SFRB(FORMAT_EXPANSION_MODE, VPCNVC_FORMAT_CONTROL, post_fix),                              \
138         SFRB(FORMAT_CNV16, VPCNVC_FORMAT_CONTROL, post_fix),                                       \
139         DPP_SFRB(FORMAT_CONTROL__ALPHA_EN, VPCNVC, post_fix),                                      \
140         SFRB(VPCNVC_BYPASS, VPCNVC_FORMAT_CONTROL, post_fix),                                      \
141         SFRB(VPCNVC_BYPASS_MSB_ALIGN, VPCNVC_FORMAT_CONTROL, post_fix),                            \
142         SFRB(CLAMP_POSITIVE, VPCNVC_FORMAT_CONTROL, post_fix),                                     \
143         SFRB(CLAMP_POSITIVE_C, VPCNVC_FORMAT_CONTROL, post_fix),                                   \
144         SFRB(VPCNVC_UPDATE_PENDING, VPCNVC_FORMAT_CONTROL, post_fix),                              \
145         SFRB(FCNV_FP_BIAS_R, VPCNVC_FCNV_FP_BIAS_R, post_fix),                                     \
146         SFRB(FCNV_FP_BIAS_G, VPCNVC_FCNV_FP_BIAS_G, post_fix),                                     \
147         SFRB(FCNV_FP_BIAS_B, VPCNVC_FCNV_FP_BIAS_B, post_fix),                                     \
148         SFRB(FCNV_FP_SCALE_R, VPCNVC_FCNV_FP_SCALE_R, post_fix),                                   \
149         SFRB(FCNV_FP_SCALE_G, VPCNVC_FCNV_FP_SCALE_G, post_fix),                                   \
150         SFRB(FCNV_FP_SCALE_B, VPCNVC_FCNV_FP_SCALE_B, post_fix),                                   \
151         SFRB(COLOR_KEYER_EN, VPCNVC_COLOR_KEYER_CONTROL, post_fix),                                \
152         SFRB(COLOR_KEYER_MODE, VPCNVC_COLOR_KEYER_CONTROL, post_fix),                              \
153         SFRB(COLOR_KEYER_ALPHA_LOW, VPCNVC_COLOR_KEYER_ALPHA, post_fix),                           \
154         SFRB(COLOR_KEYER_ALPHA_HIGH, VPCNVC_COLOR_KEYER_ALPHA, post_fix),                          \
155         SFRB(COLOR_KEYER_RED_LOW, VPCNVC_COLOR_KEYER_RED, post_fix),                               \
156         SFRB(COLOR_KEYER_RED_HIGH, VPCNVC_COLOR_KEYER_RED, post_fix),                              \
157         SFRB(COLOR_KEYER_GREEN_LOW, VPCNVC_COLOR_KEYER_GREEN, post_fix),                           \
158         SFRB(COLOR_KEYER_GREEN_HIGH, VPCNVC_COLOR_KEYER_GREEN, post_fix),                          \
159         SFRB(COLOR_KEYER_BLUE_LOW, VPCNVC_COLOR_KEYER_BLUE, post_fix),                             \
160         SFRB(COLOR_KEYER_BLUE_HIGH, VPCNVC_COLOR_KEYER_BLUE, post_fix),                            \
161         SFRB(PRE_DEALPHA_EN, VPCNVC_PRE_DEALPHA, post_fix),                                        \
162         SFRB(PRE_DEALPHA_ABLND_EN, VPCNVC_PRE_DEALPHA, post_fix),                                  \
163         SFRB(PRE_CSC_MODE, VPCNVC_PRE_CSC_MODE, post_fix),                                         \
164         SFRB(PRE_CSC_MODE_CURRENT, VPCNVC_PRE_CSC_MODE, post_fix),                                 \
165         SFRB(PRE_CSC_C11, VPCNVC_PRE_CSC_C11_C12, post_fix),                                       \
166         SFRB(PRE_CSC_C12, VPCNVC_PRE_CSC_C11_C12, post_fix),                                       \
167         SFRB(PRE_CSC_C13, VPCNVC_PRE_CSC_C13_C14, post_fix),                                       \
168         SFRB(PRE_CSC_C14, VPCNVC_PRE_CSC_C13_C14, post_fix),                                       \
169         SFRB(PRE_CSC_C21, VPCNVC_PRE_CSC_C21_C22, post_fix),                                       \
170         SFRB(PRE_CSC_C22, VPCNVC_PRE_CSC_C21_C22, post_fix),                                       \
171         SFRB(PRE_CSC_C23, VPCNVC_PRE_CSC_C23_C24, post_fix),                                       \
172         SFRB(PRE_CSC_C24, VPCNVC_PRE_CSC_C23_C24, post_fix),                                       \
173         SFRB(PRE_CSC_C31, VPCNVC_PRE_CSC_C31_C32, post_fix),                                       \
174         SFRB(PRE_CSC_C32, VPCNVC_PRE_CSC_C31_C32, post_fix),                                       \
175         SFRB(PRE_CSC_C33, VPCNVC_PRE_CSC_C33_C34, post_fix),                                       \
176         SFRB(PRE_CSC_C34, VPCNVC_PRE_CSC_C33_C34, post_fix),                                       \
177         SFRB(PRE_CSC_COEF_FORMAT, VPCNVC_COEF_FORMAT, post_fix),                                   \
178         SFRB(PRE_DEGAM_MODE, VPCNVC_PRE_DEGAM, post_fix),                                          \
179         SFRB(PRE_DEGAM_SELECT, VPCNVC_PRE_DEGAM, post_fix),                                        \
180         SFRB(PRE_REALPHA_EN, VPCNVC_PRE_REALPHA, post_fix),                                        \
181         SFRB(PRE_REALPHA_ABLND_EN, VPCNVC_PRE_REALPHA, post_fix),                                  \
182         SFRB(SCL_COEF_RAM_TAP_PAIR_IDX, VPDSCL_COEF_RAM_TAP_SELECT, post_fix),                     \
183         SFRB(SCL_COEF_RAM_PHASE, VPDSCL_COEF_RAM_TAP_SELECT, post_fix),                            \
184         SFRB(SCL_COEF_RAM_FILTER_TYPE, VPDSCL_COEF_RAM_TAP_SELECT, post_fix),                      \
185         SFRB(SCL_COEF_RAM_EVEN_TAP_COEF, VPDSCL_COEF_RAM_TAP_DATA, post_fix),                      \
186         SFRB(SCL_COEF_RAM_EVEN_TAP_COEF_EN, VPDSCL_COEF_RAM_TAP_DATA, post_fix),                   \
187         SFRB(SCL_COEF_RAM_ODD_TAP_COEF, VPDSCL_COEF_RAM_TAP_DATA, post_fix),                       \
188         SFRB(SCL_COEF_RAM_ODD_TAP_COEF_EN, VPDSCL_COEF_RAM_TAP_DATA, post_fix),                    \
189         SFRB(VPDSCL_MODE, VPDSCL_MODE, post_fix),                                                  \
190         SFRB(SCL_COEF_RAM_SELECT_CURRENT, VPDSCL_MODE, post_fix),                                  \
191         SFRB(SCL_CHROMA_COEF_MODE, VPDSCL_MODE, post_fix),                                         \
192         SFRB(SCL_ALPHA_COEF_MODE, VPDSCL_MODE, post_fix),                                          \
193         SFRB(SCL_COEF_RAM_SELECT_RD, VPDSCL_MODE, post_fix),                                       \
194         SFRB(SCL_V_NUM_TAPS, VPDSCL_TAP_CONTROL, post_fix),                                        \
195         SFRB(SCL_H_NUM_TAPS, VPDSCL_TAP_CONTROL, post_fix),                                        \
196         SFRB(SCL_V_NUM_TAPS_C, VPDSCL_TAP_CONTROL, post_fix),                                      \
197         SFRB(SCL_H_NUM_TAPS_C, VPDSCL_TAP_CONTROL, post_fix),                                      \
198         SFRB(SCL_BOUNDARY_MODE, VPDSCL_CONTROL, post_fix),                                         \
199         SFRB(SCL_H_2TAP_HARDCODE_COEF_EN, VPDSCL_2TAP_CONTROL, post_fix),                          \
200         SFRB(SCL_H_2TAP_SHARP_EN, VPDSCL_2TAP_CONTROL, post_fix),                                  \
201         SFRB(SCL_H_2TAP_SHARP_FACTOR, VPDSCL_2TAP_CONTROL, post_fix),                              \
202         SFRB(SCL_V_2TAP_HARDCODE_COEF_EN, VPDSCL_2TAP_CONTROL, post_fix),                          \
203         SFRB(SCL_V_2TAP_SHARP_EN, VPDSCL_2TAP_CONTROL, post_fix),                                  \
204         SFRB(SCL_V_2TAP_SHARP_FACTOR, VPDSCL_2TAP_CONTROL, post_fix),                              \
205         SFRB(SCL_V_MANUAL_REPLICATE_FACTOR, VPDSCL_MANUAL_REPLICATE_CONTROL, post_fix),            \
206         SFRB(SCL_H_MANUAL_REPLICATE_FACTOR, VPDSCL_MANUAL_REPLICATE_CONTROL, post_fix),            \
207         SFRB(SCL_H_SCALE_RATIO, VPDSCL_HORZ_FILTER_SCALE_RATIO, post_fix),                         \
208         SFRB(SCL_H_INIT_FRAC, VPDSCL_HORZ_FILTER_INIT, post_fix),                                  \
209         SFRB(SCL_H_INIT_INT, VPDSCL_HORZ_FILTER_INIT, post_fix),                                   \
210         SFRB(SCL_H_SCALE_RATIO_C, VPDSCL_HORZ_FILTER_SCALE_RATIO_C, post_fix),                     \
211         SFRB(SCL_H_INIT_FRAC_C, VPDSCL_HORZ_FILTER_INIT_C, post_fix),                              \
212         SFRB(SCL_H_INIT_INT_C, VPDSCL_HORZ_FILTER_INIT_C, post_fix),                               \
213         SFRB(SCL_V_SCALE_RATIO, VPDSCL_VERT_FILTER_SCALE_RATIO, post_fix),                         \
214         SFRB(SCL_V_INIT_FRAC, VPDSCL_VERT_FILTER_INIT, post_fix),                                  \
215         SFRB(SCL_V_INIT_INT, VPDSCL_VERT_FILTER_INIT, post_fix),                                   \
216         SFRB(SCL_V_SCALE_RATIO_C, VPDSCL_VERT_FILTER_SCALE_RATIO_C, post_fix),                     \
217         SFRB(SCL_V_INIT_FRAC_C, VPDSCL_VERT_FILTER_INIT_C, post_fix),                              \
218         SFRB(SCL_V_INIT_INT_C, VPDSCL_VERT_FILTER_INIT_C, post_fix),                               \
219         SFRB(SCL_BLACK_COLOR_RGB_Y, VPDSCL_BLACK_COLOR, post_fix),                                 \
220         SFRB(SCL_BLACK_COLOR_CBCR, VPDSCL_BLACK_COLOR, post_fix),                                  \
221         SFRB(SCL_UPDATE_PENDING, VPDSCL_UPDATE, post_fix),                                         \
222         SFRB(AUTOCAL_MODE, VPDSCL_AUTOCAL, post_fix),                                              \
223         SFRB(EXT_OVERSCAN_RIGHT, VPDSCL_EXT_OVERSCAN_LEFT_RIGHT, post_fix),                        \
224         SFRB(EXT_OVERSCAN_LEFT, VPDSCL_EXT_OVERSCAN_LEFT_RIGHT, post_fix),                         \
225         SFRB(EXT_OVERSCAN_BOTTOM, VPDSCL_EXT_OVERSCAN_TOP_BOTTOM, post_fix),                       \
226         SFRB(EXT_OVERSCAN_TOP, VPDSCL_EXT_OVERSCAN_TOP_BOTTOM, post_fix),                          \
227         SFRB(OTG_H_BLANK_START, VPOTG_H_BLANK, post_fix),                                          \
228         SFRB(OTG_H_BLANK_END, VPOTG_H_BLANK, post_fix),                                            \
229         SFRB(OTG_V_BLANK_START, VPOTG_V_BLANK, post_fix),                                          \
230         SFRB(OTG_V_BLANK_END, VPOTG_V_BLANK, post_fix),                                            \
231         SFRB(RECOUT_START_X, VPDSCL_RECOUT_START, post_fix),                                       \
232         SFRB(RECOUT_START_Y, VPDSCL_RECOUT_START, post_fix),                                       \
233         SFRB(RECOUT_WIDTH, VPDSCL_RECOUT_SIZE, post_fix),                                          \
234         SFRB(RECOUT_HEIGHT, VPDSCL_RECOUT_SIZE, post_fix),                                         \
235         SFRB(VPMPC_WIDTH, VPMPC_SIZE, post_fix), SFRB(VPMPC_HEIGHT, VPMPC_SIZE, post_fix),         \
236         SFRB(ALPHA_EN, VPLB_DATA_FORMAT, post_fix),                                                \
237         SFRB(MEMORY_CONFIG, VPLB_MEMORY_CTRL, post_fix),                                           \
238         SFRB(LB_MAX_PARTITIONS, VPLB_MEMORY_CTRL, post_fix),                                       \
239         SFRB(LB_NUM_PARTITIONS, VPLB_MEMORY_CTRL, post_fix),                                       \
240         SFRB(LB_NUM_PARTITIONS_C, VPLB_MEMORY_CTRL, post_fix),                                     \
241         SFRB(V_COUNTER, VPLB_V_COUNTER, post_fix), SFRB(V_COUNTER_C, VPLB_V_COUNTER, post_fix),    \
242         SFRB(LUT_MEM_PWR_FORCE, VPDSCL_MEM_PWR_CTRL, post_fix),                                    \
243         SFRB(LUT_MEM_PWR_DIS, VPDSCL_MEM_PWR_CTRL, post_fix),                                      \
244         SFRB(LB_G1_MEM_PWR_FORCE, VPDSCL_MEM_PWR_CTRL, post_fix),                                  \
245         SFRB(LB_G1_MEM_PWR_DIS, VPDSCL_MEM_PWR_CTRL, post_fix),                                    \
246         SFRB(LB_G2_MEM_PWR_FORCE, VPDSCL_MEM_PWR_CTRL, post_fix),                                  \
247         SFRB(LB_G2_MEM_PWR_DIS, VPDSCL_MEM_PWR_CTRL, post_fix),                                    \
248         SFRB(LB_MEM_PWR_MODE, VPDSCL_MEM_PWR_CTRL, post_fix),                                      \
249         SFRB(LUT_MEM_PWR_STATE, VPDSCL_MEM_PWR_STATUS, post_fix),                                  \
250         SFRB(LB_G1_MEM_PWR_STATE, VPDSCL_MEM_PWR_STATUS, post_fix),                                \
251         SFRB(LB_G2_MEM_PWR_STATE, VPDSCL_MEM_PWR_STATUS, post_fix),                                \
252         SFRB(VPCM_BYPASS, VPCM_CONTROL, post_fix),                                                 \
253         SFRB(VPCM_UPDATE_PENDING, VPCM_CONTROL, post_fix),                                         \
254         SFRB(VPCM_POST_CSC_MODE, VPCM_POST_CSC_CONTROL, post_fix),                                 \
255         SFRB(VPCM_POST_CSC_MODE_CURRENT, VPCM_POST_CSC_CONTROL, post_fix),                         \
256         SFRB(VPCM_POST_CSC_C11, VPCM_POST_CSC_C11_C12, post_fix),                                  \
257         SFRB(VPCM_POST_CSC_C12, VPCM_POST_CSC_C11_C12, post_fix),                                  \
258         SFRB(VPCM_POST_CSC_C13, VPCM_POST_CSC_C13_C14, post_fix),                                  \
259         SFRB(VPCM_POST_CSC_C14, VPCM_POST_CSC_C13_C14, post_fix),                                  \
260         SFRB(VPCM_POST_CSC_C21, VPCM_POST_CSC_C21_C22, post_fix),                                  \
261         SFRB(VPCM_POST_CSC_C22, VPCM_POST_CSC_C21_C22, post_fix),                                  \
262         SFRB(VPCM_POST_CSC_C23, VPCM_POST_CSC_C23_C24, post_fix),                                  \
263         SFRB(VPCM_POST_CSC_C24, VPCM_POST_CSC_C23_C24, post_fix),                                  \
264         SFRB(VPCM_POST_CSC_C31, VPCM_POST_CSC_C31_C32, post_fix),                                  \
265         SFRB(VPCM_POST_CSC_C32, VPCM_POST_CSC_C31_C32, post_fix),                                  \
266         SFRB(VPCM_POST_CSC_C33, VPCM_POST_CSC_C33_C34, post_fix),                                  \
267         SFRB(VPCM_POST_CSC_C34, VPCM_POST_CSC_C33_C34, post_fix),                                  \
268         SFRB(VPCM_BIAS_CR_R, VPCM_BIAS_CR_R, post_fix),                                            \
269         SFRB(VPCM_BIAS_Y_G, VPCM_BIAS_Y_G_CB_B, post_fix),                                         \
270         SFRB(VPCM_BIAS_CB_B, VPCM_BIAS_Y_G_CB_B, post_fix),                                        \
271         SFRB(VPCM_GAMCOR_MODE, VPCM_GAMCOR_CONTROL, post_fix),                                     \
272         SFRB(VPCM_GAMCOR_PWL_DISABLE, VPCM_GAMCOR_CONTROL, post_fix),                              \
273         SFRB(VPCM_GAMCOR_MODE_CURRENT, VPCM_GAMCOR_CONTROL, post_fix),                             \
274         SFRB(VPCM_GAMCOR_SELECT_CURRENT, VPCM_GAMCOR_CONTROL, post_fix),                           \
275         SFRB(VPCM_GAMCOR_LUT_INDEX, VPCM_GAMCOR_LUT_INDEX, post_fix),                              \
276         SFRB(VPCM_GAMCOR_LUT_DATA, VPCM_GAMCOR_LUT_DATA, post_fix),                                \
277         SFRB(VPCM_GAMCOR_LUT_WRITE_COLOR_MASK, VPCM_GAMCOR_LUT_CONTROL, post_fix),                 \
278         SFRB(VPCM_GAMCOR_LUT_READ_COLOR_SEL, VPCM_GAMCOR_LUT_CONTROL, post_fix),                   \
279         SFRB(VPCM_GAMCOR_LUT_READ_DBG, VPCM_GAMCOR_LUT_CONTROL, post_fix),                         \
280         SFRB(VPCM_GAMCOR_LUT_HOST_SEL, VPCM_GAMCOR_LUT_CONTROL, post_fix),                         \
281         SFRB(VPCM_GAMCOR_LUT_CONFIG_MODE, VPCM_GAMCOR_LUT_CONTROL, post_fix),                      \
282         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION_START_B, VPCM_GAMCOR_RAMA_START_CNTL_B, post_fix),        \
283         SFRB(                                                                                      \
284             VPCM_GAMCOR_RAMA_EXP_REGION_START_SEGMENT_B, VPCM_GAMCOR_RAMA_START_CNTL_B, post_fix), \
285         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION_START_G, VPCM_GAMCOR_RAMA_START_CNTL_G, post_fix),        \
286         SFRB(                                                                                      \
287             VPCM_GAMCOR_RAMA_EXP_REGION_START_SEGMENT_G, VPCM_GAMCOR_RAMA_START_CNTL_G, post_fix), \
288         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION_START_R, VPCM_GAMCOR_RAMA_START_CNTL_R, post_fix),        \
289         SFRB(                                                                                      \
290             VPCM_GAMCOR_RAMA_EXP_REGION_START_SEGMENT_R, VPCM_GAMCOR_RAMA_START_CNTL_R, post_fix), \
291         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION_START_SLOPE_B, VPCM_GAMCOR_RAMA_START_SLOPE_CNTL_B,       \
292             post_fix),                                                                             \
293         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION_START_SLOPE_G, VPCM_GAMCOR_RAMA_START_SLOPE_CNTL_G,       \
294             post_fix),                                                                             \
295         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION_START_SLOPE_R, VPCM_GAMCOR_RAMA_START_SLOPE_CNTL_R,       \
296             post_fix),                                                                             \
297         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION_START_BASE_B, VPCM_GAMCOR_RAMA_START_BASE_CNTL_B,         \
298             post_fix),                                                                             \
299         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION_START_BASE_G, VPCM_GAMCOR_RAMA_START_BASE_CNTL_G,         \
300             post_fix),                                                                             \
301         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION_START_BASE_R, VPCM_GAMCOR_RAMA_START_BASE_CNTL_R,         \
302             post_fix),                                                                             \
303         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION_END_BASE_B, VPCM_GAMCOR_RAMA_END_CNTL1_B, post_fix),      \
304         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION_END_B, VPCM_GAMCOR_RAMA_END_CNTL2_B, post_fix),           \
305         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION_END_SLOPE_B, VPCM_GAMCOR_RAMA_END_CNTL2_B, post_fix),     \
306         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION_END_BASE_G, VPCM_GAMCOR_RAMA_END_CNTL1_G, post_fix),      \
307         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION_END_G, VPCM_GAMCOR_RAMA_END_CNTL2_G, post_fix),           \
308         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION_END_SLOPE_G, VPCM_GAMCOR_RAMA_END_CNTL2_G, post_fix),     \
309         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION_END_BASE_R, VPCM_GAMCOR_RAMA_END_CNTL1_R, post_fix),      \
310         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION_END_R, VPCM_GAMCOR_RAMA_END_CNTL2_R, post_fix),           \
311         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION_END_SLOPE_R, VPCM_GAMCOR_RAMA_END_CNTL2_R, post_fix),     \
312         SFRB(VPCM_GAMCOR_RAMA_OFFSET_B, VPCM_GAMCOR_RAMA_OFFSET_B, post_fix),                      \
313         SFRB(VPCM_GAMCOR_RAMA_OFFSET_G, VPCM_GAMCOR_RAMA_OFFSET_G, post_fix),                      \
314         SFRB(VPCM_GAMCOR_RAMA_OFFSET_R, VPCM_GAMCOR_RAMA_OFFSET_R, post_fix),                      \
315         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION0_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_0_1, post_fix),      \
316         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION0_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_0_1, post_fix),    \
317         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION1_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_0_1, post_fix),      \
318         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION1_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_0_1, post_fix),    \
319         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION2_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_2_3, post_fix),      \
320         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION2_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_2_3, post_fix),    \
321         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION3_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_2_3, post_fix),      \
322         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION3_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_2_3, post_fix),    \
323         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION4_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_4_5, post_fix),      \
324         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION4_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_4_5, post_fix),    \
325         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION5_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_4_5, post_fix),      \
326         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION5_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_4_5, post_fix),    \
327         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION6_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_6_7, post_fix),      \
328         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION6_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_6_7, post_fix),    \
329         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION7_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_6_7, post_fix),      \
330         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION7_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_6_7, post_fix),    \
331         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION8_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_8_9, post_fix),      \
332         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION8_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_8_9, post_fix),    \
333         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION9_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_8_9, post_fix),      \
334         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION9_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_8_9, post_fix),    \
335         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION10_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_10_11, post_fix),   \
336         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION10_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_10_11, post_fix), \
337         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION11_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_10_11, post_fix),   \
338         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION11_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_10_11, post_fix), \
339         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION12_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_12_13, post_fix),   \
340         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION12_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_12_13, post_fix), \
341         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION13_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_12_13, post_fix),   \
342         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION13_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_12_13, post_fix), \
343         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION14_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_14_15, post_fix),   \
344         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION14_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_14_15, post_fix), \
345         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION15_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_14_15, post_fix),   \
346         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION15_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_14_15, post_fix), \
347         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION16_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_16_17, post_fix),   \
348         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION16_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_16_17, post_fix), \
349         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION17_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_16_17, post_fix),   \
350         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION17_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_16_17, post_fix), \
351         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION18_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_18_19, post_fix),   \
352         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION18_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_18_19, post_fix), \
353         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION19_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_18_19, post_fix),   \
354         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION19_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_18_19, post_fix), \
355         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION20_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_20_21, post_fix),   \
356         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION20_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_20_21, post_fix), \
357         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION21_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_20_21, post_fix),   \
358         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION21_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_20_21, post_fix), \
359         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION22_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_22_23, post_fix),   \
360         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION22_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_22_23, post_fix), \
361         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION23_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_22_23, post_fix),   \
362         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION23_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_22_23, post_fix), \
363         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION24_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_24_25, post_fix),   \
364         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION24_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_24_25, post_fix), \
365         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION25_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_24_25, post_fix),   \
366         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION25_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_24_25, post_fix), \
367         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION26_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_26_27, post_fix),   \
368         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION26_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_26_27, post_fix), \
369         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION27_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_26_27, post_fix),   \
370         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION27_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_26_27, post_fix), \
371         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION28_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_28_29, post_fix),   \
372         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION28_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_28_29, post_fix), \
373         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION29_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_28_29, post_fix),   \
374         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION29_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_28_29, post_fix), \
375         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION30_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_30_31, post_fix),   \
376         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION30_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_30_31, post_fix), \
377         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION31_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_30_31, post_fix),   \
378         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION31_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_30_31, post_fix), \
379         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION32_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_32_33, post_fix),   \
380         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION32_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_32_33, post_fix), \
381         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION33_LUT_OFFSET, VPCM_GAMCOR_RAMA_REGION_32_33, post_fix),   \
382         SFRB(VPCM_GAMCOR_RAMA_EXP_REGION33_NUM_SEGMENTS, VPCM_GAMCOR_RAMA_REGION_32_33, post_fix), \
383         SFRB(VPCM_HDR_MULT_COEF, VPCM_HDR_MULT_COEF, post_fix),                                    \
384         SFRB(GAMCOR_MEM_PWR_FORCE, VPCM_MEM_PWR_CTRL, post_fix),                                   \
385         SFRB(GAMCOR_MEM_PWR_DIS, VPCM_MEM_PWR_CTRL, post_fix),                                     \
386         SFRB(GAMCOR_MEM_PWR_STATE, VPCM_MEM_PWR_STATUS, post_fix),                                 \
387         SFRB(VPCM_DEALPHA_EN, VPCM_DEALPHA, post_fix),                                             \
388         SFRB(VPCM_DEALPHA_ABLND, VPCM_DEALPHA, post_fix),                                          \
389         SFRB(VPCM_BIAS_FORMAT, VPCM_COEF_FORMAT, post_fix),                                        \
390         SFRB(VPCM_POST_CSC_COEF_FORMAT, VPCM_COEF_FORMAT, post_fix),                               \
391         SFRB(VPDPP_CLOCK_ENABLE, VPDPP_CONTROL, post_fix),                                         \
392         SFRB(VPECLK_G_GATE_DISABLE, VPDPP_CONTROL, post_fix),                                      \
393         SFRB(VPECLK_G_DYN_GATE_DISABLE, VPDPP_CONTROL, post_fix),                                  \
394         SFRB(VPECLK_G_VPDSCL_GATE_DISABLE, VPDPP_CONTROL, post_fix),                               \
395         SFRB(VPECLK_R_GATE_DISABLE, VPDPP_CONTROL, post_fix),                                      \
396         SFRB(DISPCLK_R_GATE_DISABLE, VPDPP_CONTROL, post_fix),                                     \
397         SFRB(DISPCLK_G_GATE_DISABLE, VPDPP_CONTROL, post_fix),                                     \
398         SFRB(VPDPP_FGCG_REP_DIS, VPDPP_CONTROL, post_fix),                                         \
399         SFRB(VPDPP_TEST_CLK_SEL, VPDPP_CONTROL, post_fix),                                         \
400         SFRB(VPDPP_CRC_EN, VPDPP_CRC_CTRL, post_fix),                                              \
401         SFRB(VPDPP_CRC_CONT_EN, VPDPP_CRC_CTRL, post_fix),                                         \
402         SFRB(VPDPP_CRC_420_COMP_SEL, VPDPP_CRC_CTRL, post_fix),                                    \
403         SFRB(VPDPP_CRC_SRC_SEL, VPDPP_CRC_CTRL, post_fix),                                         \
404         SFRB(VPDPP_CRC_PIX_FORMAT_SEL, VPDPP_CRC_CTRL, post_fix),                                  \
405         SFRB(VPDPP_CRC_MASK, VPDPP_CRC_CTRL, post_fix)
406 
407 #define DPP_FIELD_LIST_VPE10(post_fix)                                                             \
408     DPP_FIELD_LIST_VPE10_COMMON(post_fix),                                                         \
409         SFRB(ALPHA_2BIT_LUT0, VPCNVC_ALPHA_2BIT_LUT, post_fix),                                    \
410         SFRB(ALPHA_2BIT_LUT1, VPCNVC_ALPHA_2BIT_LUT, post_fix),                                    \
411         SFRB(ALPHA_2BIT_LUT2, VPCNVC_ALPHA_2BIT_LUT, post_fix),                                    \
412         SFRB(ALPHA_2BIT_LUT3, VPCNVC_ALPHA_2BIT_LUT, post_fix),                                    \
413         SFRB(VPCM_GAMUT_REMAP_MODE, VPCM_GAMUT_REMAP_CONTROL, post_fix),                           \
414         SFRB(VPCM_GAMUT_REMAP_MODE_CURRENT, VPCM_GAMUT_REMAP_CONTROL, post_fix),                   \
415         SFRB(VPCM_GAMUT_REMAP_C11, VPCM_GAMUT_REMAP_C11_C12, post_fix),                            \
416         SFRB(VPCM_GAMUT_REMAP_C12, VPCM_GAMUT_REMAP_C11_C12, post_fix),                            \
417         SFRB(VPCM_GAMUT_REMAP_C13, VPCM_GAMUT_REMAP_C13_C14, post_fix),                            \
418         SFRB(VPCM_GAMUT_REMAP_C14, VPCM_GAMUT_REMAP_C13_C14, post_fix),                            \
419         SFRB(VPCM_GAMUT_REMAP_C21, VPCM_GAMUT_REMAP_C21_C22, post_fix),                            \
420         SFRB(VPCM_GAMUT_REMAP_C22, VPCM_GAMUT_REMAP_C21_C22, post_fix),                            \
421         SFRB(VPCM_GAMUT_REMAP_C23, VPCM_GAMUT_REMAP_C23_C24, post_fix),                            \
422         SFRB(VPCM_GAMUT_REMAP_C24, VPCM_GAMUT_REMAP_C23_C24, post_fix),                            \
423         SFRB(VPCM_GAMUT_REMAP_C31, VPCM_GAMUT_REMAP_C31_C32, post_fix),                            \
424         SFRB(VPCM_GAMUT_REMAP_C32, VPCM_GAMUT_REMAP_C31_C32, post_fix),                            \
425         SFRB(VPCM_GAMUT_REMAP_C33, VPCM_GAMUT_REMAP_C33_C34, post_fix),                            \
426         SFRB(VPCM_GAMUT_REMAP_C34, VPCM_GAMUT_REMAP_C33_C34, post_fix),                            \
427         SFRB(VPCM_GAMUT_REMAP_COEF_FORMAT, VPCM_COEF_FORMAT, post_fix)
428 
429 #define DPP_REG_VARIABLE_LIST_VPE10_COMMON                                                         \
430     reg_id_val VPCNVC_SURFACE_PIXEL_FORMAT;                                                        \
431     reg_id_val VPCNVC_FORMAT_CONTROL;                                                              \
432     reg_id_val VPCNVC_FCNV_FP_BIAS_R;                                                              \
433     reg_id_val VPCNVC_FCNV_FP_BIAS_G;                                                              \
434     reg_id_val VPCNVC_FCNV_FP_BIAS_B;                                                              \
435     reg_id_val VPCNVC_FCNV_FP_SCALE_R;                                                             \
436     reg_id_val VPCNVC_FCNV_FP_SCALE_G;                                                             \
437     reg_id_val VPCNVC_FCNV_FP_SCALE_B;                                                             \
438     reg_id_val VPCNVC_COLOR_KEYER_CONTROL;                                                         \
439     reg_id_val VPCNVC_COLOR_KEYER_ALPHA;                                                           \
440     reg_id_val VPCNVC_COLOR_KEYER_RED;                                                             \
441     reg_id_val VPCNVC_COLOR_KEYER_GREEN;                                                           \
442     reg_id_val VPCNVC_COLOR_KEYER_BLUE;                                                            \
443     reg_id_val VPCNVC_PRE_DEALPHA;                                                                 \
444     reg_id_val VPCNVC_PRE_CSC_MODE;                                                                \
445     reg_id_val VPCNVC_PRE_CSC_C11_C12;                                                             \
446     reg_id_val VPCNVC_PRE_CSC_C13_C14;                                                             \
447     reg_id_val VPCNVC_PRE_CSC_C21_C22;                                                             \
448     reg_id_val VPCNVC_PRE_CSC_C23_C24;                                                             \
449     reg_id_val VPCNVC_PRE_CSC_C31_C32;                                                             \
450     reg_id_val VPCNVC_PRE_CSC_C33_C34;                                                             \
451     reg_id_val VPCNVC_COEF_FORMAT;                                                                 \
452     reg_id_val VPCNVC_PRE_DEGAM;                                                                   \
453     reg_id_val VPCNVC_PRE_REALPHA;                                                                 \
454     reg_id_val VPDSCL_COEF_RAM_TAP_SELECT;                                                         \
455     reg_id_val VPDSCL_COEF_RAM_TAP_DATA;                                                           \
456     reg_id_val VPDSCL_MODE;                                                                        \
457     reg_id_val VPDSCL_TAP_CONTROL;                                                                 \
458     reg_id_val VPDSCL_CONTROL;                                                                     \
459     reg_id_val VPDSCL_2TAP_CONTROL;                                                                \
460     reg_id_val VPDSCL_MANUAL_REPLICATE_CONTROL;                                                    \
461     reg_id_val VPDSCL_HORZ_FILTER_SCALE_RATIO;                                                     \
462     reg_id_val VPDSCL_HORZ_FILTER_INIT;                                                            \
463     reg_id_val VPDSCL_HORZ_FILTER_SCALE_RATIO_C;                                                   \
464     reg_id_val VPDSCL_HORZ_FILTER_INIT_C;                                                          \
465     reg_id_val VPDSCL_VERT_FILTER_SCALE_RATIO;                                                     \
466     reg_id_val VPDSCL_VERT_FILTER_INIT;                                                            \
467     reg_id_val VPDSCL_VERT_FILTER_SCALE_RATIO_C;                                                   \
468     reg_id_val VPDSCL_VERT_FILTER_INIT_C;                                                          \
469     reg_id_val VPDSCL_BLACK_COLOR;                                                                 \
470     reg_id_val VPDSCL_UPDATE;                                                                      \
471     reg_id_val VPDSCL_AUTOCAL;                                                                     \
472     reg_id_val VPDSCL_EXT_OVERSCAN_LEFT_RIGHT;                                                     \
473     reg_id_val VPDSCL_EXT_OVERSCAN_TOP_BOTTOM;                                                     \
474     reg_id_val VPOTG_H_BLANK;                                                                      \
475     reg_id_val VPOTG_V_BLANK;                                                                      \
476     reg_id_val VPDSCL_RECOUT_START;                                                                \
477     reg_id_val VPDSCL_RECOUT_SIZE;                                                                 \
478     reg_id_val VPMPC_SIZE;                                                                         \
479     reg_id_val VPLB_DATA_FORMAT;                                                                   \
480     reg_id_val VPLB_MEMORY_CTRL;                                                                   \
481     reg_id_val VPLB_V_COUNTER;                                                                     \
482     reg_id_val VPDSCL_MEM_PWR_CTRL;                                                                \
483     reg_id_val VPDSCL_MEM_PWR_STATUS;                                                              \
484     reg_id_val VPCM_CONTROL;                                                                       \
485     reg_id_val VPCM_POST_CSC_CONTROL;                                                              \
486     reg_id_val VPCM_POST_CSC_C11_C12;                                                              \
487     reg_id_val VPCM_POST_CSC_C13_C14;                                                              \
488     reg_id_val VPCM_POST_CSC_C21_C22;                                                              \
489     reg_id_val VPCM_POST_CSC_C23_C24;                                                              \
490     reg_id_val VPCM_POST_CSC_C31_C32;                                                              \
491     reg_id_val VPCM_POST_CSC_C33_C34;                                                              \
492     reg_id_val VPCM_BIAS_CR_R;                                                                     \
493     reg_id_val VPCM_BIAS_Y_G_CB_B;                                                                 \
494     reg_id_val VPCM_GAMCOR_CONTROL;                                                                \
495     reg_id_val VPCM_GAMCOR_LUT_INDEX;                                                              \
496     reg_id_val VPCM_GAMCOR_LUT_DATA;                                                               \
497     reg_id_val VPCM_GAMCOR_LUT_CONTROL;                                                            \
498     reg_id_val VPCM_GAMCOR_RAMA_START_CNTL_B;                                                      \
499     reg_id_val VPCM_GAMCOR_RAMA_START_CNTL_G;                                                      \
500     reg_id_val VPCM_GAMCOR_RAMA_START_CNTL_R;                                                      \
501     reg_id_val VPCM_GAMCOR_RAMA_START_SLOPE_CNTL_B;                                                \
502     reg_id_val VPCM_GAMCOR_RAMA_START_SLOPE_CNTL_G;                                                \
503     reg_id_val VPCM_GAMCOR_RAMA_START_SLOPE_CNTL_R;                                                \
504     reg_id_val VPCM_GAMCOR_RAMA_START_BASE_CNTL_B;                                                 \
505     reg_id_val VPCM_GAMCOR_RAMA_START_BASE_CNTL_G;                                                 \
506     reg_id_val VPCM_GAMCOR_RAMA_START_BASE_CNTL_R;                                                 \
507     reg_id_val VPCM_GAMCOR_RAMA_END_CNTL1_B;                                                       \
508     reg_id_val VPCM_GAMCOR_RAMA_END_CNTL2_B;                                                       \
509     reg_id_val VPCM_GAMCOR_RAMA_END_CNTL1_G;                                                       \
510     reg_id_val VPCM_GAMCOR_RAMA_END_CNTL2_G;                                                       \
511     reg_id_val VPCM_GAMCOR_RAMA_END_CNTL1_R;                                                       \
512     reg_id_val VPCM_GAMCOR_RAMA_END_CNTL2_R;                                                       \
513     reg_id_val VPCM_GAMCOR_RAMA_OFFSET_B;                                                          \
514     reg_id_val VPCM_GAMCOR_RAMA_OFFSET_G;                                                          \
515     reg_id_val VPCM_GAMCOR_RAMA_OFFSET_R;                                                          \
516     reg_id_val VPCM_GAMCOR_RAMA_REGION_0_1;                                                        \
517     reg_id_val VPCM_GAMCOR_RAMA_REGION_2_3;                                                        \
518     reg_id_val VPCM_GAMCOR_RAMA_REGION_4_5;                                                        \
519     reg_id_val VPCM_GAMCOR_RAMA_REGION_6_7;                                                        \
520     reg_id_val VPCM_GAMCOR_RAMA_REGION_8_9;                                                        \
521     reg_id_val VPCM_GAMCOR_RAMA_REGION_10_11;                                                      \
522     reg_id_val VPCM_GAMCOR_RAMA_REGION_12_13;                                                      \
523     reg_id_val VPCM_GAMCOR_RAMA_REGION_14_15;                                                      \
524     reg_id_val VPCM_GAMCOR_RAMA_REGION_16_17;                                                      \
525     reg_id_val VPCM_GAMCOR_RAMA_REGION_18_19;                                                      \
526     reg_id_val VPCM_GAMCOR_RAMA_REGION_20_21;                                                      \
527     reg_id_val VPCM_GAMCOR_RAMA_REGION_22_23;                                                      \
528     reg_id_val VPCM_GAMCOR_RAMA_REGION_24_25;                                                      \
529     reg_id_val VPCM_GAMCOR_RAMA_REGION_26_27;                                                      \
530     reg_id_val VPCM_GAMCOR_RAMA_REGION_28_29;                                                      \
531     reg_id_val VPCM_GAMCOR_RAMA_REGION_30_31;                                                      \
532     reg_id_val VPCM_GAMCOR_RAMA_REGION_32_33;                                                      \
533     reg_id_val VPCM_HDR_MULT_COEF;                                                                 \
534     reg_id_val VPCM_MEM_PWR_CTRL;                                                                  \
535     reg_id_val VPCM_MEM_PWR_STATUS;                                                                \
536     reg_id_val VPCM_DEALPHA;                                                                       \
537     reg_id_val VPCM_COEF_FORMAT;                                                                   \
538     reg_id_val VPDPP_CONTROL;                                                                      \
539     reg_id_val VPDPP_CRC_CTRL;
540 
541 #define DPP_REG_VARIABLE_LIST_VPE10                                                                \
542     DPP_REG_VARIABLE_LIST_VPE10_COMMON                                                             \
543     reg_id_val VPCNVC_ALPHA_2BIT_LUT;                                                              \
544     reg_id_val VPCM_GAMUT_REMAP_CONTROL;                                                           \
545     reg_id_val VPCM_GAMUT_REMAP_C11_C12;                                                           \
546     reg_id_val VPCM_GAMUT_REMAP_C13_C14;                                                           \
547     reg_id_val VPCM_GAMUT_REMAP_C21_C22;                                                           \
548     reg_id_val VPCM_GAMUT_REMAP_C23_C24;                                                           \
549     reg_id_val VPCM_GAMUT_REMAP_C31_C32;                                                           \
550     reg_id_val VPCM_GAMUT_REMAP_C33_C34;
551 
552 #define DPP_FIELD_VARIABLE_LIST_VPE10(type)                                                        \
553     type VPCNVC_SURFACE_PIXEL_FORMAT;                                                              \
554     type FORMAT_EXPANSION_MODE;                                                                    \
555     type FORMAT_CNV16;                                                                             \
556     type FORMAT_CONTROL__ALPHA_EN;                                                                 \
557     type VPCNVC_BYPASS;                                                                            \
558     type VPCNVC_BYPASS_MSB_ALIGN;                                                                  \
559     type CLAMP_POSITIVE;                                                                           \
560     type CLAMP_POSITIVE_C;                                                                         \
561     type VPCNVC_UPDATE_PENDING;                                                                    \
562     type FCNV_FP_BIAS_R;                                                                           \
563     type FCNV_FP_BIAS_G;                                                                           \
564     type FCNV_FP_BIAS_B;                                                                           \
565     type FCNV_FP_SCALE_R;                                                                          \
566     type FCNV_FP_SCALE_G;                                                                          \
567     type FCNV_FP_SCALE_B;                                                                          \
568     type COLOR_KEYER_EN;                                                                           \
569     type COLOR_KEYER_MODE;                                                                         \
570     type COLOR_KEYER_ALPHA_LOW;                                                                    \
571     type COLOR_KEYER_ALPHA_HIGH;                                                                   \
572     type COLOR_KEYER_RED_LOW;                                                                      \
573     type COLOR_KEYER_RED_HIGH;                                                                     \
574     type COLOR_KEYER_GREEN_LOW;                                                                    \
575     type COLOR_KEYER_GREEN_HIGH;                                                                   \
576     type COLOR_KEYER_BLUE_LOW;                                                                     \
577     type COLOR_KEYER_BLUE_HIGH;                                                                    \
578     type ALPHA_2BIT_LUT0;                                                                          \
579     type ALPHA_2BIT_LUT1;                                                                          \
580     type ALPHA_2BIT_LUT2;                                                                          \
581     type ALPHA_2BIT_LUT3;                                                                          \
582     type PRE_DEALPHA_EN;                                                                           \
583     type PRE_DEALPHA_ABLND_EN;                                                                     \
584     type PRE_CSC_MODE;                                                                             \
585     type PRE_CSC_MODE_CURRENT;                                                                     \
586     type PRE_CSC_C11;                                                                              \
587     type PRE_CSC_C12;                                                                              \
588     type PRE_CSC_C13;                                                                              \
589     type PRE_CSC_C14;                                                                              \
590     type PRE_CSC_C21;                                                                              \
591     type PRE_CSC_C22;                                                                              \
592     type PRE_CSC_C23;                                                                              \
593     type PRE_CSC_C24;                                                                              \
594     type PRE_CSC_C31;                                                                              \
595     type PRE_CSC_C32;                                                                              \
596     type PRE_CSC_C33;                                                                              \
597     type PRE_CSC_C34;                                                                              \
598     type PRE_CSC_COEF_FORMAT;                                                                      \
599     type PRE_DEGAM_MODE;                                                                           \
600     type PRE_DEGAM_SELECT;                                                                         \
601     type PRE_REALPHA_EN;                                                                           \
602     type PRE_REALPHA_ABLND_EN;                                                                     \
603     type SCL_COEF_RAM_TAP_PAIR_IDX;                                                                \
604     type SCL_COEF_RAM_PHASE;                                                                       \
605     type SCL_COEF_RAM_FILTER_TYPE;                                                                 \
606     type SCL_COEF_RAM_EVEN_TAP_COEF;                                                               \
607     type SCL_COEF_RAM_EVEN_TAP_COEF_EN;                                                            \
608     type SCL_COEF_RAM_ODD_TAP_COEF;                                                                \
609     type SCL_COEF_RAM_ODD_TAP_COEF_EN;                                                             \
610     type VPDSCL_MODE;                                                                              \
611     type SCL_COEF_RAM_SELECT_CURRENT;                                                              \
612     type SCL_CHROMA_COEF_MODE;                                                                     \
613     type SCL_ALPHA_COEF_MODE;                                                                      \
614     type SCL_COEF_RAM_SELECT_RD;                                                                   \
615     type SCL_V_NUM_TAPS;                                                                           \
616     type SCL_H_NUM_TAPS;                                                                           \
617     type SCL_V_NUM_TAPS_C;                                                                         \
618     type SCL_H_NUM_TAPS_C;                                                                         \
619     type SCL_BOUNDARY_MODE;                                                                        \
620     type SCL_H_2TAP_HARDCODE_COEF_EN;                                                              \
621     type SCL_H_2TAP_SHARP_EN;                                                                      \
622     type SCL_H_2TAP_SHARP_FACTOR;                                                                  \
623     type SCL_V_2TAP_HARDCODE_COEF_EN;                                                              \
624     type SCL_V_2TAP_SHARP_EN;                                                                      \
625     type SCL_V_2TAP_SHARP_FACTOR;                                                                  \
626     type SCL_V_MANUAL_REPLICATE_FACTOR;                                                            \
627     type SCL_H_MANUAL_REPLICATE_FACTOR;                                                            \
628     type SCL_H_SCALE_RATIO;                                                                        \
629     type SCL_H_INIT_FRAC;                                                                          \
630     type SCL_H_INIT_INT;                                                                           \
631     type SCL_H_SCALE_RATIO_C;                                                                      \
632     type SCL_H_INIT_FRAC_C;                                                                        \
633     type SCL_H_INIT_INT_C;                                                                         \
634     type SCL_V_SCALE_RATIO;                                                                        \
635     type SCL_V_INIT_FRAC;                                                                          \
636     type SCL_V_INIT_INT;                                                                           \
637     type SCL_V_SCALE_RATIO_C;                                                                      \
638     type SCL_V_INIT_FRAC_C;                                                                        \
639     type SCL_V_INIT_INT_C;                                                                         \
640     type SCL_BLACK_COLOR_RGB_Y;                                                                    \
641     type SCL_BLACK_COLOR_CBCR;                                                                     \
642     type SCL_UPDATE_PENDING;                                                                       \
643     type AUTOCAL_MODE;                                                                             \
644     type EXT_OVERSCAN_RIGHT;                                                                       \
645     type EXT_OVERSCAN_LEFT;                                                                        \
646     type EXT_OVERSCAN_BOTTOM;                                                                      \
647     type EXT_OVERSCAN_TOP;                                                                         \
648     type OTG_H_BLANK_START;                                                                        \
649     type OTG_H_BLANK_END;                                                                          \
650     type OTG_V_BLANK_START;                                                                        \
651     type OTG_V_BLANK_END;                                                                          \
652     type RECOUT_START_X;                                                                           \
653     type RECOUT_START_Y;                                                                           \
654     type RECOUT_WIDTH;                                                                             \
655     type RECOUT_HEIGHT;                                                                            \
656     type VPMPC_WIDTH;                                                                              \
657     type VPMPC_HEIGHT;                                                                             \
658     type ALPHA_EN;                                                                                 \
659     type MEMORY_CONFIG;                                                                            \
660     type LB_MAX_PARTITIONS;                                                                        \
661     type LB_NUM_PARTITIONS;                                                                        \
662     type LB_NUM_PARTITIONS_C;                                                                      \
663     type V_COUNTER;                                                                                \
664     type V_COUNTER_C;                                                                              \
665     type LUT_MEM_PWR_FORCE;                                                                        \
666     type LUT_MEM_PWR_DIS;                                                                          \
667     type LB_G1_MEM_PWR_FORCE;                                                                      \
668     type LB_G1_MEM_PWR_DIS;                                                                        \
669     type LB_G2_MEM_PWR_FORCE;                                                                      \
670     type LB_G2_MEM_PWR_DIS;                                                                        \
671     type LB_MEM_PWR_MODE;                                                                          \
672     type LUT_MEM_PWR_STATE;                                                                        \
673     type LB_G1_MEM_PWR_STATE;                                                                      \
674     type LB_G2_MEM_PWR_STATE;                                                                      \
675     type VPCM_BYPASS;                                                                              \
676     type VPCM_UPDATE_PENDING;                                                                      \
677     type VPCM_POST_CSC_MODE;                                                                       \
678     type VPCM_POST_CSC_MODE_CURRENT;                                                               \
679     type VPCM_POST_CSC_C11;                                                                        \
680     type VPCM_POST_CSC_C12;                                                                        \
681     type VPCM_POST_CSC_C13;                                                                        \
682     type VPCM_POST_CSC_C14;                                                                        \
683     type VPCM_POST_CSC_C21;                                                                        \
684     type VPCM_POST_CSC_C22;                                                                        \
685     type VPCM_POST_CSC_C23;                                                                        \
686     type VPCM_POST_CSC_C24;                                                                        \
687     type VPCM_POST_CSC_C31;                                                                        \
688     type VPCM_POST_CSC_C32;                                                                        \
689     type VPCM_POST_CSC_C33;                                                                        \
690     type VPCM_POST_CSC_C34;                                                                        \
691     type VPCM_GAMUT_REMAP_MODE;                                                                    \
692     type VPCM_GAMUT_REMAP_MODE_CURRENT;                                                            \
693     type VPCM_GAMUT_REMAP_C11;                                                                     \
694     type VPCM_GAMUT_REMAP_C12;                                                                     \
695     type VPCM_GAMUT_REMAP_C13;                                                                     \
696     type VPCM_GAMUT_REMAP_C14;                                                                     \
697     type VPCM_GAMUT_REMAP_C21;                                                                     \
698     type VPCM_GAMUT_REMAP_C22;                                                                     \
699     type VPCM_GAMUT_REMAP_C23;                                                                     \
700     type VPCM_GAMUT_REMAP_C24;                                                                     \
701     type VPCM_GAMUT_REMAP_C31;                                                                     \
702     type VPCM_GAMUT_REMAP_C32;                                                                     \
703     type VPCM_GAMUT_REMAP_C33;                                                                     \
704     type VPCM_GAMUT_REMAP_C34;                                                                     \
705     type VPCM_BIAS_CR_R;                                                                           \
706     type VPCM_BIAS_Y_G;                                                                            \
707     type VPCM_BIAS_CB_B;                                                                           \
708     type VPCM_GAMCOR_MODE;                                                                         \
709     type VPCM_GAMCOR_PWL_DISABLE;                                                                  \
710     type VPCM_GAMCOR_MODE_CURRENT;                                                                 \
711     type VPCM_GAMCOR_SELECT_CURRENT;                                                               \
712     type VPCM_GAMCOR_LUT_INDEX;                                                                    \
713     type VPCM_GAMCOR_LUT_DATA;                                                                     \
714     type VPCM_GAMCOR_LUT_WRITE_COLOR_MASK;                                                         \
715     type VPCM_GAMCOR_LUT_READ_COLOR_SEL;                                                           \
716     type VPCM_GAMCOR_LUT_READ_DBG;                                                                 \
717     type VPCM_GAMCOR_LUT_HOST_SEL;                                                                 \
718     type VPCM_GAMCOR_LUT_CONFIG_MODE;                                                              \
719     type VPCM_GAMCOR_RAMA_EXP_REGION_START_B;                                                      \
720     type VPCM_GAMCOR_RAMA_EXP_REGION_START_SEGMENT_B;                                              \
721     type VPCM_GAMCOR_RAMA_EXP_REGION_START_G;                                                      \
722     type VPCM_GAMCOR_RAMA_EXP_REGION_START_SEGMENT_G;                                              \
723     type VPCM_GAMCOR_RAMA_EXP_REGION_START_R;                                                      \
724     type VPCM_GAMCOR_RAMA_EXP_REGION_START_SEGMENT_R;                                              \
725     type VPCM_GAMCOR_RAMA_EXP_REGION_START_SLOPE_B;                                                \
726     type VPCM_GAMCOR_RAMA_EXP_REGION_START_SLOPE_G;                                                \
727     type VPCM_GAMCOR_RAMA_EXP_REGION_START_SLOPE_R;                                                \
728     type VPCM_GAMCOR_RAMA_EXP_REGION_START_BASE_B;                                                 \
729     type VPCM_GAMCOR_RAMA_EXP_REGION_START_BASE_G;                                                 \
730     type VPCM_GAMCOR_RAMA_EXP_REGION_START_BASE_R;                                                 \
731     type VPCM_GAMCOR_RAMA_EXP_REGION_END_BASE_B;                                                   \
732     type VPCM_GAMCOR_RAMA_EXP_REGION_END_B;                                                        \
733     type VPCM_GAMCOR_RAMA_EXP_REGION_END_SLOPE_B;                                                  \
734     type VPCM_GAMCOR_RAMA_EXP_REGION_END_BASE_G;                                                   \
735     type VPCM_GAMCOR_RAMA_EXP_REGION_END_G;                                                        \
736     type VPCM_GAMCOR_RAMA_EXP_REGION_END_SLOPE_G;                                                  \
737     type VPCM_GAMCOR_RAMA_EXP_REGION_END_BASE_R;                                                   \
738     type VPCM_GAMCOR_RAMA_EXP_REGION_END_R;                                                        \
739     type VPCM_GAMCOR_RAMA_EXP_REGION_END_SLOPE_R;                                                  \
740     type VPCM_GAMCOR_RAMA_OFFSET_B;                                                                \
741     type VPCM_GAMCOR_RAMA_OFFSET_G;                                                                \
742     type VPCM_GAMCOR_RAMA_OFFSET_R;                                                                \
743     type VPCM_GAMCOR_RAMA_EXP_REGION0_LUT_OFFSET;                                                  \
744     type VPCM_GAMCOR_RAMA_EXP_REGION0_NUM_SEGMENTS;                                                \
745     type VPCM_GAMCOR_RAMA_EXP_REGION1_LUT_OFFSET;                                                  \
746     type VPCM_GAMCOR_RAMA_EXP_REGION1_NUM_SEGMENTS;                                                \
747     type VPCM_GAMCOR_RAMA_EXP_REGION2_LUT_OFFSET;                                                  \
748     type VPCM_GAMCOR_RAMA_EXP_REGION2_NUM_SEGMENTS;                                                \
749     type VPCM_GAMCOR_RAMA_EXP_REGION3_LUT_OFFSET;                                                  \
750     type VPCM_GAMCOR_RAMA_EXP_REGION3_NUM_SEGMENTS;                                                \
751     type VPCM_GAMCOR_RAMA_EXP_REGION4_LUT_OFFSET;                                                  \
752     type VPCM_GAMCOR_RAMA_EXP_REGION4_NUM_SEGMENTS;                                                \
753     type VPCM_GAMCOR_RAMA_EXP_REGION5_LUT_OFFSET;                                                  \
754     type VPCM_GAMCOR_RAMA_EXP_REGION5_NUM_SEGMENTS;                                                \
755     type VPCM_GAMCOR_RAMA_EXP_REGION6_LUT_OFFSET;                                                  \
756     type VPCM_GAMCOR_RAMA_EXP_REGION6_NUM_SEGMENTS;                                                \
757     type VPCM_GAMCOR_RAMA_EXP_REGION7_LUT_OFFSET;                                                  \
758     type VPCM_GAMCOR_RAMA_EXP_REGION7_NUM_SEGMENTS;                                                \
759     type VPCM_GAMCOR_RAMA_EXP_REGION8_LUT_OFFSET;                                                  \
760     type VPCM_GAMCOR_RAMA_EXP_REGION8_NUM_SEGMENTS;                                                \
761     type VPCM_GAMCOR_RAMA_EXP_REGION9_LUT_OFFSET;                                                  \
762     type VPCM_GAMCOR_RAMA_EXP_REGION9_NUM_SEGMENTS;                                                \
763     type VPCM_GAMCOR_RAMA_EXP_REGION10_LUT_OFFSET;                                                 \
764     type VPCM_GAMCOR_RAMA_EXP_REGION10_NUM_SEGMENTS;                                               \
765     type VPCM_GAMCOR_RAMA_EXP_REGION11_LUT_OFFSET;                                                 \
766     type VPCM_GAMCOR_RAMA_EXP_REGION11_NUM_SEGMENTS;                                               \
767     type VPCM_GAMCOR_RAMA_EXP_REGION12_LUT_OFFSET;                                                 \
768     type VPCM_GAMCOR_RAMA_EXP_REGION12_NUM_SEGMENTS;                                               \
769     type VPCM_GAMCOR_RAMA_EXP_REGION13_LUT_OFFSET;                                                 \
770     type VPCM_GAMCOR_RAMA_EXP_REGION13_NUM_SEGMENTS;                                               \
771     type VPCM_GAMCOR_RAMA_EXP_REGION14_LUT_OFFSET;                                                 \
772     type VPCM_GAMCOR_RAMA_EXP_REGION14_NUM_SEGMENTS;                                               \
773     type VPCM_GAMCOR_RAMA_EXP_REGION15_LUT_OFFSET;                                                 \
774     type VPCM_GAMCOR_RAMA_EXP_REGION15_NUM_SEGMENTS;                                               \
775     type VPCM_GAMCOR_RAMA_EXP_REGION16_LUT_OFFSET;                                                 \
776     type VPCM_GAMCOR_RAMA_EXP_REGION16_NUM_SEGMENTS;                                               \
777     type VPCM_GAMCOR_RAMA_EXP_REGION17_LUT_OFFSET;                                                 \
778     type VPCM_GAMCOR_RAMA_EXP_REGION17_NUM_SEGMENTS;                                               \
779     type VPCM_GAMCOR_RAMA_EXP_REGION18_LUT_OFFSET;                                                 \
780     type VPCM_GAMCOR_RAMA_EXP_REGION18_NUM_SEGMENTS;                                               \
781     type VPCM_GAMCOR_RAMA_EXP_REGION19_LUT_OFFSET;                                                 \
782     type VPCM_GAMCOR_RAMA_EXP_REGION19_NUM_SEGMENTS;                                               \
783     type VPCM_GAMCOR_RAMA_EXP_REGION20_LUT_OFFSET;                                                 \
784     type VPCM_GAMCOR_RAMA_EXP_REGION20_NUM_SEGMENTS;                                               \
785     type VPCM_GAMCOR_RAMA_EXP_REGION21_LUT_OFFSET;                                                 \
786     type VPCM_GAMCOR_RAMA_EXP_REGION21_NUM_SEGMENTS;                                               \
787     type VPCM_GAMCOR_RAMA_EXP_REGION22_LUT_OFFSET;                                                 \
788     type VPCM_GAMCOR_RAMA_EXP_REGION22_NUM_SEGMENTS;                                               \
789     type VPCM_GAMCOR_RAMA_EXP_REGION23_LUT_OFFSET;                                                 \
790     type VPCM_GAMCOR_RAMA_EXP_REGION23_NUM_SEGMENTS;                                               \
791     type VPCM_GAMCOR_RAMA_EXP_REGION24_LUT_OFFSET;                                                 \
792     type VPCM_GAMCOR_RAMA_EXP_REGION24_NUM_SEGMENTS;                                               \
793     type VPCM_GAMCOR_RAMA_EXP_REGION25_LUT_OFFSET;                                                 \
794     type VPCM_GAMCOR_RAMA_EXP_REGION25_NUM_SEGMENTS;                                               \
795     type VPCM_GAMCOR_RAMA_EXP_REGION26_LUT_OFFSET;                                                 \
796     type VPCM_GAMCOR_RAMA_EXP_REGION26_NUM_SEGMENTS;                                               \
797     type VPCM_GAMCOR_RAMA_EXP_REGION27_LUT_OFFSET;                                                 \
798     type VPCM_GAMCOR_RAMA_EXP_REGION27_NUM_SEGMENTS;                                               \
799     type VPCM_GAMCOR_RAMA_EXP_REGION28_LUT_OFFSET;                                                 \
800     type VPCM_GAMCOR_RAMA_EXP_REGION28_NUM_SEGMENTS;                                               \
801     type VPCM_GAMCOR_RAMA_EXP_REGION29_LUT_OFFSET;                                                 \
802     type VPCM_GAMCOR_RAMA_EXP_REGION29_NUM_SEGMENTS;                                               \
803     type VPCM_GAMCOR_RAMA_EXP_REGION30_LUT_OFFSET;                                                 \
804     type VPCM_GAMCOR_RAMA_EXP_REGION30_NUM_SEGMENTS;                                               \
805     type VPCM_GAMCOR_RAMA_EXP_REGION31_LUT_OFFSET;                                                 \
806     type VPCM_GAMCOR_RAMA_EXP_REGION31_NUM_SEGMENTS;                                               \
807     type VPCM_GAMCOR_RAMA_EXP_REGION32_LUT_OFFSET;                                                 \
808     type VPCM_GAMCOR_RAMA_EXP_REGION32_NUM_SEGMENTS;                                               \
809     type VPCM_GAMCOR_RAMA_EXP_REGION33_LUT_OFFSET;                                                 \
810     type VPCM_GAMCOR_RAMA_EXP_REGION33_NUM_SEGMENTS;                                               \
811     type VPCM_HDR_MULT_COEF;                                                                       \
812     type GAMCOR_MEM_PWR_FORCE;                                                                     \
813     type GAMCOR_MEM_PWR_DIS;                                                                       \
814     type GAMCOR_MEM_PWR_STATE;                                                                     \
815     type VPCM_DEALPHA_EN;                                                                          \
816     type VPCM_DEALPHA_ABLND;                                                                       \
817     type VPCM_BIAS_FORMAT;                                                                         \
818     type VPCM_POST_CSC_COEF_FORMAT;                                                                \
819     type VPCM_GAMUT_REMAP_COEF_FORMAT;                                                             \
820     type VPDPP_CLOCK_ENABLE;                                                                       \
821     type VPECLK_G_GATE_DISABLE;                                                                    \
822     type VPECLK_G_DYN_GATE_DISABLE;                                                                \
823     type VPECLK_G_VPDSCL_GATE_DISABLE;                                                             \
824     type VPECLK_R_GATE_DISABLE;                                                                    \
825     type DISPCLK_R_GATE_DISABLE;                                                                   \
826     type DISPCLK_G_GATE_DISABLE;                                                                   \
827     type VPDPP_FGCG_REP_DIS;                                                                       \
828     type VPDPP_TEST_CLK_SEL;                                                                       \
829     type VPDPP_CRC_EN;                                                                             \
830     type VPDPP_CRC_CONT_EN;                                                                        \
831     type VPDPP_CRC_420_COMP_SEL;                                                                   \
832     type VPDPP_CRC_SRC_SEL;                                                                        \
833     type VPDPP_CRC_PIX_FORMAT_SEL;                                                                 \
834     type VPDPP_CRC_MASK;
835 
836 #define IDENTITY_RATIO(ratio) (vpe_fixpt_u3d19(ratio) == (1 << 19))
837 
838 struct vpe10_dpp_registers {
839     DPP_REG_VARIABLE_LIST_VPE10
840 };
841 
842 struct vpe10_dpp_shift {
843     DPP_FIELD_VARIABLE_LIST_VPE10(uint8_t)
844 };
845 
846 struct vpe10_dpp_mask {
847     DPP_FIELD_VARIABLE_LIST_VPE10(uint32_t)
848 };
849 
850 struct vpe10_dpp {
851     struct dpp                    base; // base class, must be the 1st field
852     struct vpe10_dpp_registers   *regs;
853     const struct vpe10_dpp_shift *shift;
854     const struct vpe10_dpp_mask  *mask;
855 };
856 
857 void vpe10_construct_dpp(struct vpe_priv *vpe_priv, struct dpp *dpp);
858 
859 bool vpe10_dpp_get_optimal_number_of_taps(
860     struct vpe_rect *src_rect, struct vpe_rect *dst_rect, struct vpe_scaling_taps *taps);
861 
862 void vpe10_dscl_calc_lb_num_partitions(const struct scaler_data *scl_data,
863     enum lb_memory_config lb_config, uint32_t *num_part_y, uint32_t *num_part_c);
864 
865 /***** share register programming *****/
866 void vpe10_dpp_program_cnv(
867     struct dpp *dpp, enum vpe_surface_pixel_format format, enum vpe_expansion_mode mode);
868 
869 void vpe10_dpp_cnv_program_pre_dgam(struct dpp *dpp, enum color_transfer_func tr);
870 
871 void vpe10_dpp_program_cnv_bias_scale(struct dpp *dpp, struct bias_and_scale *bias_and_scale);
872 
873 void vpe10_dpp_cnv_program_alpha_keyer(struct dpp *dpp, struct cnv_color_keyer_params *color_keyer);
874 
875 void vpe10_dpp_program_input_transfer_func(struct dpp *dpp, struct transfer_func *input_tf);
876 
877 void vpe10_dpp_program_gamut_remap(struct dpp *dpp, struct colorspace_transform *gamut_remap);
878 
879 /*program post scaler scs block in dpp CM*/
880 void vpe10_dpp_program_post_csc(struct dpp *dpp, enum color_space color_space,
881     enum input_csc_select input_select, struct vpe_csc_matrix *input_cs);
882 
883 void vpe10_dpp_set_hdr_multiplier(struct dpp *dpp, uint32_t multiplier);
884 
885 /*Program Scaler*/
886 void vpe10_dpp_set_segment_scaler(struct dpp *dpp, const struct scaler_data *scl_data);
887 
888 void vpe10_dpp_set_frame_scaler(struct dpp *dpp, const struct scaler_data *scl_data);
889 
890 uint32_t vpe10_get_line_buffer_size(void);
891 
892 bool vpe10_dpp_validate_number_of_taps(struct dpp *dpp, struct scaler_data *scl_data);
893 
894 void vpe10_dpp_program_crc(struct dpp *dpp, bool enable);
895 #ifdef __cplusplus
896 }
897 #endif
898