xref: /rockchip-linux_mpp/mpp/hal/rkenc/h265e/hal_h265e_vepu511_reg.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1*437bfbebSnyanmisaka /* SPDX-License-Identifier: Apache-2.0 */
2*437bfbebSnyanmisaka /*
3*437bfbebSnyanmisaka  * Copyright (c) 2025 Rockchip Electronics Co., Ltd.
4*437bfbebSnyanmisaka  */
5*437bfbebSnyanmisaka 
6*437bfbebSnyanmisaka #ifndef __HAL_H265E_VEPU511_REG_H__
7*437bfbebSnyanmisaka #define __HAL_H265E_VEPU511_REG_H__
8*437bfbebSnyanmisaka 
9*437bfbebSnyanmisaka #include "rk_type.h"
10*437bfbebSnyanmisaka #include "vepu511_common.h"
11*437bfbebSnyanmisaka 
12*437bfbebSnyanmisaka typedef struct PreCstPar_t {
13*437bfbebSnyanmisaka     /* 0x00002120 reg2120 - 0x00002140 reg2128 */
14*437bfbebSnyanmisaka     struct {
15*437bfbebSnyanmisaka         RK_U32 madi_thd0    : 7;
16*437bfbebSnyanmisaka         RK_U32 reserved     : 1;
17*437bfbebSnyanmisaka         RK_U32 madi_thd1    : 7;
18*437bfbebSnyanmisaka         RK_U32 reserved1    : 1;
19*437bfbebSnyanmisaka         RK_U32 madi_thd2    : 7;
20*437bfbebSnyanmisaka         RK_U32 reserved2    : 1;
21*437bfbebSnyanmisaka         RK_U32 madi_thd3    : 7;
22*437bfbebSnyanmisaka         RK_U32 reserved3    : 1;
23*437bfbebSnyanmisaka     } cst_madi_thd0;
24*437bfbebSnyanmisaka 
25*437bfbebSnyanmisaka     /* 0x00002124 reg2121 */
26*437bfbebSnyanmisaka     struct {
27*437bfbebSnyanmisaka         RK_U32 madi_thd4    : 7;
28*437bfbebSnyanmisaka         RK_U32 reserved     : 1;
29*437bfbebSnyanmisaka         RK_U32 madi_thd5    : 7;
30*437bfbebSnyanmisaka         RK_U32 reserved1    : 1;
31*437bfbebSnyanmisaka         RK_U32 madi_thd6    : 7;
32*437bfbebSnyanmisaka         RK_U32 reserved2    : 1;
33*437bfbebSnyanmisaka         RK_U32 madi_thd7    : 7;
34*437bfbebSnyanmisaka         RK_U32 reserved3    : 1;
35*437bfbebSnyanmisaka     } cst_madi_thd1;
36*437bfbebSnyanmisaka 
37*437bfbebSnyanmisaka     /* 0x00002128 reg2122 */
38*437bfbebSnyanmisaka     struct {
39*437bfbebSnyanmisaka         RK_U32 madi_thd8    : 7;
40*437bfbebSnyanmisaka         RK_U32 reserved     : 1;
41*437bfbebSnyanmisaka         RK_U32 madi_thd9    : 7;
42*437bfbebSnyanmisaka         RK_U32 reserved1    : 1;
43*437bfbebSnyanmisaka         RK_U32 madi_thd10   : 7;
44*437bfbebSnyanmisaka         RK_U32 reserved2    : 1;
45*437bfbebSnyanmisaka         RK_U32 madi_thd11   : 7;
46*437bfbebSnyanmisaka         RK_U32 reserved3    : 1;
47*437bfbebSnyanmisaka     } cst_madi_thd2;
48*437bfbebSnyanmisaka 
49*437bfbebSnyanmisaka     /* 0x0000212c reg2123 */
50*437bfbebSnyanmisaka     struct {
51*437bfbebSnyanmisaka         RK_U32 madi_thd12   : 7;
52*437bfbebSnyanmisaka         RK_U32 reserved     : 1;
53*437bfbebSnyanmisaka         RK_U32 madi_thd13   : 7;
54*437bfbebSnyanmisaka         RK_U32 reserved1    : 1;
55*437bfbebSnyanmisaka         RK_U32 mode_th      : 3;
56*437bfbebSnyanmisaka         RK_U32 reserved2    : 1;
57*437bfbebSnyanmisaka         RK_U32 qp_thd       : 6;
58*437bfbebSnyanmisaka         RK_U32 reserved3    : 6;
59*437bfbebSnyanmisaka     } cst_madi_thd3;
60*437bfbebSnyanmisaka 
61*437bfbebSnyanmisaka     /* 0x00002130 reg2124 */
62*437bfbebSnyanmisaka     struct {
63*437bfbebSnyanmisaka         RK_U32 wgt0    : 8;
64*437bfbebSnyanmisaka         RK_U32 wgt1    : 8;
65*437bfbebSnyanmisaka         RK_U32 wgt2    : 8;
66*437bfbebSnyanmisaka         RK_U32 wgt3    : 8;
67*437bfbebSnyanmisaka     } cst_wgt0;
68*437bfbebSnyanmisaka 
69*437bfbebSnyanmisaka     /* 0x00002134 reg2125 */
70*437bfbebSnyanmisaka     struct {
71*437bfbebSnyanmisaka         RK_U32 wgt4    : 8;
72*437bfbebSnyanmisaka         RK_U32 wgt5    : 8;
73*437bfbebSnyanmisaka         RK_U32 wgt6    : 8;
74*437bfbebSnyanmisaka         RK_U32 wgt7    : 8;
75*437bfbebSnyanmisaka     } cst_wgt1;
76*437bfbebSnyanmisaka 
77*437bfbebSnyanmisaka     /* 0x00002138 reg2126 */
78*437bfbebSnyanmisaka     struct {
79*437bfbebSnyanmisaka         RK_U32 wgt8     : 8;
80*437bfbebSnyanmisaka         RK_U32 wgt9     : 8;
81*437bfbebSnyanmisaka         RK_U32 wgt10    : 8;
82*437bfbebSnyanmisaka         RK_U32 wgt11    : 8;
83*437bfbebSnyanmisaka     } cst_wgt2;
84*437bfbebSnyanmisaka 
85*437bfbebSnyanmisaka     /* 0x0000213c reg2127 */
86*437bfbebSnyanmisaka     struct {
87*437bfbebSnyanmisaka         RK_U32 wgt12            : 8;
88*437bfbebSnyanmisaka         RK_U32 wgt13            : 8;
89*437bfbebSnyanmisaka         RK_U32 wgt14            : 8;
90*437bfbebSnyanmisaka         RK_U32 lambda_mv_bit_0  : 3;
91*437bfbebSnyanmisaka         RK_U32 reserved         : 1;
92*437bfbebSnyanmisaka         RK_U32 lambda_mv_bit_1  : 3;
93*437bfbebSnyanmisaka         RK_U32 anti_strp_e      : 1;
94*437bfbebSnyanmisaka     } cst_wgt3;
95*437bfbebSnyanmisaka } pre_cst_par;
96*437bfbebSnyanmisaka 
97*437bfbebSnyanmisaka /* class: buffer/video syntax */
98*437bfbebSnyanmisaka /* 0x00000270 reg156 - 0x00000538 reg334 */
99*437bfbebSnyanmisaka typedef struct H265eVepu511Frame_t {
100*437bfbebSnyanmisaka     /* 0x00000270 reg156  - 0x0000039c reg231 */
101*437bfbebSnyanmisaka     Vepu511FrmCommon common;
102*437bfbebSnyanmisaka 
103*437bfbebSnyanmisaka     /* 0x000003a0 reg232 */
104*437bfbebSnyanmisaka     struct {
105*437bfbebSnyanmisaka         RK_U32 ltm_col                     : 1;
106*437bfbebSnyanmisaka         RK_U32 ltm_idx0l0                  : 1;
107*437bfbebSnyanmisaka         RK_U32 chrm_spcl                   : 1;
108*437bfbebSnyanmisaka         RK_U32 cu_inter_e                  : 12;
109*437bfbebSnyanmisaka         RK_U32 reserved                    : 1;
110*437bfbebSnyanmisaka         RK_U32 cu32_split_lambda_qp_sel    : 3;
111*437bfbebSnyanmisaka         RK_U32 reserved1                   : 4;
112*437bfbebSnyanmisaka         RK_U32 ccwa_e                      : 1;
113*437bfbebSnyanmisaka         RK_U32 scl_lst_sel                 : 2;
114*437bfbebSnyanmisaka         RK_U32 reserved2                   : 2;
115*437bfbebSnyanmisaka         RK_U32 atf_e                       : 1;
116*437bfbebSnyanmisaka         RK_U32 atr_e                       : 1;
117*437bfbebSnyanmisaka         RK_U32 reserved3                   : 2;
118*437bfbebSnyanmisaka     } rdo_cfg;
119*437bfbebSnyanmisaka 
120*437bfbebSnyanmisaka     struct {
121*437bfbebSnyanmisaka         RK_U32 intra_pu32_mode_num    : 2;
122*437bfbebSnyanmisaka         RK_U32 intra_pu16_mode_num    : 2;
123*437bfbebSnyanmisaka         RK_U32 intra_pu8_mode_num     : 2;
124*437bfbebSnyanmisaka         RK_U32 intra_pu4_mode_num     : 2;
125*437bfbebSnyanmisaka         RK_U32 reserved               : 24;
126*437bfbebSnyanmisaka     } rdo_intra_mode;
127*437bfbebSnyanmisaka 
128*437bfbebSnyanmisaka     /* 0x000003a8 reg234 */
129*437bfbebSnyanmisaka     struct {
130*437bfbebSnyanmisaka         RK_U32 rdoqx_pixel_e        : 1;
131*437bfbebSnyanmisaka         RK_U32 rdoqx_cgzero_e       : 1;
132*437bfbebSnyanmisaka         RK_U32 rdoqx_lastxy_e       : 1;
133*437bfbebSnyanmisaka         RK_U32 rdoq4_rdoq_e         : 1;
134*437bfbebSnyanmisaka         RK_U32 reserved             : 4;
135*437bfbebSnyanmisaka         RK_U32 rdoq_intra_r_coef    : 5;
136*437bfbebSnyanmisaka         RK_U32 reserved1            : 19;
137*437bfbebSnyanmisaka     } rdoq_cfg_hevc;
138*437bfbebSnyanmisaka 
139*437bfbebSnyanmisaka     /* 0x3ac */
140*437bfbebSnyanmisaka     RK_U32 reserved_235;
141*437bfbebSnyanmisaka 
142*437bfbebSnyanmisaka     /* 0x000003b0 reg236 */
143*437bfbebSnyanmisaka     struct {
144*437bfbebSnyanmisaka         RK_U32 nal_unit_type    : 6;
145*437bfbebSnyanmisaka         RK_U32 reserved         : 26;
146*437bfbebSnyanmisaka     } synt_nal;
147*437bfbebSnyanmisaka 
148*437bfbebSnyanmisaka     /* 0x000003b4 reg237 */
149*437bfbebSnyanmisaka     struct {
150*437bfbebSnyanmisaka         RK_U32 smpl_adpt_ofst_e    : 1;
151*437bfbebSnyanmisaka         RK_U32 num_st_ref_pic      : 7;
152*437bfbebSnyanmisaka         RK_U32 lt_ref_pic_prsnt    : 1;
153*437bfbebSnyanmisaka         RK_U32 num_lt_ref_pic      : 6;
154*437bfbebSnyanmisaka         RK_U32 tmpl_mvp_e          : 1;
155*437bfbebSnyanmisaka         RK_U32 log2_max_poc_lsb    : 4;
156*437bfbebSnyanmisaka         RK_U32 strg_intra_smth     : 1;
157*437bfbebSnyanmisaka         RK_U32 reserved            : 11;
158*437bfbebSnyanmisaka     } synt_sps;
159*437bfbebSnyanmisaka 
160*437bfbebSnyanmisaka     /* 0x000003b8 reg238 */
161*437bfbebSnyanmisaka     struct {
162*437bfbebSnyanmisaka         RK_U32 dpdnt_sli_seg_en       : 1;
163*437bfbebSnyanmisaka         RK_U32 out_flg_prsnt_flg      : 1;
164*437bfbebSnyanmisaka         RK_U32 num_extr_sli_hdr       : 3;
165*437bfbebSnyanmisaka         RK_U32 sgn_dat_hid_en         : 1;
166*437bfbebSnyanmisaka         RK_U32 cbc_init_prsnt_flg     : 1;
167*437bfbebSnyanmisaka         RK_U32 pic_init_qp            : 6;
168*437bfbebSnyanmisaka         RK_U32 cu_qp_dlt_en           : 1;
169*437bfbebSnyanmisaka         RK_U32 chrm_qp_ofst_prsn      : 1;
170*437bfbebSnyanmisaka         RK_U32 lp_fltr_acrs_sli       : 1;
171*437bfbebSnyanmisaka         RK_U32 dblk_fltr_ovrd_en      : 1;
172*437bfbebSnyanmisaka         RK_U32 lst_mdfy_prsnt_flg     : 1;
173*437bfbebSnyanmisaka         RK_U32 sli_seg_hdr_extn       : 1;
174*437bfbebSnyanmisaka         RK_U32 cu_qp_dlt_depth        : 2;
175*437bfbebSnyanmisaka         RK_U32 lpf_fltr_acrs_til      : 1;
176*437bfbebSnyanmisaka         RK_U32 csip_flag              : 1;
177*437bfbebSnyanmisaka         RK_U32 reserved               : 9;
178*437bfbebSnyanmisaka     } synt_pps;
179*437bfbebSnyanmisaka 
180*437bfbebSnyanmisaka     /* 0x000003bc reg239 */
181*437bfbebSnyanmisaka     struct {
182*437bfbebSnyanmisaka         RK_U32 cbc_init_flg           : 1;
183*437bfbebSnyanmisaka         RK_U32 mvd_l1_zero_flg        : 1;
184*437bfbebSnyanmisaka         RK_U32 mrg_up_flg             : 1;
185*437bfbebSnyanmisaka         RK_U32 mrg_lft_flg            : 1;
186*437bfbebSnyanmisaka         RK_U32 reserved               : 1;
187*437bfbebSnyanmisaka         RK_U32 ref_pic_lst_mdf_l0     : 1;
188*437bfbebSnyanmisaka         RK_U32 num_refidx_l1_act      : 2;
189*437bfbebSnyanmisaka         RK_U32 num_refidx_l0_act      : 2;
190*437bfbebSnyanmisaka         RK_U32 num_refidx_act_ovrd    : 1;
191*437bfbebSnyanmisaka         RK_U32 sli_sao_chrm_flg       : 1;
192*437bfbebSnyanmisaka         RK_U32 sli_sao_luma_flg       : 1;
193*437bfbebSnyanmisaka         RK_U32 sli_tmprl_mvp_e        : 1;
194*437bfbebSnyanmisaka         RK_U32 pic_out_flg            : 1;
195*437bfbebSnyanmisaka         RK_U32 sli_type               : 2;
196*437bfbebSnyanmisaka         RK_U32 sli_rsrv_flg           : 7;
197*437bfbebSnyanmisaka         RK_U32 dpdnt_sli_seg_flg      : 1;
198*437bfbebSnyanmisaka         RK_U32 sli_pps_id             : 6;
199*437bfbebSnyanmisaka         RK_U32 no_out_pri_pic         : 1;
200*437bfbebSnyanmisaka     } synt_sli0;
201*437bfbebSnyanmisaka 
202*437bfbebSnyanmisaka     /* 0x000003c0 reg240 */
203*437bfbebSnyanmisaka     struct {
204*437bfbebSnyanmisaka         RK_U32 sp_tc_ofst_div2         : 4;
205*437bfbebSnyanmisaka         RK_U32 sp_beta_ofst_div2       : 4;
206*437bfbebSnyanmisaka         RK_U32 sli_lp_fltr_acrs_sli    : 1;
207*437bfbebSnyanmisaka         RK_U32 sp_dblk_fltr_dis        : 1;
208*437bfbebSnyanmisaka         RK_U32 dblk_fltr_ovrd_flg      : 1;
209*437bfbebSnyanmisaka         RK_U32 sli_cb_qp_ofst          : 5;
210*437bfbebSnyanmisaka         RK_U32 sli_qp                  : 6;
211*437bfbebSnyanmisaka         RK_U32 max_mrg_cnd             : 2;
212*437bfbebSnyanmisaka         RK_U32 reserved                : 1;
213*437bfbebSnyanmisaka         RK_U32 col_ref_idx             : 1;
214*437bfbebSnyanmisaka         RK_U32 col_frm_l0_flg          : 1;
215*437bfbebSnyanmisaka         RK_U32 lst_entry_l0            : 4;
216*437bfbebSnyanmisaka         RK_U32 reserved1               : 1;
217*437bfbebSnyanmisaka     } synt_sli1;
218*437bfbebSnyanmisaka 
219*437bfbebSnyanmisaka     /* 0x000003c4 reg241 */
220*437bfbebSnyanmisaka     struct {
221*437bfbebSnyanmisaka         RK_U32 sli_poc_lsb        : 16;
222*437bfbebSnyanmisaka         RK_U32 sli_hdr_ext_len    : 9;
223*437bfbebSnyanmisaka         RK_U32 reserved           : 7;
224*437bfbebSnyanmisaka     } synt_sli2;
225*437bfbebSnyanmisaka 
226*437bfbebSnyanmisaka     /* 0x000003c8 reg242 */
227*437bfbebSnyanmisaka     struct {
228*437bfbebSnyanmisaka         RK_U32 st_ref_pic_flg    : 1;
229*437bfbebSnyanmisaka         RK_U32 poc_lsb_lt0       : 16;
230*437bfbebSnyanmisaka         RK_U32 lt_idx_sps        : 5;
231*437bfbebSnyanmisaka         RK_U32 num_lt_pic        : 2;
232*437bfbebSnyanmisaka         RK_U32 st_ref_pic_idx    : 6;
233*437bfbebSnyanmisaka         RK_U32 num_lt_sps        : 2;
234*437bfbebSnyanmisaka     } synt_refm0;
235*437bfbebSnyanmisaka 
236*437bfbebSnyanmisaka     /* 0x000003cc reg243 */
237*437bfbebSnyanmisaka     struct {
238*437bfbebSnyanmisaka         RK_U32 used_by_s0_flg        : 4;
239*437bfbebSnyanmisaka         RK_U32 num_pos_pic           : 1;
240*437bfbebSnyanmisaka         RK_U32 num_negative_pics     : 5;
241*437bfbebSnyanmisaka         RK_U32 dlt_poc_msb_cycl0     : 16;
242*437bfbebSnyanmisaka         RK_U32 dlt_poc_msb_prsnt0    : 1;
243*437bfbebSnyanmisaka         RK_U32 dlt_poc_msb_prsnt1    : 1;
244*437bfbebSnyanmisaka         RK_U32 dlt_poc_msb_prsnt2    : 1;
245*437bfbebSnyanmisaka         RK_U32 used_by_lt_flg0       : 1;
246*437bfbebSnyanmisaka         RK_U32 used_by_lt_flg1       : 1;
247*437bfbebSnyanmisaka         RK_U32 used_by_lt_flg2       : 1;
248*437bfbebSnyanmisaka     } synt_refm1;
249*437bfbebSnyanmisaka 
250*437bfbebSnyanmisaka     /* 0x000003d0 reg244 */
251*437bfbebSnyanmisaka     struct {
252*437bfbebSnyanmisaka         RK_U32 dlt_poc_s0_m10    : 16;
253*437bfbebSnyanmisaka         RK_U32 dlt_poc_s0_m11    : 16;
254*437bfbebSnyanmisaka     } synt_refm2;
255*437bfbebSnyanmisaka 
256*437bfbebSnyanmisaka     /* 0x000003d4 reg245 */
257*437bfbebSnyanmisaka     struct {
258*437bfbebSnyanmisaka         RK_U32 dlt_poc_s0_m12    : 16;
259*437bfbebSnyanmisaka         RK_U32 dlt_poc_s0_m13    : 16;
260*437bfbebSnyanmisaka     } synt_refm3;
261*437bfbebSnyanmisaka 
262*437bfbebSnyanmisaka     /* 0x000003d8 reg246 */
263*437bfbebSnyanmisaka     struct {
264*437bfbebSnyanmisaka         RK_U32 poc_lsb_lt1    : 16;
265*437bfbebSnyanmisaka         RK_U32 poc_lsb_lt2    : 16;
266*437bfbebSnyanmisaka     } synt_long_refm0;
267*437bfbebSnyanmisaka 
268*437bfbebSnyanmisaka     /* 0x000003dc reg247 */
269*437bfbebSnyanmisaka     struct {
270*437bfbebSnyanmisaka         RK_U32 dlt_poc_msb_cycl1    : 16;
271*437bfbebSnyanmisaka         RK_U32 dlt_poc_msb_cycl2    : 16;
272*437bfbebSnyanmisaka     } synt_long_refm1;
273*437bfbebSnyanmisaka 
274*437bfbebSnyanmisaka     /* 0x000003e0 reg248 */
275*437bfbebSnyanmisaka     struct {
276*437bfbebSnyanmisaka         RK_U32 sao_lambda_multi    : 3;
277*437bfbebSnyanmisaka         RK_U32 reserved            : 29;
278*437bfbebSnyanmisaka     } sao_cfg;
279*437bfbebSnyanmisaka 
280*437bfbebSnyanmisaka     /* 0x3e4 - 0x3ec */
281*437bfbebSnyanmisaka     RK_U32 reserved249_251[3];
282*437bfbebSnyanmisaka 
283*437bfbebSnyanmisaka     /* 0x000003f0 reg252 */
284*437bfbebSnyanmisaka     struct {
285*437bfbebSnyanmisaka         RK_U32 tile_w_m1    : 9;
286*437bfbebSnyanmisaka         RK_U32 reserved     : 7;
287*437bfbebSnyanmisaka         RK_U32 tile_h_m1    : 9;
288*437bfbebSnyanmisaka         RK_U32 reserved1    : 6;
289*437bfbebSnyanmisaka         RK_U32 tile_en      : 1;
290*437bfbebSnyanmisaka     } tile_cfg;
291*437bfbebSnyanmisaka 
292*437bfbebSnyanmisaka     /* 0x000003f4 reg253 */
293*437bfbebSnyanmisaka     struct {
294*437bfbebSnyanmisaka         RK_U32 tile_x       : 9;
295*437bfbebSnyanmisaka         RK_U32 reserved     : 7;
296*437bfbebSnyanmisaka         RK_U32 tile_y       : 9;
297*437bfbebSnyanmisaka         RK_U32 reserved1    : 7;
298*437bfbebSnyanmisaka     } tile_pos_hevc;
299*437bfbebSnyanmisaka 
300*437bfbebSnyanmisaka     /* 0x000003f8 reg254 */
301*437bfbebSnyanmisaka     struct {
302*437bfbebSnyanmisaka         RK_U32 slice_sta_x      : 9;
303*437bfbebSnyanmisaka         RK_U32 reserved1        : 7;
304*437bfbebSnyanmisaka         RK_U32 slice_sta_y      : 10;
305*437bfbebSnyanmisaka         RK_U32 reserved2        : 5;
306*437bfbebSnyanmisaka         RK_U32 slice_enc_ena    : 1;
307*437bfbebSnyanmisaka     } slice_enc_cfg0;
308*437bfbebSnyanmisaka 
309*437bfbebSnyanmisaka     /* 0x000003fc reg255 */
310*437bfbebSnyanmisaka     struct {
311*437bfbebSnyanmisaka         RK_U32 slice_end_x    : 9;
312*437bfbebSnyanmisaka         RK_U32 reserved       : 7;
313*437bfbebSnyanmisaka         RK_U32 slice_end_y    : 10;
314*437bfbebSnyanmisaka         RK_U32 reserved1      : 6;
315*437bfbebSnyanmisaka     } slice_enc_cfg1;
316*437bfbebSnyanmisaka 
317*437bfbebSnyanmisaka     /* 0x00000400 reg256 */
318*437bfbebSnyanmisaka     struct {
319*437bfbebSnyanmisaka         RK_U32 reserved          : 8;
320*437bfbebSnyanmisaka         RK_U32 bsbt_addr_jpeg    : 24;
321*437bfbebSnyanmisaka     } adr_bsbt_jpeg;
322*437bfbebSnyanmisaka 
323*437bfbebSnyanmisaka     /* 0x00000404 reg257 */
324*437bfbebSnyanmisaka     struct {
325*437bfbebSnyanmisaka         RK_U32 reserved          : 8;
326*437bfbebSnyanmisaka         RK_U32 bsbb_addr_jpeg    : 24;
327*437bfbebSnyanmisaka     } adr_bsbb_jpeg;
328*437bfbebSnyanmisaka 
329*437bfbebSnyanmisaka     /* 0x00000408 reg258 */
330*437bfbebSnyanmisaka     RK_U32 adr_bsbs_jpeg;
331*437bfbebSnyanmisaka 
332*437bfbebSnyanmisaka     /* 0x0000040c reg259 */
333*437bfbebSnyanmisaka     struct {
334*437bfbebSnyanmisaka         RK_U32 bsadr_msk_jpeg    : 4;
335*437bfbebSnyanmisaka         RK_U32 reserved          : 4;
336*437bfbebSnyanmisaka         RK_U32 bsbr_addr_jpeg    : 24;
337*437bfbebSnyanmisaka     } adr_bsbr_jpeg;
338*437bfbebSnyanmisaka 
339*437bfbebSnyanmisaka     /* 0x00000410 reg260 */
340*437bfbebSnyanmisaka     struct {
341*437bfbebSnyanmisaka         RK_U32 reserved          : 4;
342*437bfbebSnyanmisaka         RK_U32 adr_vsy_b_jpeg    : 28;
343*437bfbebSnyanmisaka     } adr_vsy_b_jpeg;
344*437bfbebSnyanmisaka 
345*437bfbebSnyanmisaka     /* 0x00000414 reg261 */
346*437bfbebSnyanmisaka     struct {
347*437bfbebSnyanmisaka         RK_U32 reserved          : 4;
348*437bfbebSnyanmisaka         RK_U32 adr_vsc_b_jpeg    : 28;
349*437bfbebSnyanmisaka     } adr_vsc_b_jpeg;
350*437bfbebSnyanmisaka 
351*437bfbebSnyanmisaka     /* 0x00000418 reg262 */
352*437bfbebSnyanmisaka     struct {
353*437bfbebSnyanmisaka         RK_U32 reserved          : 4;
354*437bfbebSnyanmisaka         RK_U32 adr_vsy_t_jpeg    : 28;
355*437bfbebSnyanmisaka     } adr_vsy_t_jpeg;
356*437bfbebSnyanmisaka 
357*437bfbebSnyanmisaka     /* 0x0000041c reg263 */
358*437bfbebSnyanmisaka     struct {
359*437bfbebSnyanmisaka         RK_U32 reserved          : 4;
360*437bfbebSnyanmisaka         RK_U32 adr_vsc_t_jpeg    : 28;
361*437bfbebSnyanmisaka     } adr_vsc_t_jpeg;
362*437bfbebSnyanmisaka 
363*437bfbebSnyanmisaka     /* 0x00000420 reg264 */
364*437bfbebSnyanmisaka     RK_U32 adr_src0_jpeg;
365*437bfbebSnyanmisaka 
366*437bfbebSnyanmisaka     /* 0x00000424 reg265 */
367*437bfbebSnyanmisaka     RK_U32 adr_src1_jpeg;
368*437bfbebSnyanmisaka 
369*437bfbebSnyanmisaka     /* 0x00000428 reg266 */
370*437bfbebSnyanmisaka     RK_U32 adr_src2_jpeg;
371*437bfbebSnyanmisaka 
372*437bfbebSnyanmisaka     /* 0x0000042c reg267 */
373*437bfbebSnyanmisaka     RK_U32 bsp_size_jpeg;
374*437bfbebSnyanmisaka 
375*437bfbebSnyanmisaka     /* 0x430 - 0x43c */
376*437bfbebSnyanmisaka     RK_U32 reserved268_271[4];
377*437bfbebSnyanmisaka 
378*437bfbebSnyanmisaka     /* 0x00000440 reg272 */
379*437bfbebSnyanmisaka     struct {
380*437bfbebSnyanmisaka         RK_U32 pic_wd8_m1    : 11;
381*437bfbebSnyanmisaka         RK_U32 reserved      : 1;
382*437bfbebSnyanmisaka         RK_U32 pp0_vnum_m1   : 4;
383*437bfbebSnyanmisaka         RK_U32 pic_hd8_m1    : 11;
384*437bfbebSnyanmisaka         RK_U32 reserved1     : 1;
385*437bfbebSnyanmisaka         RK_U32 pp0_jnum_m1   : 4;
386*437bfbebSnyanmisaka     } enc_rsl_jpeg;
387*437bfbebSnyanmisaka 
388*437bfbebSnyanmisaka     /* 0x00000444 reg273 */
389*437bfbebSnyanmisaka     struct {
390*437bfbebSnyanmisaka         RK_U32 pic_wfill_jpeg    : 6;
391*437bfbebSnyanmisaka         RK_U32 reserved          : 10;
392*437bfbebSnyanmisaka         RK_U32 pic_hfill_jpeg    : 6;
393*437bfbebSnyanmisaka         RK_U32 reserved1         : 10;
394*437bfbebSnyanmisaka     } src_fill_jpeg;
395*437bfbebSnyanmisaka 
396*437bfbebSnyanmisaka     /* 0x00000448 reg274 */
397*437bfbebSnyanmisaka     struct {
398*437bfbebSnyanmisaka         RK_U32 alpha_swap_jpeg            : 1;
399*437bfbebSnyanmisaka         RK_U32 rbuv_swap_jpeg             : 1;
400*437bfbebSnyanmisaka         RK_U32 src_cfmt_jpeg              : 4;
401*437bfbebSnyanmisaka         RK_U32 reserved                   : 2;
402*437bfbebSnyanmisaka         RK_U32 src_range_trns_en_jpeg     : 1;
403*437bfbebSnyanmisaka         RK_U32 src_range_trns_sel_jpeg    : 1;
404*437bfbebSnyanmisaka         RK_U32 chroma_ds_mode_jpeg        : 1;
405*437bfbebSnyanmisaka         RK_U32 reserved1                  : 21;
406*437bfbebSnyanmisaka     } src_fmt_jpeg;
407*437bfbebSnyanmisaka 
408*437bfbebSnyanmisaka     /* 0x0000044c reg275 */
409*437bfbebSnyanmisaka     struct {
410*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2y_jpeg    : 9;
411*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2y_jpeg    : 9;
412*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2y_jpeg    : 9;
413*437bfbebSnyanmisaka         RK_U32 reserved            : 5;
414*437bfbebSnyanmisaka     } src_udfy_jpeg;
415*437bfbebSnyanmisaka 
416*437bfbebSnyanmisaka     /* 0x00000450 reg276 */
417*437bfbebSnyanmisaka     struct {
418*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2u_jpeg    : 9;
419*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2u_jpeg    : 9;
420*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2u_jpeg    : 9;
421*437bfbebSnyanmisaka         RK_U32 reserved            : 5;
422*437bfbebSnyanmisaka     } src_udfu_jpeg;
423*437bfbebSnyanmisaka 
424*437bfbebSnyanmisaka     /* 0x00000454 reg277 */
425*437bfbebSnyanmisaka     struct {
426*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2v_jpeg    : 9;
427*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2v_jpeg    : 9;
428*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2v_jpeg    : 9;
429*437bfbebSnyanmisaka         RK_U32 reserved            : 5;
430*437bfbebSnyanmisaka     } src_udfv_jpeg;
431*437bfbebSnyanmisaka 
432*437bfbebSnyanmisaka     /* 0x00000458 reg278 */
433*437bfbebSnyanmisaka     struct {
434*437bfbebSnyanmisaka         RK_U32 csc_ofst_v_jpeg    : 8;
435*437bfbebSnyanmisaka         RK_U32 csc_ofst_u_jpeg    : 8;
436*437bfbebSnyanmisaka         RK_U32 csc_ofst_y_jpeg    : 5;
437*437bfbebSnyanmisaka         RK_U32 reserved           : 11;
438*437bfbebSnyanmisaka     } src_udfo_jpeg;
439*437bfbebSnyanmisaka 
440*437bfbebSnyanmisaka     /* 0x0000045c reg279 */
441*437bfbebSnyanmisaka     struct {
442*437bfbebSnyanmisaka         RK_U32 cr_force_value_jpeg     : 8;
443*437bfbebSnyanmisaka         RK_U32 cb_force_value_jpeg     : 8;
444*437bfbebSnyanmisaka         RK_U32 chroma_force_en_jpeg    : 1;
445*437bfbebSnyanmisaka         RK_U32 reserved                : 9;
446*437bfbebSnyanmisaka         RK_U32 src_mirr_jpeg           : 1;
447*437bfbebSnyanmisaka         RK_U32 src_rot_jpeg            : 2;
448*437bfbebSnyanmisaka         RK_U32 reserved1               : 1;
449*437bfbebSnyanmisaka         RK_U32 rkfbcd_en_jpeg          : 1;
450*437bfbebSnyanmisaka         RK_U32 reserved2               : 1;
451*437bfbebSnyanmisaka     } src_proc_jpeg;
452*437bfbebSnyanmisaka 
453*437bfbebSnyanmisaka     /* 0x00000460 reg280 */
454*437bfbebSnyanmisaka     struct {
455*437bfbebSnyanmisaka         RK_U32 pic_ofst_x_jpeg    : 14;
456*437bfbebSnyanmisaka         RK_U32 reserved           : 2;
457*437bfbebSnyanmisaka         RK_U32 pic_ofst_y_jpeg    : 14;
458*437bfbebSnyanmisaka         RK_U32 reserved1          : 2;
459*437bfbebSnyanmisaka     } pic_ofst_jpeg;
460*437bfbebSnyanmisaka 
461*437bfbebSnyanmisaka     /* 0x00000464 reg281 */
462*437bfbebSnyanmisaka     struct {
463*437bfbebSnyanmisaka         RK_U32 src_strd0_jpeg    : 21;
464*437bfbebSnyanmisaka         RK_U32 reserved          : 11;
465*437bfbebSnyanmisaka     } src_strd0_jpeg;
466*437bfbebSnyanmisaka 
467*437bfbebSnyanmisaka     /* 0x00000468 reg282 */
468*437bfbebSnyanmisaka     struct {
469*437bfbebSnyanmisaka         RK_U32 src_strd1_jpeg    : 16;
470*437bfbebSnyanmisaka         RK_U32 reserved          : 16;
471*437bfbebSnyanmisaka     } src_strd1_jpeg;
472*437bfbebSnyanmisaka 
473*437bfbebSnyanmisaka     /* 0x0000046c reg283 */
474*437bfbebSnyanmisaka     struct {
475*437bfbebSnyanmisaka         RK_U32 pp_corner_filter_strength_jpeg      : 2;
476*437bfbebSnyanmisaka         RK_U32 reserved                            : 2;
477*437bfbebSnyanmisaka         RK_U32 pp_edge_filter_strength_jpeg        : 2;
478*437bfbebSnyanmisaka         RK_U32 reserved1                           : 2;
479*437bfbebSnyanmisaka         RK_U32 pp_internal_filter_strength_jpeg    : 2;
480*437bfbebSnyanmisaka         RK_U32 reserved2                           : 22;
481*437bfbebSnyanmisaka     } src_flt_cfg_jpeg;
482*437bfbebSnyanmisaka 
483*437bfbebSnyanmisaka     /* 0x00000470 reg284 */
484*437bfbebSnyanmisaka     struct {
485*437bfbebSnyanmisaka         RK_U32 jpeg_bias_y    : 15;
486*437bfbebSnyanmisaka         RK_U32 reserved       : 17;
487*437bfbebSnyanmisaka     } jpeg_y_cfg;
488*437bfbebSnyanmisaka 
489*437bfbebSnyanmisaka     /* 0x00000474 reg285 */
490*437bfbebSnyanmisaka     struct {
491*437bfbebSnyanmisaka         RK_U32 jpeg_bias_u    : 15;
492*437bfbebSnyanmisaka         RK_U32 reserved       : 17;
493*437bfbebSnyanmisaka     } jpeg_u_cfg;
494*437bfbebSnyanmisaka 
495*437bfbebSnyanmisaka     /* 0x00000478 reg286 */
496*437bfbebSnyanmisaka     struct {
497*437bfbebSnyanmisaka         RK_U32 jpeg_bias_v    : 15;
498*437bfbebSnyanmisaka         RK_U32 reserved       : 17;
499*437bfbebSnyanmisaka     } jpeg_v_cfg;
500*437bfbebSnyanmisaka 
501*437bfbebSnyanmisaka     /* 0x0000047c reg287 */
502*437bfbebSnyanmisaka     struct {
503*437bfbebSnyanmisaka         RK_U32 jpeg_ri              : 25;
504*437bfbebSnyanmisaka         RK_U32 jpeg_out_mode        : 1;
505*437bfbebSnyanmisaka         RK_U32 jpeg_start_rst_m     : 3;
506*437bfbebSnyanmisaka         RK_U32 jpeg_pic_last_ecs    : 1;
507*437bfbebSnyanmisaka         RK_U32 reserved             : 1;
508*437bfbebSnyanmisaka         RK_U32 jpeg_stnd            : 1;
509*437bfbebSnyanmisaka     } jpeg_base_cfg;
510*437bfbebSnyanmisaka 
511*437bfbebSnyanmisaka     /* 0x00000480 reg288 */
512*437bfbebSnyanmisaka     struct {
513*437bfbebSnyanmisaka         RK_U32 uvc_partition0_len_jpeg    : 12;
514*437bfbebSnyanmisaka         RK_U32 uvc_partition_len_jpeg     : 12;
515*437bfbebSnyanmisaka         RK_U32 uvc_skip_len_jpeg          : 6;
516*437bfbebSnyanmisaka         RK_U32 reserved                   : 2;
517*437bfbebSnyanmisaka     } uvc_cfg_jpeg;
518*437bfbebSnyanmisaka 
519*437bfbebSnyanmisaka     /* 0x00000484 reg289 */
520*437bfbebSnyanmisaka     struct {
521*437bfbebSnyanmisaka         RK_U32 reserved          : 4;
522*437bfbebSnyanmisaka         RK_U32 eslf_badr_jpeg    : 28;
523*437bfbebSnyanmisaka     } adr_eslf_jpeg;
524*437bfbebSnyanmisaka 
525*437bfbebSnyanmisaka     /* 0x00000488 reg290 */
526*437bfbebSnyanmisaka     struct {
527*437bfbebSnyanmisaka         RK_U32 eslf_rptr_jpeg    : 10;
528*437bfbebSnyanmisaka         RK_U32 eslf_wptr_jpeg    : 10;
529*437bfbebSnyanmisaka         RK_U32 eslf_blen_jpeg    : 10;
530*437bfbebSnyanmisaka         RK_U32 eslf_updt_jpeg    : 2;
531*437bfbebSnyanmisaka     } eslf_buf_jpeg;
532*437bfbebSnyanmisaka 
533*437bfbebSnyanmisaka     /* 0x48c */
534*437bfbebSnyanmisaka     RK_U32 reserved_291;
535*437bfbebSnyanmisaka 
536*437bfbebSnyanmisaka     /* 0x00000490 reg292 */
537*437bfbebSnyanmisaka     struct {
538*437bfbebSnyanmisaka         RK_U32 roi0_rdoq_start_x    : 11;
539*437bfbebSnyanmisaka         RK_U32 roi0_rdoq_start_y    : 11;
540*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
541*437bfbebSnyanmisaka         RK_U32 roi0_rdoq_level      : 6;
542*437bfbebSnyanmisaka         RK_U32 roi0_rdoq_en         : 1;
543*437bfbebSnyanmisaka     } jpeg_roi0_cfg0;
544*437bfbebSnyanmisaka 
545*437bfbebSnyanmisaka     /* 0x00000494 reg293 */
546*437bfbebSnyanmisaka     struct {
547*437bfbebSnyanmisaka         RK_U32 roi0_rdoq_width_m1     : 11;
548*437bfbebSnyanmisaka         RK_U32 roi0_rdoq_height_m1    : 11;
549*437bfbebSnyanmisaka         RK_U32 reserved               : 3;
550*437bfbebSnyanmisaka         RK_U32 frm_rdoq_level         : 6;
551*437bfbebSnyanmisaka         RK_U32 frm_rdoq_en            : 1;
552*437bfbebSnyanmisaka     } jpeg_roi0_cfg1;
553*437bfbebSnyanmisaka 
554*437bfbebSnyanmisaka     /* 0x00000498 reg294 */
555*437bfbebSnyanmisaka     struct {
556*437bfbebSnyanmisaka         RK_U32 roi1_rdoq_start_x    : 11;
557*437bfbebSnyanmisaka         RK_U32 roi1_rdoq_start_y    : 11;
558*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
559*437bfbebSnyanmisaka         RK_U32 roi1_rdoq_level      : 6;
560*437bfbebSnyanmisaka         RK_U32 roi1_rdoq_en         : 1;
561*437bfbebSnyanmisaka     } jpeg_roi1_cfg0;
562*437bfbebSnyanmisaka 
563*437bfbebSnyanmisaka     /* 0x0000049c reg295 */
564*437bfbebSnyanmisaka     struct {
565*437bfbebSnyanmisaka         RK_U32 roi1_rdoq_width_m1     : 11;
566*437bfbebSnyanmisaka         RK_U32 roi1_rdoq_height_m1    : 11;
567*437bfbebSnyanmisaka         RK_U32 reserved               : 10;
568*437bfbebSnyanmisaka     } jpeg_roi1_cfg1;
569*437bfbebSnyanmisaka 
570*437bfbebSnyanmisaka     /* 0x000004a0 reg296 */
571*437bfbebSnyanmisaka     struct {
572*437bfbebSnyanmisaka         RK_U32 roi2_rdoq_start_x    : 11;
573*437bfbebSnyanmisaka         RK_U32 roi2_rdoq_start_y    : 11;
574*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
575*437bfbebSnyanmisaka         RK_U32 roi2_rdoq_level      : 6;
576*437bfbebSnyanmisaka         RK_U32 roi2_rdoq_en         : 1;
577*437bfbebSnyanmisaka     } jpeg_roi2_cfg0;
578*437bfbebSnyanmisaka 
579*437bfbebSnyanmisaka     /* 0x000004a4 reg297 */
580*437bfbebSnyanmisaka     struct {
581*437bfbebSnyanmisaka         RK_U32 roi2_rdoq_width_m1     : 11;
582*437bfbebSnyanmisaka         RK_U32 roi2_rdoq_height_m1    : 11;
583*437bfbebSnyanmisaka         RK_U32 reserved               : 10;
584*437bfbebSnyanmisaka     } jpeg_roi2_cfg1;
585*437bfbebSnyanmisaka 
586*437bfbebSnyanmisaka     /* 0x000004a8 reg298 */
587*437bfbebSnyanmisaka     struct {
588*437bfbebSnyanmisaka         RK_U32 roi3_rdoq_start_x    : 11;
589*437bfbebSnyanmisaka         RK_U32 roi3_rdoq_start_y    : 11;
590*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
591*437bfbebSnyanmisaka         RK_U32 roi3_rdoq_level      : 6;
592*437bfbebSnyanmisaka         RK_U32 roi3_rdoq_en         : 1;
593*437bfbebSnyanmisaka     } jpeg_roi3_cfg0;
594*437bfbebSnyanmisaka 
595*437bfbebSnyanmisaka     /* 0x000004ac reg299 */
596*437bfbebSnyanmisaka     struct {
597*437bfbebSnyanmisaka         RK_U32 roi3_rdoq_width_m1     : 11;
598*437bfbebSnyanmisaka         RK_U32 roi3_rdoq_height_m1    : 11;
599*437bfbebSnyanmisaka         RK_U32 reserved               : 10;
600*437bfbebSnyanmisaka     } jpeg_roi3_cfg1;
601*437bfbebSnyanmisaka 
602*437bfbebSnyanmisaka     /* 0x000004b0 reg300 */
603*437bfbebSnyanmisaka     struct {
604*437bfbebSnyanmisaka         RK_U32 roi4_rdoq_start_x    : 11;
605*437bfbebSnyanmisaka         RK_U32 roi4_rdoq_start_y    : 11;
606*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
607*437bfbebSnyanmisaka         RK_U32 roi4_rdoq_level      : 6;
608*437bfbebSnyanmisaka         RK_U32 roi4_rdoq_en         : 1;
609*437bfbebSnyanmisaka     } jpeg_roi4_cfg0;
610*437bfbebSnyanmisaka 
611*437bfbebSnyanmisaka     /* 0x000004b4 reg301 */
612*437bfbebSnyanmisaka     struct {
613*437bfbebSnyanmisaka         RK_U32 roi4_rdoq_width_m1     : 11;
614*437bfbebSnyanmisaka         RK_U32 roi4_rdoq_height_m1    : 11;
615*437bfbebSnyanmisaka         RK_U32 reserved               : 10;
616*437bfbebSnyanmisaka     } jpeg_roi4_cfg1;
617*437bfbebSnyanmisaka 
618*437bfbebSnyanmisaka     /* 0x000004b8 reg302 */
619*437bfbebSnyanmisaka     struct {
620*437bfbebSnyanmisaka         RK_U32 roi5_rdoq_start_x    : 11;
621*437bfbebSnyanmisaka         RK_U32 roi5_rdoq_start_y    : 11;
622*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
623*437bfbebSnyanmisaka         RK_U32 roi5_rdoq_level      : 6;
624*437bfbebSnyanmisaka         RK_U32 roi5_rdoq_en         : 1;
625*437bfbebSnyanmisaka     } jpeg_roi5_cfg0;
626*437bfbebSnyanmisaka 
627*437bfbebSnyanmisaka     /* 0x000004bc reg303 */
628*437bfbebSnyanmisaka     struct {
629*437bfbebSnyanmisaka         RK_U32 roi5_rdoq_width_m1     : 11;
630*437bfbebSnyanmisaka         RK_U32 roi5_rdoq_height_m1    : 11;
631*437bfbebSnyanmisaka         RK_U32 reserved               : 10;
632*437bfbebSnyanmisaka     } jpeg_roi5_cfg1;
633*437bfbebSnyanmisaka 
634*437bfbebSnyanmisaka     /* 0x000004c0 reg304 */
635*437bfbebSnyanmisaka     struct {
636*437bfbebSnyanmisaka         RK_U32 roi6_rdoq_start_x    : 11;
637*437bfbebSnyanmisaka         RK_U32 roi6_rdoq_start_y    : 11;
638*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
639*437bfbebSnyanmisaka         RK_U32 roi6_rdoq_level      : 6;
640*437bfbebSnyanmisaka         RK_U32 roi6_rdoq_en         : 1;
641*437bfbebSnyanmisaka     } jpeg_roi6_cfg0;
642*437bfbebSnyanmisaka 
643*437bfbebSnyanmisaka     /* 0x000004c4 reg305 */
644*437bfbebSnyanmisaka     struct {
645*437bfbebSnyanmisaka         RK_U32 roi6_rdoq_width_m1     : 11;
646*437bfbebSnyanmisaka         RK_U32 roi6_rdoq_height_m1    : 11;
647*437bfbebSnyanmisaka         RK_U32 reserved               : 10;
648*437bfbebSnyanmisaka     } jpeg_roi6_cfg1;
649*437bfbebSnyanmisaka 
650*437bfbebSnyanmisaka     /* 0x000004c8 reg306 */
651*437bfbebSnyanmisaka     struct {
652*437bfbebSnyanmisaka         RK_U32 roi7_rdoq_start_x    : 11;
653*437bfbebSnyanmisaka         RK_U32 roi7_rdoq_start_y    : 11;
654*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
655*437bfbebSnyanmisaka         RK_U32 roi7_rdoq_level      : 6;
656*437bfbebSnyanmisaka         RK_U32 roi7_rdoq_en         : 1;
657*437bfbebSnyanmisaka     } jpeg_roi7_cfg0;
658*437bfbebSnyanmisaka 
659*437bfbebSnyanmisaka     /* 0x000004cc reg307 */
660*437bfbebSnyanmisaka     struct {
661*437bfbebSnyanmisaka         RK_U32 roi7_rdoq_width_m1     : 11;
662*437bfbebSnyanmisaka         RK_U32 roi7_rdoq_height_m1    : 11;
663*437bfbebSnyanmisaka         RK_U32 reserved               : 10;
664*437bfbebSnyanmisaka     } jpeg_roi7_cfg1;
665*437bfbebSnyanmisaka 
666*437bfbebSnyanmisaka     /* 0x000004d0 reg308 */
667*437bfbebSnyanmisaka     struct {
668*437bfbebSnyanmisaka         RK_U32 roi8_rdoq_start_x    : 11;
669*437bfbebSnyanmisaka         RK_U32 roi8_rdoq_start_y    : 11;
670*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
671*437bfbebSnyanmisaka         RK_U32 roi8_rdoq_level      : 6;
672*437bfbebSnyanmisaka         RK_U32 roi8_rdoq_en         : 1;
673*437bfbebSnyanmisaka     } jpeg_roi8_cfg0;
674*437bfbebSnyanmisaka 
675*437bfbebSnyanmisaka     /* 0x000004d4 reg309 */
676*437bfbebSnyanmisaka     struct {
677*437bfbebSnyanmisaka         RK_U32 roi8_rdoq_width_m1     : 11;
678*437bfbebSnyanmisaka         RK_U32 roi8_rdoq_height_m1    : 11;
679*437bfbebSnyanmisaka         RK_U32 reserved               : 10;
680*437bfbebSnyanmisaka     } jpeg_roi8_cfg1;
681*437bfbebSnyanmisaka 
682*437bfbebSnyanmisaka     /* 0x000004d8 reg310 */
683*437bfbebSnyanmisaka     struct {
684*437bfbebSnyanmisaka         RK_U32 roi9_rdoq_start_x    : 11;
685*437bfbebSnyanmisaka         RK_U32 roi9_rdoq_start_y    : 11;
686*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
687*437bfbebSnyanmisaka         RK_U32 roi9_rdoq_level      : 6;
688*437bfbebSnyanmisaka         RK_U32 roi9_rdoq_en         : 1;
689*437bfbebSnyanmisaka     } jpeg_roi9_cfg0;
690*437bfbebSnyanmisaka 
691*437bfbebSnyanmisaka     /* 0x000004dc reg311 */
692*437bfbebSnyanmisaka     struct {
693*437bfbebSnyanmisaka         RK_U32 roi9_rdoq_width_m1     : 11;
694*437bfbebSnyanmisaka         RK_U32 roi9_rdoq_height_m1    : 11;
695*437bfbebSnyanmisaka         RK_U32 reserved               : 10;
696*437bfbebSnyanmisaka     } jpeg_roi9_cfg1;
697*437bfbebSnyanmisaka 
698*437bfbebSnyanmisaka     /* 0x000004e0 reg312 */
699*437bfbebSnyanmisaka     struct {
700*437bfbebSnyanmisaka         RK_U32 roi10_rdoq_start_x    : 11;
701*437bfbebSnyanmisaka         RK_U32 roi10_rdoq_start_y    : 11;
702*437bfbebSnyanmisaka         RK_U32 reserved              : 3;
703*437bfbebSnyanmisaka         RK_U32 roi10_rdoq_level      : 6;
704*437bfbebSnyanmisaka         RK_U32 roi10_rdoq_en         : 1;
705*437bfbebSnyanmisaka     } jpeg_roi10_cfg0;
706*437bfbebSnyanmisaka 
707*437bfbebSnyanmisaka     /* 0x000004e4 reg313 */
708*437bfbebSnyanmisaka     struct {
709*437bfbebSnyanmisaka         RK_U32 roi10_rdoq_width_m1     : 11;
710*437bfbebSnyanmisaka         RK_U32 roi10_rdoq_height_m1    : 11;
711*437bfbebSnyanmisaka         RK_U32 reserved                : 10;
712*437bfbebSnyanmisaka     } jpeg_roi10_cfg1;
713*437bfbebSnyanmisaka 
714*437bfbebSnyanmisaka     /* 0x000004e8 reg314 */
715*437bfbebSnyanmisaka     struct {
716*437bfbebSnyanmisaka         RK_U32 roi11_rdoq_start_x    : 11;
717*437bfbebSnyanmisaka         RK_U32 roi11_rdoq_start_y    : 11;
718*437bfbebSnyanmisaka         RK_U32 reserved              : 3;
719*437bfbebSnyanmisaka         RK_U32 roi11_rdoq_level      : 6;
720*437bfbebSnyanmisaka         RK_U32 roi11_rdoq_en         : 1;
721*437bfbebSnyanmisaka     } jpeg_roi11_cfg0;
722*437bfbebSnyanmisaka 
723*437bfbebSnyanmisaka     /* 0x000004ec reg315 */
724*437bfbebSnyanmisaka     struct {
725*437bfbebSnyanmisaka         RK_U32 roi11_rdoq_width_m1     : 11;
726*437bfbebSnyanmisaka         RK_U32 roi11_rdoq_height_m1    : 11;
727*437bfbebSnyanmisaka         RK_U32 reserved                : 10;
728*437bfbebSnyanmisaka     } jpeg_roi11_cfg1;
729*437bfbebSnyanmisaka 
730*437bfbebSnyanmisaka     /* 0x000004f0 reg316 */
731*437bfbebSnyanmisaka     struct {
732*437bfbebSnyanmisaka         RK_U32 roi12_rdoq_start_x    : 11;
733*437bfbebSnyanmisaka         RK_U32 roi12_rdoq_start_y    : 11;
734*437bfbebSnyanmisaka         RK_U32 reserved              : 3;
735*437bfbebSnyanmisaka         RK_U32 roi12_rdoq_level      : 6;
736*437bfbebSnyanmisaka         RK_U32 roi12_rdoq_en         : 1;
737*437bfbebSnyanmisaka     } jpeg_roi12_cfg0;
738*437bfbebSnyanmisaka 
739*437bfbebSnyanmisaka     /* 0x000004f4 reg317 */
740*437bfbebSnyanmisaka     struct {
741*437bfbebSnyanmisaka         RK_U32 roi12_rdoq_width_m1     : 11;
742*437bfbebSnyanmisaka         RK_U32 roi12_rdoq_height_m1    : 11;
743*437bfbebSnyanmisaka         RK_U32 reserved                : 10;
744*437bfbebSnyanmisaka     } jpeg_roi12_cfg1;
745*437bfbebSnyanmisaka 
746*437bfbebSnyanmisaka     /* 0x000004f8 reg318 */
747*437bfbebSnyanmisaka     struct {
748*437bfbebSnyanmisaka         RK_U32 roi13_rdoq_start_x    : 11;
749*437bfbebSnyanmisaka         RK_U32 roi13_rdoq_start_y    : 11;
750*437bfbebSnyanmisaka         RK_U32 reserved              : 3;
751*437bfbebSnyanmisaka         RK_U32 roi13_rdoq_level      : 6;
752*437bfbebSnyanmisaka         RK_U32 roi13_rdoq_en         : 1;
753*437bfbebSnyanmisaka     } jpeg_roi13_cfg0;
754*437bfbebSnyanmisaka 
755*437bfbebSnyanmisaka     /* 0x000004fc reg319 */
756*437bfbebSnyanmisaka     struct {
757*437bfbebSnyanmisaka         RK_U32 roi13_rdoq_width_m1     : 11;
758*437bfbebSnyanmisaka         RK_U32 roi13_rdoq_height_m1    : 11;
759*437bfbebSnyanmisaka         RK_U32 reserved                : 10;
760*437bfbebSnyanmisaka     } jpeg_roi13_cfg1;
761*437bfbebSnyanmisaka 
762*437bfbebSnyanmisaka     /* 0x00000500 reg320 */
763*437bfbebSnyanmisaka     struct {
764*437bfbebSnyanmisaka         RK_U32 roi14_rdoq_start_x    : 11;
765*437bfbebSnyanmisaka         RK_U32 roi14_rdoq_start_y    : 11;
766*437bfbebSnyanmisaka         RK_U32 reserved              : 3;
767*437bfbebSnyanmisaka         RK_U32 roi14_rdoq_level      : 6;
768*437bfbebSnyanmisaka         RK_U32 roi14_rdoq_en         : 1;
769*437bfbebSnyanmisaka     } jpeg_roi14_cfg0;
770*437bfbebSnyanmisaka 
771*437bfbebSnyanmisaka     /* 0x00000504 reg321 */
772*437bfbebSnyanmisaka     struct {
773*437bfbebSnyanmisaka         RK_U32 roi14_rdoq_width_m1     : 11;
774*437bfbebSnyanmisaka         RK_U32 roi14_rdoq_height_m1    : 11;
775*437bfbebSnyanmisaka         RK_U32 reserved                : 10;
776*437bfbebSnyanmisaka     } jpeg_roi14_cfg1;
777*437bfbebSnyanmisaka 
778*437bfbebSnyanmisaka     /* 0x00000508 reg322 */
779*437bfbebSnyanmisaka     struct {
780*437bfbebSnyanmisaka         RK_U32 roi15_rdoq_start_x    : 11;
781*437bfbebSnyanmisaka         RK_U32 roi15_rdoq_start_y    : 11;
782*437bfbebSnyanmisaka         RK_U32 reserved              : 3;
783*437bfbebSnyanmisaka         RK_U32 roi15_rdoq_level      : 6;
784*437bfbebSnyanmisaka         RK_U32 roi15_rdoq_en         : 1;
785*437bfbebSnyanmisaka     } jpeg_roi15_cfg0;
786*437bfbebSnyanmisaka 
787*437bfbebSnyanmisaka     /* 0x0000050c reg323 */
788*437bfbebSnyanmisaka     struct {
789*437bfbebSnyanmisaka         RK_U32 roi15_rdoq_width_m1     : 11;
790*437bfbebSnyanmisaka         RK_U32 roi15_rdoq_height_m1    : 11;
791*437bfbebSnyanmisaka         RK_U32 reserved                : 10;
792*437bfbebSnyanmisaka     } jpeg_roi15_cfg1;
793*437bfbebSnyanmisaka 
794*437bfbebSnyanmisaka     /* 0x510 - 0x51c */
795*437bfbebSnyanmisaka     RK_U32 reserved324_327[4];
796*437bfbebSnyanmisaka 
797*437bfbebSnyanmisaka     /* 0x00000520 reg328 */
798*437bfbebSnyanmisaka     struct {
799*437bfbebSnyanmisaka         RK_U32 reserved        : 4;
800*437bfbebSnyanmisaka         RK_U32 base_addr_md    : 28;
801*437bfbebSnyanmisaka     } adr_md_vpp;
802*437bfbebSnyanmisaka 
803*437bfbebSnyanmisaka     /* 0x00000524 reg329 */
804*437bfbebSnyanmisaka     struct {
805*437bfbebSnyanmisaka         RK_U32 reserved        : 4;
806*437bfbebSnyanmisaka         RK_U32 base_addr_od    : 28;
807*437bfbebSnyanmisaka     } adr_od_vpp;
808*437bfbebSnyanmisaka 
809*437bfbebSnyanmisaka     /* 0x00000528 reg330 */
810*437bfbebSnyanmisaka     struct {
811*437bfbebSnyanmisaka         RK_U32 reserved             : 4;
812*437bfbebSnyanmisaka         RK_U32 base_addr_ref_mdw    : 28;
813*437bfbebSnyanmisaka     } adr_ref_mdw;
814*437bfbebSnyanmisaka 
815*437bfbebSnyanmisaka     /* 0x0000052c reg331 */
816*437bfbebSnyanmisaka     struct {
817*437bfbebSnyanmisaka         RK_U32 reserved             : 4;
818*437bfbebSnyanmisaka         RK_U32 base_addr_ref_mdr    : 28;
819*437bfbebSnyanmisaka     } adr_ref_mdr;
820*437bfbebSnyanmisaka 
821*437bfbebSnyanmisaka     /* 0x00000530 reg332 */
822*437bfbebSnyanmisaka     struct {
823*437bfbebSnyanmisaka         RK_U32 sto_stride_md          : 8;
824*437bfbebSnyanmisaka         RK_U32 sto_stride_od          : 8;
825*437bfbebSnyanmisaka         RK_U32 cur_frm_en_md          : 1;
826*437bfbebSnyanmisaka         RK_U32 ref_frm_en_md          : 1;
827*437bfbebSnyanmisaka         RK_U32 switch_sad_md          : 2;
828*437bfbebSnyanmisaka         RK_U32 night_mode_en_md       : 1;
829*437bfbebSnyanmisaka         RK_U32 flycatkin_flt_en_md    : 1;
830*437bfbebSnyanmisaka         RK_U32 en_od                  : 1;
831*437bfbebSnyanmisaka         RK_U32 background_en_od       : 1;
832*437bfbebSnyanmisaka         RK_U32 sad_comp_en_od         : 1;
833*437bfbebSnyanmisaka         RK_U32 reserved               : 6;
834*437bfbebSnyanmisaka         RK_U32 vepu_pp_en             : 1;
835*437bfbebSnyanmisaka     } vpp_base_cfg;
836*437bfbebSnyanmisaka 
837*437bfbebSnyanmisaka     /* 0x00000534 reg333 */
838*437bfbebSnyanmisaka     struct {
839*437bfbebSnyanmisaka         RK_U32 thres_sad_md          : 12;
840*437bfbebSnyanmisaka         RK_U32 thres_move_md         : 3;
841*437bfbebSnyanmisaka         RK_U32 reserved              : 1;
842*437bfbebSnyanmisaka         RK_U32 thres_dust_move_md    : 4;
843*437bfbebSnyanmisaka         RK_U32 thres_dust_blk_md     : 3;
844*437bfbebSnyanmisaka         RK_U32 reserved1             : 1;
845*437bfbebSnyanmisaka         RK_U32 thres_dust_chng_md    : 8;
846*437bfbebSnyanmisaka     } thd_md_vpp;
847*437bfbebSnyanmisaka 
848*437bfbebSnyanmisaka     /* 0x00000538 reg334 */
849*437bfbebSnyanmisaka     struct {
850*437bfbebSnyanmisaka         RK_U32 thres_complex_od        : 12;
851*437bfbebSnyanmisaka         RK_U32 thres_complex_cnt_od    : 3;
852*437bfbebSnyanmisaka         RK_U32 thres_sad_od            : 14;
853*437bfbebSnyanmisaka         RK_U32 reserved                : 3;
854*437bfbebSnyanmisaka     } thd_od_vpp;
855*437bfbebSnyanmisaka } H265eVepu511Frame;
856*437bfbebSnyanmisaka 
857*437bfbebSnyanmisaka /* class: param */
858*437bfbebSnyanmisaka /* 0x00001700 reg1472 - 0x000019cc reg1651*/
859*437bfbebSnyanmisaka typedef struct H265eVepu511Param_t {
860*437bfbebSnyanmisaka     /* 0x00001700 reg1472 - 0x0000172c reg1483*/
861*437bfbebSnyanmisaka     RK_U32 reserved_1472_1483[12];
862*437bfbebSnyanmisaka 
863*437bfbebSnyanmisaka     /* 0x00001730 reg1484 */
864*437bfbebSnyanmisaka     struct {
865*437bfbebSnyanmisaka         RK_U32 bias_madi_th0    : 8;
866*437bfbebSnyanmisaka         RK_U32 bias_madi_th1    : 8;
867*437bfbebSnyanmisaka         RK_U32 bias_madi_th2    : 8;
868*437bfbebSnyanmisaka         RK_U32 reserved         : 8;
869*437bfbebSnyanmisaka     } bias_madi_thd_comb;
870*437bfbebSnyanmisaka 
871*437bfbebSnyanmisaka     /* 0x00001734 reg1485 */
872*437bfbebSnyanmisaka     struct {
873*437bfbebSnyanmisaka         RK_U32 bias_i_val0    : 10;
874*437bfbebSnyanmisaka         RK_U32 bias_i_val1    : 10;
875*437bfbebSnyanmisaka         RK_U32 bias_i_val2    : 10;
876*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
877*437bfbebSnyanmisaka     } qnt0_i_bias_comb;
878*437bfbebSnyanmisaka 
879*437bfbebSnyanmisaka     /* 0x00001738 reg1486 */
880*437bfbebSnyanmisaka     struct {
881*437bfbebSnyanmisaka         RK_U32 bias_i_val3    : 10;
882*437bfbebSnyanmisaka         RK_U32 reserved       : 22;
883*437bfbebSnyanmisaka     } qnt1_i_bias_comb;
884*437bfbebSnyanmisaka 
885*437bfbebSnyanmisaka     /* 0x0000173c reg1487 */
886*437bfbebSnyanmisaka     struct {
887*437bfbebSnyanmisaka         RK_U32 bias_p_val0    : 10;
888*437bfbebSnyanmisaka         RK_U32 bias_p_val1    : 10;
889*437bfbebSnyanmisaka         RK_U32 bias_p_val2    : 10;
890*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
891*437bfbebSnyanmisaka     } qnt0_p_bias_comb;
892*437bfbebSnyanmisaka 
893*437bfbebSnyanmisaka     /* 0x00001740 reg1488 */
894*437bfbebSnyanmisaka     struct {
895*437bfbebSnyanmisaka         RK_U32 bias_p_val3    : 10;
896*437bfbebSnyanmisaka         RK_U32 reserved       : 22;
897*437bfbebSnyanmisaka     } qnt1_p_bias_comb;
898*437bfbebSnyanmisaka 
899*437bfbebSnyanmisaka     /* 0x00001744 reg1489 */
900*437bfbebSnyanmisaka     struct {
901*437bfbebSnyanmisaka         RK_U32 light_change_en         : 1;
902*437bfbebSnyanmisaka         RK_U32 light_ratio_mult1       : 5;
903*437bfbebSnyanmisaka         RK_U32 light_ratio_mult2       : 4;
904*437bfbebSnyanmisaka         RK_U32 light_thre_csu1_cnt     : 2;
905*437bfbebSnyanmisaka         RK_U32 srch_rgn_en             : 1;
906*437bfbebSnyanmisaka         RK_U32 reserved                : 3;
907*437bfbebSnyanmisaka         RK_U32 light_thre_madp         : 8;
908*437bfbebSnyanmisaka         RK_U32 light_thre_lightmadp    : 8;
909*437bfbebSnyanmisaka     } light_cfg_hevc;
910*437bfbebSnyanmisaka 
911*437bfbebSnyanmisaka     /* 0x1748 - 0x175c */
912*437bfbebSnyanmisaka     RK_U32 reserved1490_1495[6];
913*437bfbebSnyanmisaka 
914*437bfbebSnyanmisaka     /* 0x00001760 reg1496 */
915*437bfbebSnyanmisaka     struct {
916*437bfbebSnyanmisaka         RK_U32 cime_pmv_num      : 1;
917*437bfbebSnyanmisaka         RK_U32 cime_fuse         : 1;
918*437bfbebSnyanmisaka         RK_U32 reserved          : 2;
919*437bfbebSnyanmisaka         RK_U32 move_lambda       : 4;
920*437bfbebSnyanmisaka         RK_U32 rime_lvl_mrg      : 2;
921*437bfbebSnyanmisaka         RK_U32 rime_prelvl_en    : 2;
922*437bfbebSnyanmisaka         RK_U32 rime_prersu_en    : 3;
923*437bfbebSnyanmisaka         RK_U32 fme_lvl_mrg       : 1;
924*437bfbebSnyanmisaka         RK_U32 reserved1         : 16;
925*437bfbebSnyanmisaka     } me_sqi_comb;
926*437bfbebSnyanmisaka 
927*437bfbebSnyanmisaka     /* 0x00001764 reg1497 */
928*437bfbebSnyanmisaka     struct {
929*437bfbebSnyanmisaka         RK_U32 cime_mvd_th0    : 9;
930*437bfbebSnyanmisaka         RK_U32 reserved        : 1;
931*437bfbebSnyanmisaka         RK_U32 cime_mvd_th1    : 9;
932*437bfbebSnyanmisaka         RK_U32 reserved1       : 1;
933*437bfbebSnyanmisaka         RK_U32 cime_mvd_th2    : 9;
934*437bfbebSnyanmisaka         RK_U32 reserved2       : 3;
935*437bfbebSnyanmisaka     }  cime_mvd_th_comb;
936*437bfbebSnyanmisaka 
937*437bfbebSnyanmisaka     /* 0x00001768 reg1498 */
938*437bfbebSnyanmisaka     struct {
939*437bfbebSnyanmisaka         RK_U32 cime_madp_th       : 12;
940*437bfbebSnyanmisaka         RK_U32 ratio_consi_cfg    : 4;
941*437bfbebSnyanmisaka         RK_U32 ratio_bmv_dist     : 4;
942*437bfbebSnyanmisaka         RK_U32 reserved           : 12;
943*437bfbebSnyanmisaka     } cime_madp_th_comb;
944*437bfbebSnyanmisaka 
945*437bfbebSnyanmisaka     /* 0x0000176c reg1499 */
946*437bfbebSnyanmisaka     struct {
947*437bfbebSnyanmisaka         RK_U32 cime_multi0    : 8;
948*437bfbebSnyanmisaka         RK_U32 cime_multi1    : 8;
949*437bfbebSnyanmisaka         RK_U32 cime_multi2    : 8;
950*437bfbebSnyanmisaka         RK_U32 cime_multi3    : 8;
951*437bfbebSnyanmisaka     } cime_multi_comb;
952*437bfbebSnyanmisaka 
953*437bfbebSnyanmisaka     /* 0x00001770 reg1500 */
954*437bfbebSnyanmisaka     struct {
955*437bfbebSnyanmisaka         RK_U32 rime_mvd_th0    : 3;
956*437bfbebSnyanmisaka         RK_U32 reserved        : 1;
957*437bfbebSnyanmisaka         RK_U32 rime_mvd_th1    : 3;
958*437bfbebSnyanmisaka         RK_U32 reserved1       : 9;
959*437bfbebSnyanmisaka         RK_U32 fme_madp_th     : 12;
960*437bfbebSnyanmisaka         RK_U32 reserved2       : 4;
961*437bfbebSnyanmisaka     } rime_mvd_th_comb;
962*437bfbebSnyanmisaka 
963*437bfbebSnyanmisaka     /* 0x00001774 reg1501 */
964*437bfbebSnyanmisaka     struct {
965*437bfbebSnyanmisaka         RK_U32 rime_madp_th0    : 12;
966*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
967*437bfbebSnyanmisaka         RK_U32 rime_madp_th1    : 12;
968*437bfbebSnyanmisaka         RK_U32 reserved1        : 4;
969*437bfbebSnyanmisaka     } rime_madp_th_comb;
970*437bfbebSnyanmisaka 
971*437bfbebSnyanmisaka     /* 0x00001778 reg1502 */
972*437bfbebSnyanmisaka     struct {
973*437bfbebSnyanmisaka         RK_U32 rime_multi0    : 10;
974*437bfbebSnyanmisaka         RK_U32 rime_multi1    : 10;
975*437bfbebSnyanmisaka         RK_U32 rime_multi2    : 10;
976*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
977*437bfbebSnyanmisaka     } rime_multi_comb;
978*437bfbebSnyanmisaka 
979*437bfbebSnyanmisaka     /* 0x0000177c reg1503 */
980*437bfbebSnyanmisaka     struct {
981*437bfbebSnyanmisaka         RK_U32 cmv_th0     : 8;
982*437bfbebSnyanmisaka         RK_U32 cmv_th1     : 8;
983*437bfbebSnyanmisaka         RK_U32 cmv_th2     : 8;
984*437bfbebSnyanmisaka         RK_U32 reserved    : 8;
985*437bfbebSnyanmisaka     } cmv_st_th_comb;
986*437bfbebSnyanmisaka 
987*437bfbebSnyanmisaka     /* 0x1780 - 0x17fc */
988*437bfbebSnyanmisaka     RK_U32 reserved1504_1535[32];
989*437bfbebSnyanmisaka 
990*437bfbebSnyanmisaka     /* 0x00001800 reg1536 - 0x000018cc reg1587*/
991*437bfbebSnyanmisaka     RK_U32 pprd_lamb_satd_0_51[52];
992*437bfbebSnyanmisaka 
993*437bfbebSnyanmisaka     /* 0x000018d0 reg1588 */
994*437bfbebSnyanmisaka     struct {
995*437bfbebSnyanmisaka         RK_U32 lambda_luma_offset      : 5;
996*437bfbebSnyanmisaka         RK_U32 lambda_chroma_offset    : 5;
997*437bfbebSnyanmisaka         RK_U32 reserved                : 22;
998*437bfbebSnyanmisaka     } prmd_intra_lamb_ofst;
999*437bfbebSnyanmisaka 
1000*437bfbebSnyanmisaka     /* 0x18d4 - 0x18fc */
1001*437bfbebSnyanmisaka     RK_U32 reserved1589_1599[11];
1002*437bfbebSnyanmisaka 
1003*437bfbebSnyanmisaka     /* 0x00001900 reg1600 - 0x000019cc reg1651*/
1004*437bfbebSnyanmisaka     RK_U32 rdo_wgta_qp_grpa_0_51[52];
1005*437bfbebSnyanmisaka } H265eVepu511Param;
1006*437bfbebSnyanmisaka 
1007*437bfbebSnyanmisaka /* class: rdo/q_i */
1008*437bfbebSnyanmisaka /* 0x00002000 reg2048 - 0x00002160 reg2136 */
1009*437bfbebSnyanmisaka typedef struct H265eVepu511SqiCfg_t {
1010*437bfbebSnyanmisaka     /* 0x00002000 reg2048 */
1011*437bfbebSnyanmisaka     struct {
1012*437bfbebSnyanmisaka         RK_U32 subj_opt_en                     : 1;
1013*437bfbebSnyanmisaka         RK_U32 subj_opt_strength               : 3;
1014*437bfbebSnyanmisaka         RK_U32 aq_subj_en                      : 1;
1015*437bfbebSnyanmisaka         RK_U32 aq_subj_strength                : 3;
1016*437bfbebSnyanmisaka         RK_U32 bndry_cmplx_static_choose_en    : 2;
1017*437bfbebSnyanmisaka         RK_U32 feature_cal_en                  : 1;
1018*437bfbebSnyanmisaka         RK_U32 reserved                        : 1;
1019*437bfbebSnyanmisaka         RK_U32 thre_sum_grdn_point             : 20;
1020*437bfbebSnyanmisaka     } subj_opt_cfg;
1021*437bfbebSnyanmisaka 
1022*437bfbebSnyanmisaka     /* 0x00002004 reg2049 */
1023*437bfbebSnyanmisaka     struct {
1024*437bfbebSnyanmisaka         RK_U32 common_thre_num_grdn_point_dep0    : 8;
1025*437bfbebSnyanmisaka         RK_U32 common_thre_num_grdn_point_dep1    : 8;
1026*437bfbebSnyanmisaka         RK_U32 common_thre_num_grdn_point_dep2    : 8;
1027*437bfbebSnyanmisaka         RK_U32 reserved                           : 8;
1028*437bfbebSnyanmisaka     } subj_opt_dpth_thd;
1029*437bfbebSnyanmisaka 
1030*437bfbebSnyanmisaka     /* 0x00002008 reg2050 */
1031*437bfbebSnyanmisaka     struct {
1032*437bfbebSnyanmisaka         RK_U32 cover_rdo_mode_intra_jcoef_d0    : 6;
1033*437bfbebSnyanmisaka         RK_U32 cover_rdo_mode_intra_jcoef_d1    : 6;
1034*437bfbebSnyanmisaka         RK_U32 cover_rmd_mode_intra_jcoef_d0    : 6;
1035*437bfbebSnyanmisaka         RK_U32 cover_rmd_mode_intra_jcoef_d1    : 6;
1036*437bfbebSnyanmisaka         RK_U32 cover_rdoq_rcoef_d0              : 4;
1037*437bfbebSnyanmisaka         RK_U32 cover_rdoq_rcoef_d1              : 4;
1038*437bfbebSnyanmisaka     } subj_opt_inrar_coef;
1039*437bfbebSnyanmisaka 
1040*437bfbebSnyanmisaka     /* 0x0000200c reg2051 */
1041*437bfbebSnyanmisaka     struct {
1042*437bfbebSnyanmisaka         RK_U32 cfc_rmd_mode_intra_jcoef_d0    : 6;
1043*437bfbebSnyanmisaka         RK_U32 cfc_rmd_mode_intra_jcoef_d1    : 6;
1044*437bfbebSnyanmisaka         RK_U32 cfc_rdo_mode_intra_jcoef_d0    : 6;
1045*437bfbebSnyanmisaka         RK_U32 cfc_rdo_mode_intra_jcoef_d1    : 6;
1046*437bfbebSnyanmisaka         RK_U32 cfc_rdoq_rcoef_d0              : 4;
1047*437bfbebSnyanmisaka         RK_U32 cfc_rdoq_rcoef_d1              : 4;
1048*437bfbebSnyanmisaka     } smear_opt_cfc_coef;
1049*437bfbebSnyanmisaka 
1050*437bfbebSnyanmisaka     /* 0x00002010 reg2052 */
1051*437bfbebSnyanmisaka     struct {
1052*437bfbebSnyanmisaka         RK_U32 anti_smear_en                  : 1;
1053*437bfbebSnyanmisaka         RK_U32 frm_static                     : 1;
1054*437bfbebSnyanmisaka         RK_U32 smear_stor_en                  : 1;
1055*437bfbebSnyanmisaka         RK_U32 smear_load_en                  : 1;
1056*437bfbebSnyanmisaka         RK_U32 smear_strength                 : 3;
1057*437bfbebSnyanmisaka         RK_U32 reserved                       : 1;
1058*437bfbebSnyanmisaka         RK_U32 thre_mv_inconfor_cime          : 4;
1059*437bfbebSnyanmisaka         RK_U32 thre_mv_confor_cime            : 2;
1060*437bfbebSnyanmisaka         RK_U32 thre_mv_confor_cime_gmv        : 2;
1061*437bfbebSnyanmisaka         RK_U32 thre_mv_inconfor_cime_gmv      : 4;
1062*437bfbebSnyanmisaka         RK_U32 thre_num_mv_confor_cime        : 2;
1063*437bfbebSnyanmisaka         RK_U32 thre_num_mv_confor_cime_gmv    : 2;
1064*437bfbebSnyanmisaka         RK_U32 ref1_subj_opt_en               : 1;
1065*437bfbebSnyanmisaka         RK_U32 smear_cfc_en                   : 1;
1066*437bfbebSnyanmisaka         RK_U32 reserved1                      : 6;
1067*437bfbebSnyanmisaka     } smear_opt_cfg0;
1068*437bfbebSnyanmisaka 
1069*437bfbebSnyanmisaka     /* 0x00002014 reg2053 */
1070*437bfbebSnyanmisaka     struct {
1071*437bfbebSnyanmisaka         RK_U32 dist0_frm_avg               : 14;
1072*437bfbebSnyanmisaka         RK_U32 thre_dsp_static             : 5;
1073*437bfbebSnyanmisaka         RK_U32 thre_dsp_mov                : 5;
1074*437bfbebSnyanmisaka         RK_U32 thre_dist_mv_confor_cime    : 7;
1075*437bfbebSnyanmisaka         RK_U32 reserved                    : 1;
1076*437bfbebSnyanmisaka     } smear_opt_cfg1;
1077*437bfbebSnyanmisaka 
1078*437bfbebSnyanmisaka     /* 0x00002018 reg2054 */
1079*437bfbebSnyanmisaka     struct {
1080*437bfbebSnyanmisaka         RK_U32 thre_madp_stc_dep0    : 4;
1081*437bfbebSnyanmisaka         RK_U32 thre_madp_stc_dep1    : 4;
1082*437bfbebSnyanmisaka         RK_U32 thre_madp_stc_dep2    : 4;
1083*437bfbebSnyanmisaka         RK_U32 thre_madp_mov_dep0    : 6;
1084*437bfbebSnyanmisaka         RK_U32 thre_madp_mov_dep1    : 6;
1085*437bfbebSnyanmisaka         RK_U32 thre_madp_mov_dep2    : 6;
1086*437bfbebSnyanmisaka         RK_U32 reserved              : 2;
1087*437bfbebSnyanmisaka     } smear_madp_thd;
1088*437bfbebSnyanmisaka 
1089*437bfbebSnyanmisaka     /* 0x0000201c reg2055 */
1090*437bfbebSnyanmisaka     struct {
1091*437bfbebSnyanmisaka         RK_U32 thre_num_pt_stc_dep0    : 6;
1092*437bfbebSnyanmisaka         RK_U32 thre_num_pt_stc_dep1    : 4;
1093*437bfbebSnyanmisaka         RK_U32 thre_num_pt_stc_dep2    : 2;
1094*437bfbebSnyanmisaka         RK_U32 reserved                : 4;
1095*437bfbebSnyanmisaka         RK_U32 thre_num_pt_mov_dep0    : 6;
1096*437bfbebSnyanmisaka         RK_U32 thre_num_pt_mov_dep1    : 4;
1097*437bfbebSnyanmisaka         RK_U32 thre_num_pt_mov_dep2    : 2;
1098*437bfbebSnyanmisaka         RK_U32 reserved1               : 4;
1099*437bfbebSnyanmisaka     } smear_stat_thd;
1100*437bfbebSnyanmisaka 
1101*437bfbebSnyanmisaka     /* 0x00002020 reg2056 */
1102*437bfbebSnyanmisaka     struct {
1103*437bfbebSnyanmisaka         RK_U32 confor_cime_gmv0      : 5;
1104*437bfbebSnyanmisaka         RK_U32 reserved              : 3;
1105*437bfbebSnyanmisaka         RK_U32 confor_cime_gmv1      : 5;
1106*437bfbebSnyanmisaka         RK_U32 reserved1             : 3;
1107*437bfbebSnyanmisaka         RK_U32 inconfor_cime_gmv0    : 6;
1108*437bfbebSnyanmisaka         RK_U32 reserved2             : 2;
1109*437bfbebSnyanmisaka         RK_U32 inconfor_cime_gmv1    : 6;
1110*437bfbebSnyanmisaka         RK_U32 reserved3             : 2;
1111*437bfbebSnyanmisaka     } smear_bmv_dist_thd0;
1112*437bfbebSnyanmisaka 
1113*437bfbebSnyanmisaka     /* 0x00002024 reg2057 */
1114*437bfbebSnyanmisaka     struct {
1115*437bfbebSnyanmisaka         RK_U32 inconfor_cime_gmv2    : 6;
1116*437bfbebSnyanmisaka         RK_U32 reserved              : 2;
1117*437bfbebSnyanmisaka         RK_U32 inconfor_cime_gmv3    : 6;
1118*437bfbebSnyanmisaka         RK_U32 reserved1             : 2;
1119*437bfbebSnyanmisaka         RK_U32 inconfor_cime_gmv4    : 6;
1120*437bfbebSnyanmisaka         RK_U32 reserved2             : 10;
1121*437bfbebSnyanmisaka     } smear_bmv_dist_thd1;
1122*437bfbebSnyanmisaka 
1123*437bfbebSnyanmisaka     /* 0x00002028 reg2058 */
1124*437bfbebSnyanmisaka     struct {
1125*437bfbebSnyanmisaka         RK_U32 thre_min_num_confor_csu0_bndry_cime_gmv      : 2;
1126*437bfbebSnyanmisaka         RK_U32 thre_max_num_confor_csu0_bndry_cime_gmv      : 2;
1127*437bfbebSnyanmisaka         RK_U32 thre_min_num_inconfor_csu0_bndry_cime_gmv    : 2;
1128*437bfbebSnyanmisaka         RK_U32 thre_max_num_inconfor_csu0_bndry_cime_gmv    : 2;
1129*437bfbebSnyanmisaka         RK_U32 thre_split_dep0                              : 2;
1130*437bfbebSnyanmisaka         RK_U32 thre_zero_srgn                               : 5;
1131*437bfbebSnyanmisaka         RK_U32 reserved                                     : 1;
1132*437bfbebSnyanmisaka         RK_U32 madi_thre_dep0                               : 8;
1133*437bfbebSnyanmisaka         RK_U32 madi_thre_dep1                               : 8;
1134*437bfbebSnyanmisaka     } smear_min_bndry_gmv;
1135*437bfbebSnyanmisaka 
1136*437bfbebSnyanmisaka     /* 0x0000202c reg2059 */
1137*437bfbebSnyanmisaka     struct {
1138*437bfbebSnyanmisaka         RK_U32 thre_madp_stc_cover0    : 6;
1139*437bfbebSnyanmisaka         RK_U32 thre_madp_stc_cover1    : 6;
1140*437bfbebSnyanmisaka         RK_U32 thre_madp_mov_cover0    : 5;
1141*437bfbebSnyanmisaka         RK_U32 thre_madp_mov_cover1    : 5;
1142*437bfbebSnyanmisaka         RK_U32 smear_qp_strength       : 4;
1143*437bfbebSnyanmisaka         RK_U32 smear_thre_qp           : 6;
1144*437bfbebSnyanmisaka     } smear_madp_cov_thd;
1145*437bfbebSnyanmisaka 
1146*437bfbebSnyanmisaka     /* 0x00002030 reg2060 */
1147*437bfbebSnyanmisaka     struct {
1148*437bfbebSnyanmisaka         RK_U32 skin_en                        : 1;
1149*437bfbebSnyanmisaka         RK_U32 skin_strength                  : 3;
1150*437bfbebSnyanmisaka         RK_U32 thre_uvsqr16_skin              : 8;
1151*437bfbebSnyanmisaka         RK_U32 skin_thre_cst_best_mad         : 10;
1152*437bfbebSnyanmisaka         RK_U32 skin_thre_cst_best_grdn_blk    : 7;
1153*437bfbebSnyanmisaka         RK_U32 reserved                       : 1;
1154*437bfbebSnyanmisaka         RK_U32 frame_skin_ratio               : 2;
1155*437bfbebSnyanmisaka     } skin_opt_cfg;
1156*437bfbebSnyanmisaka 
1157*437bfbebSnyanmisaka     /* 0x00002034 reg2061 */
1158*437bfbebSnyanmisaka     struct {
1159*437bfbebSnyanmisaka         RK_U32 thre_sum_mad_intra         : 2;
1160*437bfbebSnyanmisaka         RK_U32 thre_sum_grdn_blk_intra    : 2;
1161*437bfbebSnyanmisaka         RK_U32 vld_thre_skin_v            : 3;
1162*437bfbebSnyanmisaka         RK_U32 reserved                   : 1;
1163*437bfbebSnyanmisaka         RK_U32 thre_min_skin_u            : 8;
1164*437bfbebSnyanmisaka         RK_U32 thre_max_skin_u            : 8;
1165*437bfbebSnyanmisaka         RK_U32 thre_min_skin_v            : 8;
1166*437bfbebSnyanmisaka     } skin_chrm_thd;
1167*437bfbebSnyanmisaka 
1168*437bfbebSnyanmisaka     /* 0x00002038 reg2062 */
1169*437bfbebSnyanmisaka     struct {
1170*437bfbebSnyanmisaka         RK_U32 block_en                        : 1;
1171*437bfbebSnyanmisaka         RK_U32 reserved                        : 1;
1172*437bfbebSnyanmisaka         RK_U32 block_thre_cst_best_mad         : 10;
1173*437bfbebSnyanmisaka         RK_U32 reserved1                       : 4;
1174*437bfbebSnyanmisaka         RK_U32 block_thre_cst_best_grdn_blk    : 6;
1175*437bfbebSnyanmisaka         RK_U32 reserved2                       : 2;
1176*437bfbebSnyanmisaka         RK_U32 thre_num_grdnt_point_cmplx      : 2;
1177*437bfbebSnyanmisaka         RK_U32 block_delta_qp_flag             : 2;
1178*437bfbebSnyanmisaka         RK_U32 reserved3                       : 4;
1179*437bfbebSnyanmisaka     } block_opt_cfg;
1180*437bfbebSnyanmisaka 
1181*437bfbebSnyanmisaka     /* 0x0000203c reg2063 */
1182*437bfbebSnyanmisaka     struct {
1183*437bfbebSnyanmisaka         RK_U32 cmplx_thre_cst_best_mad_dep0    : 13;
1184*437bfbebSnyanmisaka         RK_U32 reserved                        : 3;
1185*437bfbebSnyanmisaka         RK_U32 cmplx_thre_cst_best_mad_dep1    : 13;
1186*437bfbebSnyanmisaka         RK_U32 reserved1                       : 2;
1187*437bfbebSnyanmisaka         RK_U32 cmplx_en                        : 1;
1188*437bfbebSnyanmisaka     } cmplx_opt_cfg;
1189*437bfbebSnyanmisaka 
1190*437bfbebSnyanmisaka     /* 0x00002040 reg2064 */
1191*437bfbebSnyanmisaka     struct {
1192*437bfbebSnyanmisaka         RK_U32 cmplx_thre_cst_best_mad_dep2         : 13;
1193*437bfbebSnyanmisaka         RK_U32 reserved                             : 3;
1194*437bfbebSnyanmisaka         RK_U32 cmplx_thre_cst_best_grdn_blk_dep0    : 11;
1195*437bfbebSnyanmisaka         RK_U32 reserved1                            : 5;
1196*437bfbebSnyanmisaka     } cmplx_bst_mad_thd;
1197*437bfbebSnyanmisaka 
1198*437bfbebSnyanmisaka     /* 0x00002044 reg2065 */
1199*437bfbebSnyanmisaka     struct {
1200*437bfbebSnyanmisaka         RK_U32 cmplx_thre_cst_best_grdn_blk_dep1    : 11;
1201*437bfbebSnyanmisaka         RK_U32 reserved                             : 5;
1202*437bfbebSnyanmisaka         RK_U32 cmplx_thre_cst_best_grdn_blk_dep2    : 11;
1203*437bfbebSnyanmisaka         RK_U32 reserved1                            : 5;
1204*437bfbebSnyanmisaka     } cmplx_bst_grdn_thd;
1205*437bfbebSnyanmisaka 
1206*437bfbebSnyanmisaka     /* 0x00002048 reg2066 */
1207*437bfbebSnyanmisaka     struct {
1208*437bfbebSnyanmisaka         RK_U32 line_en                                 : 1;
1209*437bfbebSnyanmisaka         RK_U32 line_thre_min_cst_best_grdn_blk_dep0    : 5;
1210*437bfbebSnyanmisaka         RK_U32 line_thre_min_cst_best_grdn_blk_dep1    : 8;
1211*437bfbebSnyanmisaka         RK_U32 line_thre_min_cst_best_grdn_blk_dep2    : 8;
1212*437bfbebSnyanmisaka         RK_U32 line_thre_ratio_best_grdn_blk_dep0      : 4;
1213*437bfbebSnyanmisaka         RK_U32 line_thre_ratio_best_grdn_blk_dep1      : 4;
1214*437bfbebSnyanmisaka         RK_U32 reserved                                : 2;
1215*437bfbebSnyanmisaka     } line_opt_cfg;
1216*437bfbebSnyanmisaka 
1217*437bfbebSnyanmisaka     /* 0x0000204c reg2067 */
1218*437bfbebSnyanmisaka     struct {
1219*437bfbebSnyanmisaka         RK_U32 line_thre_max_cst_best_grdn_blk_dep0    : 7;
1220*437bfbebSnyanmisaka         RK_U32 reserved                                : 1;
1221*437bfbebSnyanmisaka         RK_U32 line_thre_max_cst_best_grdn_blk_dep1    : 8;
1222*437bfbebSnyanmisaka         RK_U32 line_thre_max_cst_best_grdn_blk_dep2    : 8;
1223*437bfbebSnyanmisaka         RK_U32 reserved1                               : 8;
1224*437bfbebSnyanmisaka     } line_cst_bst_grdn;
1225*437bfbebSnyanmisaka 
1226*437bfbebSnyanmisaka     /* 0x00002050 reg2068 */
1227*437bfbebSnyanmisaka     struct {
1228*437bfbebSnyanmisaka         RK_U32 line_thre_qp               : 6;
1229*437bfbebSnyanmisaka         RK_U32 block_strength             : 3;
1230*437bfbebSnyanmisaka         RK_U32 block_thre_qp              : 6;
1231*437bfbebSnyanmisaka         RK_U32 cmplx_strength             : 3;
1232*437bfbebSnyanmisaka         RK_U32 cmplx_thre_qp              : 6;
1233*437bfbebSnyanmisaka         RK_U32 cmplx_thre_max_grdn_blk    : 6;
1234*437bfbebSnyanmisaka         RK_U32 reserved                   : 2;
1235*437bfbebSnyanmisaka     } subj_opt_dqp0;
1236*437bfbebSnyanmisaka 
1237*437bfbebSnyanmisaka     /* 0x00002054 reg2069 */
1238*437bfbebSnyanmisaka     struct {
1239*437bfbebSnyanmisaka         RK_U32 skin_thre_qp                     : 6;
1240*437bfbebSnyanmisaka         RK_U32 smear_frame_thre_qp              : 6;
1241*437bfbebSnyanmisaka         RK_U32 bndry_rdo_mode_intra_jcoef_d0    : 6;
1242*437bfbebSnyanmisaka         RK_U32 bndry_rdo_mode_intra_jcoef_d1    : 6;
1243*437bfbebSnyanmisaka         RK_U32 skin_thre_madp                   : 8;
1244*437bfbebSnyanmisaka     } subj_opt_dqp1;
1245*437bfbebSnyanmisaka 
1246*437bfbebSnyanmisaka     /* 0x00002058 reg2070 */
1247*437bfbebSnyanmisaka     struct {
1248*437bfbebSnyanmisaka         RK_U32 line_rdo_split_rcoef_d0    : 5;
1249*437bfbebSnyanmisaka         RK_U32 line_rdo_split_rcoef_d1    : 5;
1250*437bfbebSnyanmisaka         RK_U32 choose_cu32_split_jcoef    : 6;
1251*437bfbebSnyanmisaka         RK_U32 choose_cu16_split_jcoef    : 5;
1252*437bfbebSnyanmisaka         RK_U32 reserved                   : 11;
1253*437bfbebSnyanmisaka     } subj_opt_rdo_split;
1254*437bfbebSnyanmisaka 
1255*437bfbebSnyanmisaka     /* 0x0000205c reg2071 */
1256*437bfbebSnyanmisaka     struct {
1257*437bfbebSnyanmisaka         RK_U32 lid_grdn_blk_cu16_th       : 8;
1258*437bfbebSnyanmisaka         RK_U32 lid_rmd_intra_jcoef_ang    : 5;
1259*437bfbebSnyanmisaka         RK_U32 lid_rdo_intra_rcoef_ang    : 5;
1260*437bfbebSnyanmisaka         RK_U32 lid_rmd_intra_jcoef_dp     : 6;
1261*437bfbebSnyanmisaka         RK_U32 lid_rdo_intra_rcoef_dp     : 6;
1262*437bfbebSnyanmisaka         RK_U32 lid_en                     : 1;
1263*437bfbebSnyanmisaka         RK_U32 reserved                   : 1;
1264*437bfbebSnyanmisaka     } line_intra_dir_cfg;
1265*437bfbebSnyanmisaka 
1266*437bfbebSnyanmisaka     /* 0x00002060 reg2072 -  0x0000206c reg 2076*/
1267*437bfbebSnyanmisaka     rdo_b32_skip_par rdo_b32_skip;
1268*437bfbebSnyanmisaka 
1269*437bfbebSnyanmisaka     /* 0x00002070 reg2076 - 0x0000207c reg2079*/
1270*437bfbebSnyanmisaka     rdo_skip_par rdo_b16_skip;
1271*437bfbebSnyanmisaka 
1272*437bfbebSnyanmisaka     /* 0x00002080 reg2080 - 0x00002088 reg2082 */
1273*437bfbebSnyanmisaka     rdo_b32_noskip_par rdo_b32_inter;
1274*437bfbebSnyanmisaka 
1275*437bfbebSnyanmisaka     /* 0x0000208c reg2083 - 0x00002094 reg2085 */
1276*437bfbebSnyanmisaka     rdo_noskip_par rdo_b16_inter;
1277*437bfbebSnyanmisaka 
1278*437bfbebSnyanmisaka     /* 0x00002098 reg2086 - 0x000020a0 reg2087 */
1279*437bfbebSnyanmisaka     rdo_noskip_par rdo_b32_intra;
1280*437bfbebSnyanmisaka 
1281*437bfbebSnyanmisaka     /* 0x000020a4 reg2088 - 0x000020ac reg2091 */
1282*437bfbebSnyanmisaka     rdo_noskip_par rdo_b16_intra;
1283*437bfbebSnyanmisaka 
1284*437bfbebSnyanmisaka     /* 0x000020b0 reg2092 */
1285*437bfbebSnyanmisaka     struct {
1286*437bfbebSnyanmisaka         RK_U32 ref1_rmd_mode_lr_jcoef_d0    : 5;
1287*437bfbebSnyanmisaka         RK_U32 ref1_rmd_mode_lr_jcoef_d1    : 5;
1288*437bfbebSnyanmisaka         RK_U32 ref1_rdo_mode_lr_jcoef_d0    : 5;
1289*437bfbebSnyanmisaka         RK_U32 ref1_rdo_mode_lr_jcoef_d1    : 5;
1290*437bfbebSnyanmisaka         RK_U32 ref1_rmd_mv_lr_jcoef_d0      : 5;
1291*437bfbebSnyanmisaka         RK_U32 ref1_rmd_mv_lr_jcoef_d1      : 5;
1292*437bfbebSnyanmisaka         RK_U32 reserved                     : 2;
1293*437bfbebSnyanmisaka     } smear_ref1_cfg0;
1294*437bfbebSnyanmisaka 
1295*437bfbebSnyanmisaka     /* 0x000020b4 reg2093 */
1296*437bfbebSnyanmisaka     struct {
1297*437bfbebSnyanmisaka         RK_U32 ref1_rdo_inter_tu_res_joef_d0    : 5;
1298*437bfbebSnyanmisaka         RK_U32 ref1_rdo_inter_tu_res_joef_d1    : 5;
1299*437bfbebSnyanmisaka         RK_U32 ref1_rdoq_zero_mv_rcoef_d0       : 5;
1300*437bfbebSnyanmisaka         RK_U32 ref1_rdoq_zero_mv_rcoef_d1       : 5;
1301*437bfbebSnyanmisaka         RK_U32 ref1_rmd_inter_lr_jcoef_d0       : 5;
1302*437bfbebSnyanmisaka         RK_U32 ref1_rmd_inter_lr_jcoef_d1       : 5;
1303*437bfbebSnyanmisaka         RK_U32 reserved                         : 2;
1304*437bfbebSnyanmisaka     } smear_ref1_cfg1;
1305*437bfbebSnyanmisaka 
1306*437bfbebSnyanmisaka     /* 0x000020b8 reg2094 - 0x000020bc reg2095*/
1307*437bfbebSnyanmisaka     RK_U32 reserved_2094_2095[2];
1308*437bfbebSnyanmisaka 
1309*437bfbebSnyanmisaka     /* 0x000020c0 reg2096 */
1310*437bfbebSnyanmisaka     struct {
1311*437bfbebSnyanmisaka         RK_U32 thre_max_luma_dark        : 8;
1312*437bfbebSnyanmisaka         RK_U32 thre_min_luma_bright      : 8;
1313*437bfbebSnyanmisaka         RK_U32 thre_ratio_dark_bright    : 6;
1314*437bfbebSnyanmisaka         RK_U32 reserved                  : 2;
1315*437bfbebSnyanmisaka         RK_U32 thre_qp_dark_bright       : 6;
1316*437bfbebSnyanmisaka         RK_U32 reserved1                 : 1;
1317*437bfbebSnyanmisaka         RK_U32 dark_bright_en            : 1;
1318*437bfbebSnyanmisaka     } dark_brgt_opt_cfg;
1319*437bfbebSnyanmisaka 
1320*437bfbebSnyanmisaka     /* 0x000020c4 reg2097 */
1321*437bfbebSnyanmisaka     struct {
1322*437bfbebSnyanmisaka         RK_U32 madp_th_dep0_dark_bright    : 8;
1323*437bfbebSnyanmisaka         RK_U32 madp_th_dep1_dark_bright    : 8;
1324*437bfbebSnyanmisaka         RK_U32 madi_th_dep0_dark_bright    : 6;
1325*437bfbebSnyanmisaka         RK_U32 reserved                    : 2;
1326*437bfbebSnyanmisaka         RK_U32 madi_th_dep1_dark_bright    : 6;
1327*437bfbebSnyanmisaka         RK_U32 reserved1                   : 2;
1328*437bfbebSnyanmisaka     } dark_brgt_madi_thd;
1329*437bfbebSnyanmisaka 
1330*437bfbebSnyanmisaka     /* 0x000020c8 reg2098 */
1331*437bfbebSnyanmisaka     struct {
1332*437bfbebSnyanmisaka         RK_U32 dark_bright_inter_res_j_coef_wgt_dep0    : 8;
1333*437bfbebSnyanmisaka         RK_U32 dark_bright_inter_res_j_coef_wgt_dep1    : 8;
1334*437bfbebSnyanmisaka         RK_U32 dark_bright_intra_j_coef_wgt_dep0        : 8;
1335*437bfbebSnyanmisaka         RK_U32 dark_bright_intra_j_coef_wgt_dep1        : 8;
1336*437bfbebSnyanmisaka     } dark_brgt_wgt0;
1337*437bfbebSnyanmisaka 
1338*437bfbebSnyanmisaka     /* 0x000020cc reg2099 */
1339*437bfbebSnyanmisaka     struct {
1340*437bfbebSnyanmisaka         RK_U32 dark_bright_split_rcoef_d0    : 6;
1341*437bfbebSnyanmisaka         RK_U32 reserved                      : 2;
1342*437bfbebSnyanmisaka         RK_U32 dark_bright_split_rcoef_d1    : 6;
1343*437bfbebSnyanmisaka         RK_U32 reserved1                     : 18;
1344*437bfbebSnyanmisaka     } dark_brgt_wgt1;
1345*437bfbebSnyanmisaka 
1346*437bfbebSnyanmisaka     /* 0x000020d0 reg2100 */
1347*437bfbebSnyanmisaka     struct {
1348*437bfbebSnyanmisaka         RK_U32 cmplx_static_en               : 1;
1349*437bfbebSnyanmisaka         RK_U32 cmplx_static_lgt_chng_en      : 1;
1350*437bfbebSnyanmisaka         RK_U32 thre_qp_cmplx_static          : 6;
1351*437bfbebSnyanmisaka         RK_U32 madp_th0_dep0_cmplx_static    : 6;
1352*437bfbebSnyanmisaka         RK_U32 madp_th1_dep0_cmplx_static    : 8;
1353*437bfbebSnyanmisaka         RK_U32 madp_th2_dep0_cmplx_static    : 10;
1354*437bfbebSnyanmisaka     } cmplx_statc_cfg;
1355*437bfbebSnyanmisaka 
1356*437bfbebSnyanmisaka     /* 0x000020d4 reg2101 */
1357*437bfbebSnyanmisaka     struct {
1358*437bfbebSnyanmisaka         RK_U32 num_grdn_point_th1_dep0_cmplx_static    : 8;
1359*437bfbebSnyanmisaka         RK_U32 num_grdn_point_th2_dep0_cmplx_static    : 8;
1360*437bfbebSnyanmisaka         RK_U32 madi_th1_dep0_cmplx_static              : 6;
1361*437bfbebSnyanmisaka         RK_U32 reserved                                : 2;
1362*437bfbebSnyanmisaka         RK_U32 madi_th2_dep0_cmplx_static              : 6;
1363*437bfbebSnyanmisaka         RK_U32 reserved1                               : 2;
1364*437bfbebSnyanmisaka     } cmplx_statc_thd0;
1365*437bfbebSnyanmisaka 
1366*437bfbebSnyanmisaka     /* 0x000020d8 reg2102 */
1367*437bfbebSnyanmisaka     struct {
1368*437bfbebSnyanmisaka         RK_U32 madp_th0_dep1_cmplx_static           : 6;
1369*437bfbebSnyanmisaka         RK_U32 madp_th1_dep1_cmplx_static           : 8;
1370*437bfbebSnyanmisaka         RK_U32 madp_th2_dep1_cmplx_static           : 10;
1371*437bfbebSnyanmisaka         RK_U32 static_num_thre_dep1_cmplx_static    : 2;
1372*437bfbebSnyanmisaka         RK_U32 srch_rgn_mv_th_cmplx_static          : 5;
1373*437bfbebSnyanmisaka         RK_U32 reserved                             : 1;
1374*437bfbebSnyanmisaka     } cmplx_statc_thd1;
1375*437bfbebSnyanmisaka 
1376*437bfbebSnyanmisaka     /* 0x000020dc reg2103 */
1377*437bfbebSnyanmisaka     struct {
1378*437bfbebSnyanmisaka         RK_U32 num_grdn_point_th1_dep1_cmplx_static    : 6;
1379*437bfbebSnyanmisaka         RK_U32 num_grdn_point_th2_dep1_cmplx_static    : 6;
1380*437bfbebSnyanmisaka         RK_U32 madi_th1_dep1_cmplx_static              : 6;
1381*437bfbebSnyanmisaka         RK_U32 madi_th2_dep1_cmplx_static              : 6;
1382*437bfbebSnyanmisaka         RK_U32 num_cu16_th                : 3;
1383*437bfbebSnyanmisaka         RK_U32 frame_qp_en                : 1;
1384*437bfbebSnyanmisaka         RK_U32 ratio_light_madp_th        : 2;
1385*437bfbebSnyanmisaka         RK_U32 reserved                   : 2;
1386*437bfbebSnyanmisaka     } cmplx_statc_thd2;
1387*437bfbebSnyanmisaka 
1388*437bfbebSnyanmisaka     /* 0x000020e0 reg2104 */
1389*437bfbebSnyanmisaka     struct {
1390*437bfbebSnyanmisaka         RK_U32 inter_res_j_coef_wgt1_dep0    : 8;
1391*437bfbebSnyanmisaka         RK_U32 inter_res_j_coef_wgt2_dep0    : 8;
1392*437bfbebSnyanmisaka         RK_U32 inter_res_j_coef_wgt1_dep1    : 8;
1393*437bfbebSnyanmisaka         RK_U32 inter_res_j_coef_wgt2_dep1    : 8;
1394*437bfbebSnyanmisaka     } cmplx_statc_wgt0;
1395*437bfbebSnyanmisaka 
1396*437bfbebSnyanmisaka     /* 0x000020e4 reg2105 */
1397*437bfbebSnyanmisaka     struct {
1398*437bfbebSnyanmisaka         RK_U32 intra_j_coef_wgt1_dep0    : 8;
1399*437bfbebSnyanmisaka         RK_U32 intra_j_coef_wgt2_dep0    : 8;
1400*437bfbebSnyanmisaka         RK_U32 intra_j_coef_wgt1_dep1    : 8;
1401*437bfbebSnyanmisaka         RK_U32 intra_j_coef_wgt2_dep1    : 8;
1402*437bfbebSnyanmisaka     } cmplx_statc_wgt1;
1403*437bfbebSnyanmisaka 
1404*437bfbebSnyanmisaka     /* 0x000020e8 reg2106 */
1405*437bfbebSnyanmisaka     struct {
1406*437bfbebSnyanmisaka         RK_U32 split_rcoef_w1d0    : 6;
1407*437bfbebSnyanmisaka         RK_U32 split_rcoef_w1d1    : 6;
1408*437bfbebSnyanmisaka         RK_U32 split_rcoef_w2d0    : 6;
1409*437bfbebSnyanmisaka         RK_U32 split_rcoef_w2d1    : 6;
1410*437bfbebSnyanmisaka         RK_U32 reserved            : 8;
1411*437bfbebSnyanmisaka     } cmplx_statc_wgt2;
1412*437bfbebSnyanmisaka 
1413*437bfbebSnyanmisaka     /* 0x20ec - 0x20fc */
1414*437bfbebSnyanmisaka     RK_U32 reserved2107_2111[5];
1415*437bfbebSnyanmisaka 
1416*437bfbebSnyanmisaka     /* 0x00002100 reg2112 */
1417*437bfbebSnyanmisaka     struct {
1418*437bfbebSnyanmisaka         RK_U32 blur_low_madi_thd     : 7;
1419*437bfbebSnyanmisaka         RK_U32 reserved              : 1;
1420*437bfbebSnyanmisaka         RK_U32 blur_high_madi_thd    : 7;
1421*437bfbebSnyanmisaka         RK_U32 reserved1             : 1;
1422*437bfbebSnyanmisaka         RK_U32 blur_low_cnt_thd      : 4;
1423*437bfbebSnyanmisaka         RK_U32 blur_hight_cnt_thd    : 4;
1424*437bfbebSnyanmisaka         RK_U32 blur_sum_cnt_thd      : 4;
1425*437bfbebSnyanmisaka         RK_U32 anti_blur_en          : 1;
1426*437bfbebSnyanmisaka         RK_U32 scene_mode            : 1;
1427*437bfbebSnyanmisaka         RK_U32 reserved2             : 2;
1428*437bfbebSnyanmisaka     } subj_anti_blur_thd;
1429*437bfbebSnyanmisaka 
1430*437bfbebSnyanmisaka     /* 0x00002104 reg2113 */
1431*437bfbebSnyanmisaka     struct {
1432*437bfbebSnyanmisaka         RK_U32 blur_motion_thd           : 12;
1433*437bfbebSnyanmisaka         RK_U32 sao_ofst_thd_eo_luma      : 3;
1434*437bfbebSnyanmisaka         RK_U32 reserved                  : 1;
1435*437bfbebSnyanmisaka         RK_U32 sao_ofst_thd_bo_luma      : 3;
1436*437bfbebSnyanmisaka         RK_U32 reserved1                 : 1;
1437*437bfbebSnyanmisaka         RK_U32 sao_ofst_thd_eo_chroma    : 3;
1438*437bfbebSnyanmisaka         RK_U32 reserved2                 : 1;
1439*437bfbebSnyanmisaka         RK_U32 sao_ofst_thd_bo_chroma    : 3;
1440*437bfbebSnyanmisaka         RK_U32 reserved3                 : 5;
1441*437bfbebSnyanmisaka     } subj_anti_blur_sao;
1442*437bfbebSnyanmisaka 
1443*437bfbebSnyanmisaka     /* 0x00002108 reg2114 */
1444*437bfbebSnyanmisaka     struct {
1445*437bfbebSnyanmisaka         RK_U32 notmerge_ofst_dist_eo_wgt0    : 8;
1446*437bfbebSnyanmisaka         RK_U32 notmerge_ofst_dist_bo_wgt0    : 8;
1447*437bfbebSnyanmisaka         RK_U32 notmerge_ofst_dist_eo_wgt1    : 8;
1448*437bfbebSnyanmisaka         RK_U32 notmerge_ofst_dist_bo_wgt1    : 8;
1449*437bfbebSnyanmisaka     } subj_anti_blur_wgt0;
1450*437bfbebSnyanmisaka 
1451*437bfbebSnyanmisaka     /* 0x0000210c reg2115 */
1452*437bfbebSnyanmisaka     struct {
1453*437bfbebSnyanmisaka         RK_U32 notmerge_ofst_lambda_eo_wgt0     : 8;
1454*437bfbebSnyanmisaka         RK_U32 notmerge_ofst_lambda_bo_wgt0     : 8;
1455*437bfbebSnyanmisaka         RK_U32 notmerge_compare_dist_eo_wgt0    : 8;
1456*437bfbebSnyanmisaka         RK_U32 notmerge_compare_dist_bo_wgt0    : 8;
1457*437bfbebSnyanmisaka     } subj_anti_blur_wgt1;
1458*437bfbebSnyanmisaka 
1459*437bfbebSnyanmisaka     /* 0x00002110 reg2116 */
1460*437bfbebSnyanmisaka     struct {
1461*437bfbebSnyanmisaka         RK_U32 notmerge_compare_dist_eo_wgt1    : 8;
1462*437bfbebSnyanmisaka         RK_U32 notmerge_compare_dist_bo_wgt1    : 8;
1463*437bfbebSnyanmisaka         RK_U32 notmerge_compare_rate_eo_wgt0    : 8;
1464*437bfbebSnyanmisaka         RK_U32 notmerge_compare_rate_bo_wgt0    : 8;
1465*437bfbebSnyanmisaka     } subj_anti_blur_wgt2;
1466*437bfbebSnyanmisaka 
1467*437bfbebSnyanmisaka     /* 0x00002114 reg2117 */
1468*437bfbebSnyanmisaka     struct {
1469*437bfbebSnyanmisaka         RK_U32 sao_mode_compare_dist_eo_wgt0    : 8;
1470*437bfbebSnyanmisaka         RK_U32 sao_mode_compare_dist_bo_wgt0    : 8;
1471*437bfbebSnyanmisaka         RK_U32 merge_cost_dist_eo_wgt0          : 8;
1472*437bfbebSnyanmisaka         RK_U32 merge_cost_dist_bo_wgt0          : 8;
1473*437bfbebSnyanmisaka     } subj_anti_blur_wgt3;
1474*437bfbebSnyanmisaka 
1475*437bfbebSnyanmisaka     /* 0x00002118 reg2118 */
1476*437bfbebSnyanmisaka     struct {
1477*437bfbebSnyanmisaka         RK_U32 merge_cost_dist_eo_wgt1    : 8;
1478*437bfbebSnyanmisaka         RK_U32 merge_cost_dist_bo_wgt1    : 8;
1479*437bfbebSnyanmisaka         RK_U32 merge_cost_bit_eo_wgt0     : 8;
1480*437bfbebSnyanmisaka         RK_U32 merge_cost_bit_bo_wgt0     : 8;
1481*437bfbebSnyanmisaka     } subj_anti_blur_wgt4;
1482*437bfbebSnyanmisaka 
1483*437bfbebSnyanmisaka     /* 0x211c */
1484*437bfbebSnyanmisaka     RK_U32 reserved_2119;
1485*437bfbebSnyanmisaka 
1486*437bfbebSnyanmisaka     /* 0x00002120 reg2120 - 0x0000213c reg2127 */
1487*437bfbebSnyanmisaka     pre_cst_par preintra32_cst;
1488*437bfbebSnyanmisaka 
1489*437bfbebSnyanmisaka     /* 0x00002140 reg2128 - 0x0000215c reg2135 */
1490*437bfbebSnyanmisaka     pre_cst_par preintra16_cst;
1491*437bfbebSnyanmisaka 
1492*437bfbebSnyanmisaka     /* 0x00002160 reg2136 */
1493*437bfbebSnyanmisaka     struct {
1494*437bfbebSnyanmisaka         RK_U32 offset_thd                      : 4;
1495*437bfbebSnyanmisaka         RK_U32 offset_diff_thd                 : 4;
1496*437bfbebSnyanmisaka         RK_U32 weak_texture_offset_thd         : 3;
1497*437bfbebSnyanmisaka         RK_U32 weak_texture_offset_diff_thd    : 3;
1498*437bfbebSnyanmisaka         RK_U32 reserved                        : 18;
1499*437bfbebSnyanmisaka     } atr_thd_hevc;
1500*437bfbebSnyanmisaka } H265eVepu511Sqi;
1501*437bfbebSnyanmisaka 
1502*437bfbebSnyanmisaka /* class: scaling list  */
1503*437bfbebSnyanmisaka /* 0x00002200 reg2176- 0x00002c9c reg2855*/
1504*437bfbebSnyanmisaka typedef struct H265eVepu511SclCfg_t {
1505*437bfbebSnyanmisaka     /* 0x2200 - 0x2584 iq_scal_y8_intra_ac0 ~ iq_scal_list_dc1 only HEVC*/
1506*437bfbebSnyanmisaka     RK_U32 tu8_intra_y[16];
1507*437bfbebSnyanmisaka     RK_U32 tu8_intra_u[16];
1508*437bfbebSnyanmisaka     RK_U32 tu8_intra_v[16];
1509*437bfbebSnyanmisaka     RK_U32 tu8_inter_y[16];
1510*437bfbebSnyanmisaka     RK_U32 tu8_inter_u[16];
1511*437bfbebSnyanmisaka     RK_U32 tu8_inter_v[16];
1512*437bfbebSnyanmisaka     RK_U32 tu16_intra_y_ac[16];
1513*437bfbebSnyanmisaka     RK_U32 tu16_intra_u_ac[16];
1514*437bfbebSnyanmisaka     RK_U32 tu16_intra_v_ac[16];
1515*437bfbebSnyanmisaka     RK_U32 tu16_inter_y_ac[16];
1516*437bfbebSnyanmisaka     RK_U32 tu16_inter_u_ac[16];
1517*437bfbebSnyanmisaka     RK_U32 tu16_inter_v_ac[16];
1518*437bfbebSnyanmisaka     RK_U32 tu32_intra_y_ac[16];
1519*437bfbebSnyanmisaka     RK_U32 tu32_inter_y_ac[16];
1520*437bfbebSnyanmisaka 
1521*437bfbebSnyanmisaka     /* 0x2580 */
1522*437bfbebSnyanmisaka     struct {
1523*437bfbebSnyanmisaka         RK_U32 tu16_intra_y_dc  : 8;
1524*437bfbebSnyanmisaka         RK_U32 tu16_intra_u_dc  : 8;
1525*437bfbebSnyanmisaka         RK_U32 tu16_intra_v_dc  : 8;
1526*437bfbebSnyanmisaka         RK_U32 tu16_inter_y_dc  : 8;
1527*437bfbebSnyanmisaka     } tu_dc0;
1528*437bfbebSnyanmisaka 
1529*437bfbebSnyanmisaka     /* 0x2584 reg 2401*/
1530*437bfbebSnyanmisaka     struct {
1531*437bfbebSnyanmisaka         RK_U32 tu16_inter_u_dc  : 8;
1532*437bfbebSnyanmisaka         RK_U32 tu16_inter_v_dc  : 8;
1533*437bfbebSnyanmisaka         RK_U32 tu32_intra_y_dc  : 8;
1534*437bfbebSnyanmisaka         RK_U32 tu32_inter_y_dc  : 8;
1535*437bfbebSnyanmisaka     } tu_dc1;
1536*437bfbebSnyanmisaka 
1537*437bfbebSnyanmisaka     /* 0x2588 reg 2402 - 0x258c reg 2403*/
1538*437bfbebSnyanmisaka     RK_U32 reserved2402_2403[2];
1539*437bfbebSnyanmisaka 
1540*437bfbebSnyanmisaka     /* 0x2590 reg 2404 - 0x2c9c reg 2855*/
1541*437bfbebSnyanmisaka     RK_U32 q_y8_intra[32];
1542*437bfbebSnyanmisaka     RK_U32 q_u8_intra[32];
1543*437bfbebSnyanmisaka     RK_U32 q_v8_intra[32];
1544*437bfbebSnyanmisaka     RK_U32 q_y8_inter[32];
1545*437bfbebSnyanmisaka     RK_U32 q_u8_inter[32];
1546*437bfbebSnyanmisaka     RK_U32 q_v8_inter[32];
1547*437bfbebSnyanmisaka     RK_U32 q_y16_intra[32];
1548*437bfbebSnyanmisaka     RK_U32 q_u16_intra[32];
1549*437bfbebSnyanmisaka     RK_U32 q_v16_intra[32];
1550*437bfbebSnyanmisaka     RK_U32 q_y16_inter[32];
1551*437bfbebSnyanmisaka     RK_U32 q_u16_inter[32];
1552*437bfbebSnyanmisaka     RK_U32 q_v16_inter[32];
1553*437bfbebSnyanmisaka     RK_U32 q_y32_intra[32];
1554*437bfbebSnyanmisaka     RK_U32 q_y32_inter[32];
1555*437bfbebSnyanmisaka 
1556*437bfbebSnyanmisaka     RK_U32 q_list[4];
1557*437bfbebSnyanmisaka } H265eVepu511SclCfg;
1558*437bfbebSnyanmisaka 
1559*437bfbebSnyanmisaka typedef struct H265eV511RegSet_t {
1560*437bfbebSnyanmisaka     Vepu511ControlCfg         reg_ctl;
1561*437bfbebSnyanmisaka     H265eVepu511Frame         reg_frm;
1562*437bfbebSnyanmisaka     Vepu511RcRoi              reg_rc_roi;
1563*437bfbebSnyanmisaka     H265eVepu511Param         reg_param;
1564*437bfbebSnyanmisaka     H265eVepu511Sqi           reg_sqi;
1565*437bfbebSnyanmisaka     H265eVepu511SclCfg        reg_scl;
1566*437bfbebSnyanmisaka     Vepu511OsdRegs            reg_osd;
1567*437bfbebSnyanmisaka     Vepu511Dbg                reg_dbg;
1568*437bfbebSnyanmisaka } H265eV511RegSet;
1569*437bfbebSnyanmisaka 
1570*437bfbebSnyanmisaka typedef struct H265eV511StatusElem_t {
1571*437bfbebSnyanmisaka     RK_U32 hw_status;
1572*437bfbebSnyanmisaka     Vepu511Status st;
1573*437bfbebSnyanmisaka } H265eV511StatusElem;
1574*437bfbebSnyanmisaka 
1575*437bfbebSnyanmisaka #endif
1576