xref: /rockchip-linux_mpp/mpp/hal/rkenc/h265e/hal_h265e_vepu510_reg.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1*437bfbebSnyanmisaka /* SPDX-License-Identifier: Apache-2.0 */
2*437bfbebSnyanmisaka /*
3*437bfbebSnyanmisaka  * Copyright (c) 2024 Rockchip Electronics Co., Ltd.
4*437bfbebSnyanmisaka  */
5*437bfbebSnyanmisaka 
6*437bfbebSnyanmisaka #ifndef __HAL_H265E_VEPU510_REG_H__
7*437bfbebSnyanmisaka #define __HAL_H265E_VEPU510_REG_H__
8*437bfbebSnyanmisaka 
9*437bfbebSnyanmisaka #include "rk_type.h"
10*437bfbebSnyanmisaka #include "vepu510_common.h"
11*437bfbebSnyanmisaka 
12*437bfbebSnyanmisaka typedef struct PreCstPar_t {
13*437bfbebSnyanmisaka     struct {
14*437bfbebSnyanmisaka         RK_U32 madi_thd0    : 7;
15*437bfbebSnyanmisaka         RK_U32 reserved     : 1;
16*437bfbebSnyanmisaka         RK_U32 madi_thd1    : 7;
17*437bfbebSnyanmisaka         RK_U32 reserved1    : 1;
18*437bfbebSnyanmisaka         RK_U32 madi_thd2    : 7;
19*437bfbebSnyanmisaka         RK_U32 reserved2    : 1;
20*437bfbebSnyanmisaka         RK_U32 madi_thd3    : 7;
21*437bfbebSnyanmisaka         RK_U32 reserved3    : 1;
22*437bfbebSnyanmisaka     } cst_madi_thd0;
23*437bfbebSnyanmisaka 
24*437bfbebSnyanmisaka     /* 0x000020c4 reg2097 */
25*437bfbebSnyanmisaka     struct {
26*437bfbebSnyanmisaka         RK_U32 madi_thd4    : 7;
27*437bfbebSnyanmisaka         RK_U32 reserved     : 1;
28*437bfbebSnyanmisaka         RK_U32 madi_thd5    : 7;
29*437bfbebSnyanmisaka         RK_U32 reserved1    : 1;
30*437bfbebSnyanmisaka         RK_U32 madi_thd6    : 7;
31*437bfbebSnyanmisaka         RK_U32 reserved2    : 1;
32*437bfbebSnyanmisaka         RK_U32 madi_thd7    : 7;
33*437bfbebSnyanmisaka         RK_U32 reserved3    : 1;
34*437bfbebSnyanmisaka     } cst_madi_thd1;
35*437bfbebSnyanmisaka 
36*437bfbebSnyanmisaka     /* 0x000020c8 reg2098 */
37*437bfbebSnyanmisaka     struct {
38*437bfbebSnyanmisaka         RK_U32 madi_thd8    : 7;
39*437bfbebSnyanmisaka         RK_U32 reserved     : 1;
40*437bfbebSnyanmisaka         RK_U32 madi_thd9    : 7;
41*437bfbebSnyanmisaka         RK_U32 reserved1    : 1;
42*437bfbebSnyanmisaka         RK_U32 madi_thd10   : 7;
43*437bfbebSnyanmisaka         RK_U32 reserved2    : 1;
44*437bfbebSnyanmisaka         RK_U32 madi_thd11   : 7;
45*437bfbebSnyanmisaka         RK_U32 reserved3    : 1;
46*437bfbebSnyanmisaka     } cst_madi_thd2;
47*437bfbebSnyanmisaka 
48*437bfbebSnyanmisaka     /* 0x000020cc reg2099 */
49*437bfbebSnyanmisaka     struct {
50*437bfbebSnyanmisaka         RK_U32 madi_thd12   : 7;
51*437bfbebSnyanmisaka         RK_U32 reserved     : 1;
52*437bfbebSnyanmisaka         RK_U32 madi_thd13   : 7;
53*437bfbebSnyanmisaka         RK_U32 reserved1    : 1;
54*437bfbebSnyanmisaka         RK_U32 mode_th      : 3;
55*437bfbebSnyanmisaka         RK_U32 reserved2    : 1;
56*437bfbebSnyanmisaka         RK_U32 qp_thd       : 6;
57*437bfbebSnyanmisaka         RK_U32 reserved3    : 6;
58*437bfbebSnyanmisaka     } cst_madi_thd3;
59*437bfbebSnyanmisaka 
60*437bfbebSnyanmisaka     /* 0x000020d0 reg2100 */
61*437bfbebSnyanmisaka     struct {
62*437bfbebSnyanmisaka         RK_U32 wgt0    : 8;
63*437bfbebSnyanmisaka         RK_U32 wgt1    : 8;
64*437bfbebSnyanmisaka         RK_U32 wgt2    : 8;
65*437bfbebSnyanmisaka         RK_U32 wgt3    : 8;
66*437bfbebSnyanmisaka     } cst_wgt0;
67*437bfbebSnyanmisaka 
68*437bfbebSnyanmisaka     /* 0x000020d4 reg2101 */
69*437bfbebSnyanmisaka     struct {
70*437bfbebSnyanmisaka         RK_U32 wgt4    : 8;
71*437bfbebSnyanmisaka         RK_U32 wgt5    : 8;
72*437bfbebSnyanmisaka         RK_U32 wgt6    : 8;
73*437bfbebSnyanmisaka         RK_U32 wgt7    : 8;
74*437bfbebSnyanmisaka     } cst_wgt1;
75*437bfbebSnyanmisaka 
76*437bfbebSnyanmisaka     /* 0x000020d8 reg2102 */
77*437bfbebSnyanmisaka     struct {
78*437bfbebSnyanmisaka         RK_U32 wgt8     : 8;
79*437bfbebSnyanmisaka         RK_U32 wgt9     : 8;
80*437bfbebSnyanmisaka         RK_U32 wgt10    : 8;
81*437bfbebSnyanmisaka         RK_U32 wgt11    : 8;
82*437bfbebSnyanmisaka     } cst_wgt2;
83*437bfbebSnyanmisaka 
84*437bfbebSnyanmisaka     /* 0x000020dc reg2103 */
85*437bfbebSnyanmisaka     struct {
86*437bfbebSnyanmisaka         RK_U32 wgt12            : 8;
87*437bfbebSnyanmisaka         RK_U32 wgt13            : 8;
88*437bfbebSnyanmisaka         RK_U32 wgt14            : 8;
89*437bfbebSnyanmisaka         RK_U32 lambda_mv_bit_0  : 3;
90*437bfbebSnyanmisaka         RK_U32 reserved         : 1;
91*437bfbebSnyanmisaka         RK_U32 lambda_mv_bit_1  : 3;
92*437bfbebSnyanmisaka         RK_U32 anti_strp_e      : 1;
93*437bfbebSnyanmisaka     } cst_wgt3;
94*437bfbebSnyanmisaka } pre_cst_par;
95*437bfbebSnyanmisaka 
96*437bfbebSnyanmisaka /* class: buffer/video syntax */
97*437bfbebSnyanmisaka /* 0x00000270 reg156 - 0x000003f4 reg253*/
98*437bfbebSnyanmisaka typedef struct H265eVepu510Frame_t {
99*437bfbebSnyanmisaka     Vepu510FrmCommon    common;
100*437bfbebSnyanmisaka 
101*437bfbebSnyanmisaka     /* 0x000003a0 reg232 */
102*437bfbebSnyanmisaka     struct {
103*437bfbebSnyanmisaka         RK_U32 ltm_col                        : 1;
104*437bfbebSnyanmisaka         RK_U32 ltm_idx0l0                     : 1;
105*437bfbebSnyanmisaka         RK_U32 chrm_spcl                      : 1;
106*437bfbebSnyanmisaka         RK_U32 cu_inter_e                     : 12;
107*437bfbebSnyanmisaka         RK_U32 reserved                       : 8;
108*437bfbebSnyanmisaka         RK_U32 ccwa_e                         : 1;
109*437bfbebSnyanmisaka         RK_U32 scl_lst_sel                    : 2;
110*437bfbebSnyanmisaka         RK_U32 lambda_qp_use_avg_cu16_flag    : 1;
111*437bfbebSnyanmisaka         RK_U32 yuvskip_calc_en                : 1;
112*437bfbebSnyanmisaka         RK_U32 atf_e                          : 1;
113*437bfbebSnyanmisaka         RK_U32 atr_e                          : 1;
114*437bfbebSnyanmisaka         RK_U32 reserved1                      : 2;
115*437bfbebSnyanmisaka     } rdo_cfg;
116*437bfbebSnyanmisaka 
117*437bfbebSnyanmisaka     /* 0x000003a4 reg233 */
118*437bfbebSnyanmisaka     struct {
119*437bfbebSnyanmisaka         RK_U32 rdo_mark_mode    : 9;
120*437bfbebSnyanmisaka         RK_U32 reserved         : 23;
121*437bfbebSnyanmisaka     } iprd_csts;
122*437bfbebSnyanmisaka 
123*437bfbebSnyanmisaka     /* 0x3a8 - 0x3ac */
124*437bfbebSnyanmisaka     RK_U32 reserved234_235[2];
125*437bfbebSnyanmisaka 
126*437bfbebSnyanmisaka     /* 0x000003b0 reg236 */
127*437bfbebSnyanmisaka     struct {
128*437bfbebSnyanmisaka         RK_U32 nal_unit_type    : 6;
129*437bfbebSnyanmisaka         RK_U32 reserved         : 26;
130*437bfbebSnyanmisaka     } synt_nal;
131*437bfbebSnyanmisaka 
132*437bfbebSnyanmisaka     /* 0x000003b4 reg237 */
133*437bfbebSnyanmisaka     struct {
134*437bfbebSnyanmisaka         RK_U32 smpl_adpt_ofst_e    : 1;
135*437bfbebSnyanmisaka         RK_U32 num_st_ref_pic      : 7;
136*437bfbebSnyanmisaka         RK_U32 lt_ref_pic_prsnt    : 1;
137*437bfbebSnyanmisaka         RK_U32 num_lt_ref_pic      : 6;
138*437bfbebSnyanmisaka         RK_U32 tmpl_mvp_e          : 1;
139*437bfbebSnyanmisaka         RK_U32 log2_max_poc_lsb    : 4;
140*437bfbebSnyanmisaka         RK_U32 strg_intra_smth     : 1;
141*437bfbebSnyanmisaka         RK_U32 reserved            : 11;
142*437bfbebSnyanmisaka     } synt_sps;
143*437bfbebSnyanmisaka 
144*437bfbebSnyanmisaka     /* 0x000003b8 reg238 */
145*437bfbebSnyanmisaka     struct {
146*437bfbebSnyanmisaka         RK_U32 dpdnt_sli_seg_en       : 1;
147*437bfbebSnyanmisaka         RK_U32 out_flg_prsnt_flg      : 1;
148*437bfbebSnyanmisaka         RK_U32 num_extr_sli_hdr       : 3;
149*437bfbebSnyanmisaka         RK_U32 sgn_dat_hid_en         : 1;
150*437bfbebSnyanmisaka         RK_U32 cbc_init_prsnt_flg     : 1;
151*437bfbebSnyanmisaka         RK_U32 pic_init_qp            : 6;
152*437bfbebSnyanmisaka         RK_U32 cu_qp_dlt_en           : 1;
153*437bfbebSnyanmisaka         RK_U32 chrm_qp_ofst_prsn      : 1;
154*437bfbebSnyanmisaka         RK_U32 lp_fltr_acrs_sli       : 1;
155*437bfbebSnyanmisaka         RK_U32 dblk_fltr_ovrd_en      : 1;
156*437bfbebSnyanmisaka         RK_U32 lst_mdfy_prsnt_flg     : 1;
157*437bfbebSnyanmisaka         RK_U32 sli_seg_hdr_extn       : 1;
158*437bfbebSnyanmisaka         RK_U32 cu_qp_dlt_depth        : 2;
159*437bfbebSnyanmisaka         RK_U32 lpf_fltr_acrs_til      : 1;
160*437bfbebSnyanmisaka         RK_U32 csip_flag              : 1;
161*437bfbebSnyanmisaka         RK_U32 reserved               : 9;
162*437bfbebSnyanmisaka     } synt_pps;
163*437bfbebSnyanmisaka 
164*437bfbebSnyanmisaka     /* 0x000003bc reg239 */
165*437bfbebSnyanmisaka     struct {
166*437bfbebSnyanmisaka         RK_U32 cbc_init_flg           : 1;
167*437bfbebSnyanmisaka         RK_U32 mvd_l1_zero_flg        : 1;
168*437bfbebSnyanmisaka         RK_U32 reserved               : 3;
169*437bfbebSnyanmisaka         RK_U32 ref_pic_lst_mdf_l0     : 1;
170*437bfbebSnyanmisaka         RK_U32 num_refidx_l1_act      : 2;
171*437bfbebSnyanmisaka         RK_U32 num_refidx_l0_act      : 2;
172*437bfbebSnyanmisaka         RK_U32 num_refidx_act_ovrd    : 1;
173*437bfbebSnyanmisaka         RK_U32 sli_sao_chrm_flg       : 1;
174*437bfbebSnyanmisaka         RK_U32 sli_sao_luma_flg       : 1;
175*437bfbebSnyanmisaka         RK_U32 sli_tmprl_mvp_e        : 1;
176*437bfbebSnyanmisaka         RK_U32 pic_out_flg            : 1;
177*437bfbebSnyanmisaka         RK_U32 sli_type               : 2;
178*437bfbebSnyanmisaka         RK_U32 sli_rsrv_flg           : 7;
179*437bfbebSnyanmisaka         RK_U32 dpdnt_sli_seg_flg      : 1;
180*437bfbebSnyanmisaka         RK_U32 sli_pps_id             : 6;
181*437bfbebSnyanmisaka         RK_U32 no_out_pri_pic         : 1;
182*437bfbebSnyanmisaka     } synt_sli0;
183*437bfbebSnyanmisaka 
184*437bfbebSnyanmisaka     /* 0x000003c0 reg240 */
185*437bfbebSnyanmisaka     struct {
186*437bfbebSnyanmisaka         RK_U32 sp_tc_ofst_div2         : 4;
187*437bfbebSnyanmisaka         RK_U32 sp_beta_ofst_div2       : 4;
188*437bfbebSnyanmisaka         RK_U32 sli_lp_fltr_acrs_sli    : 1;
189*437bfbebSnyanmisaka         RK_U32 sp_dblk_fltr_dis        : 1;
190*437bfbebSnyanmisaka         RK_U32 dblk_fltr_ovrd_flg      : 1;
191*437bfbebSnyanmisaka         RK_U32 sli_cb_qp_ofst          : 5;
192*437bfbebSnyanmisaka         RK_U32 sli_qp                  : 6;
193*437bfbebSnyanmisaka         RK_U32 max_mrg_cnd             : 2;
194*437bfbebSnyanmisaka         RK_U32 reserved                : 1;
195*437bfbebSnyanmisaka         RK_U32 col_ref_idx             : 1;
196*437bfbebSnyanmisaka         RK_U32 col_frm_l0_flg          : 1;
197*437bfbebSnyanmisaka         RK_U32 lst_entry_l0            : 4;
198*437bfbebSnyanmisaka         RK_U32 reserved1               : 1;
199*437bfbebSnyanmisaka     } synt_sli1;
200*437bfbebSnyanmisaka 
201*437bfbebSnyanmisaka     /* 0x000003c4 reg241 */
202*437bfbebSnyanmisaka     struct {
203*437bfbebSnyanmisaka         RK_U32 sli_poc_lsb        : 16;
204*437bfbebSnyanmisaka         RK_U32 sli_hdr_ext_len    : 9;
205*437bfbebSnyanmisaka         RK_U32 reserved           : 7;
206*437bfbebSnyanmisaka     } synt_sli2;
207*437bfbebSnyanmisaka 
208*437bfbebSnyanmisaka     /* 0x000003c8 reg242 */
209*437bfbebSnyanmisaka     struct {
210*437bfbebSnyanmisaka         RK_U32 st_ref_pic_flg    : 1;
211*437bfbebSnyanmisaka         RK_U32 poc_lsb_lt0       : 16;
212*437bfbebSnyanmisaka         RK_U32 lt_idx_sps        : 5;
213*437bfbebSnyanmisaka         RK_U32 num_lt_pic        : 2;
214*437bfbebSnyanmisaka         RK_U32 st_ref_pic_idx    : 6;
215*437bfbebSnyanmisaka         RK_U32 num_lt_sps        : 2;
216*437bfbebSnyanmisaka     } synt_refm0;
217*437bfbebSnyanmisaka 
218*437bfbebSnyanmisaka     /* 0x000003cc reg243 */
219*437bfbebSnyanmisaka     struct {
220*437bfbebSnyanmisaka         RK_U32 used_by_s0_flg        : 4;
221*437bfbebSnyanmisaka         RK_U32 num_pos_pic           : 1;
222*437bfbebSnyanmisaka         RK_U32 num_negative_pics     : 5;
223*437bfbebSnyanmisaka         RK_U32 dlt_poc_msb_cycl0     : 16;
224*437bfbebSnyanmisaka         RK_U32 dlt_poc_msb_prsnt0    : 1;
225*437bfbebSnyanmisaka         RK_U32 dlt_poc_msb_prsnt1    : 1;
226*437bfbebSnyanmisaka         RK_U32 dlt_poc_msb_prsnt2    : 1;
227*437bfbebSnyanmisaka         RK_U32 used_by_lt_flg0       : 1;
228*437bfbebSnyanmisaka         RK_U32 used_by_lt_flg1       : 1;
229*437bfbebSnyanmisaka         RK_U32 used_by_lt_flg2       : 1;
230*437bfbebSnyanmisaka     } synt_refm1;
231*437bfbebSnyanmisaka 
232*437bfbebSnyanmisaka     /* 0x000003d0 reg244 */
233*437bfbebSnyanmisaka     struct {
234*437bfbebSnyanmisaka         RK_U32 dlt_poc_s0_m10    : 16;
235*437bfbebSnyanmisaka         RK_U32 dlt_poc_s0_m11    : 16;
236*437bfbebSnyanmisaka     } synt_refm2;
237*437bfbebSnyanmisaka 
238*437bfbebSnyanmisaka     /* 0x000003d4 reg245 */
239*437bfbebSnyanmisaka     struct {
240*437bfbebSnyanmisaka         RK_U32 dlt_poc_s0_m12    : 16;
241*437bfbebSnyanmisaka         RK_U32 dlt_poc_s0_m13    : 16;
242*437bfbebSnyanmisaka     } synt_refm3;
243*437bfbebSnyanmisaka 
244*437bfbebSnyanmisaka     /* 0x000003d8 reg246 */
245*437bfbebSnyanmisaka     struct {
246*437bfbebSnyanmisaka         RK_U32 poc_lsb_lt1    : 16;
247*437bfbebSnyanmisaka         RK_U32 poc_lsb_lt2    : 16;
248*437bfbebSnyanmisaka     } synt_long_refm0;
249*437bfbebSnyanmisaka 
250*437bfbebSnyanmisaka     /* 0x000003dc reg247 */
251*437bfbebSnyanmisaka     struct {
252*437bfbebSnyanmisaka         RK_U32 dlt_poc_msb_cycl1    : 16;
253*437bfbebSnyanmisaka         RK_U32 dlt_poc_msb_cycl2    : 16;
254*437bfbebSnyanmisaka     } synt_long_refm1;
255*437bfbebSnyanmisaka 
256*437bfbebSnyanmisaka     struct {
257*437bfbebSnyanmisaka         RK_U32 sao_lambda_multi    : 3;
258*437bfbebSnyanmisaka         RK_U32 reserved            : 29;
259*437bfbebSnyanmisaka     } sao_cfg;
260*437bfbebSnyanmisaka 
261*437bfbebSnyanmisaka     /* 0x3e4 - 0x3ec */
262*437bfbebSnyanmisaka     RK_U32 reserved249_251[3];
263*437bfbebSnyanmisaka 
264*437bfbebSnyanmisaka     /* 0x000003f0 reg252 */
265*437bfbebSnyanmisaka     struct {
266*437bfbebSnyanmisaka         RK_U32 tile_w_m1    : 9;
267*437bfbebSnyanmisaka         RK_U32 reserved     : 7;
268*437bfbebSnyanmisaka         RK_U32 tile_h_m1    : 9;
269*437bfbebSnyanmisaka         RK_U32 reserved1    : 6;
270*437bfbebSnyanmisaka         RK_U32 tile_en      : 1;
271*437bfbebSnyanmisaka     } tile_cfg;
272*437bfbebSnyanmisaka 
273*437bfbebSnyanmisaka     /* 0x000003f4 reg253 */
274*437bfbebSnyanmisaka     struct {
275*437bfbebSnyanmisaka         RK_U32 tile_x       : 9;
276*437bfbebSnyanmisaka         RK_U32 reserved     : 7;
277*437bfbebSnyanmisaka         RK_U32 tile_y       : 9;
278*437bfbebSnyanmisaka         RK_U32 reserved1    : 7;
279*437bfbebSnyanmisaka     } tile_pos_hevc;
280*437bfbebSnyanmisaka } H265eVepu510Frame;
281*437bfbebSnyanmisaka 
282*437bfbebSnyanmisaka /* class: param */
283*437bfbebSnyanmisaka /* 0x00001700 reg1472 - 0x000019cc reg1651 */
284*437bfbebSnyanmisaka typedef struct H265eVepu510Param_t {
285*437bfbebSnyanmisaka     /* 0x00001700 reg1472 - 0x0000172c reg1483*/
286*437bfbebSnyanmisaka     RK_U32 reserved_1472_1483[12];
287*437bfbebSnyanmisaka 
288*437bfbebSnyanmisaka     /* 0x00001730 reg1484 */
289*437bfbebSnyanmisaka     struct {
290*437bfbebSnyanmisaka         RK_U32    qnt_f_bias_i  : 10;
291*437bfbebSnyanmisaka         RK_U32    qnt_f_bias_p  : 10;
292*437bfbebSnyanmisaka         RK_U32    reserve       : 12;
293*437bfbebSnyanmisaka     } qnt_bias_comb;
294*437bfbebSnyanmisaka 
295*437bfbebSnyanmisaka     /* 0x00001734 reg1485 - 0x0000175c reg1495*/
296*437bfbebSnyanmisaka     RK_U32 reserved1485_1495[11];
297*437bfbebSnyanmisaka 
298*437bfbebSnyanmisaka     /* 0x00001760 reg1496 */
299*437bfbebSnyanmisaka     struct {
300*437bfbebSnyanmisaka         RK_U32 cime_pmv_num      : 1;
301*437bfbebSnyanmisaka         RK_U32 cime_fuse         : 1;
302*437bfbebSnyanmisaka         RK_U32 itp_mode          : 1;
303*437bfbebSnyanmisaka         RK_U32 reserved          : 1;
304*437bfbebSnyanmisaka         RK_U32 move_lambda       : 4;
305*437bfbebSnyanmisaka         RK_U32 rime_lvl_mrg      : 2;
306*437bfbebSnyanmisaka         RK_U32 rime_prelvl_en    : 2;
307*437bfbebSnyanmisaka         RK_U32 rime_prersu_en    : 3;
308*437bfbebSnyanmisaka         RK_U32 reserved1         : 17;
309*437bfbebSnyanmisaka     } me_sqi_comb;
310*437bfbebSnyanmisaka 
311*437bfbebSnyanmisaka     /* 0x00001764 reg1497 */
312*437bfbebSnyanmisaka     struct {
313*437bfbebSnyanmisaka         RK_U32 cime_mvd_th0    : 9;
314*437bfbebSnyanmisaka         RK_U32 reserved        : 1;
315*437bfbebSnyanmisaka         RK_U32 cime_mvd_th1    : 9;
316*437bfbebSnyanmisaka         RK_U32 reserved1       : 1;
317*437bfbebSnyanmisaka         RK_U32 cime_mvd_th2    : 9;
318*437bfbebSnyanmisaka         RK_U32 reserved2       : 3;
319*437bfbebSnyanmisaka     }  cime_mvd_th_comb;
320*437bfbebSnyanmisaka 
321*437bfbebSnyanmisaka     /* 0x00001768 reg1498 */
322*437bfbebSnyanmisaka     struct {
323*437bfbebSnyanmisaka         RK_U32 cime_madp_th    : 12;
324*437bfbebSnyanmisaka         RK_U32 reserved        : 20;
325*437bfbebSnyanmisaka     } cime_madp_th_comb;
326*437bfbebSnyanmisaka 
327*437bfbebSnyanmisaka     /* 0x0000176c reg1499 */
328*437bfbebSnyanmisaka     struct {
329*437bfbebSnyanmisaka         RK_U32 cime_multi0    : 8;
330*437bfbebSnyanmisaka         RK_U32 cime_multi1    : 8;
331*437bfbebSnyanmisaka         RK_U32 cime_multi2    : 8;
332*437bfbebSnyanmisaka         RK_U32 cime_multi3    : 8;
333*437bfbebSnyanmisaka     } cime_multi_comb;
334*437bfbebSnyanmisaka 
335*437bfbebSnyanmisaka     /* 0x00001770 reg1500 */
336*437bfbebSnyanmisaka     struct {
337*437bfbebSnyanmisaka         RK_U32 rime_mvd_th0    : 3;
338*437bfbebSnyanmisaka         RK_U32 reserved        : 1;
339*437bfbebSnyanmisaka         RK_U32 rime_mvd_th1    : 3;
340*437bfbebSnyanmisaka         RK_U32 reserved1       : 9;
341*437bfbebSnyanmisaka         RK_U32 fme_madp_th     : 12;
342*437bfbebSnyanmisaka         RK_U32 reserved2       : 4;
343*437bfbebSnyanmisaka     } rime_mvd_th_comb;
344*437bfbebSnyanmisaka 
345*437bfbebSnyanmisaka     /* 0x00001774 reg1501 */
346*437bfbebSnyanmisaka     struct {
347*437bfbebSnyanmisaka         RK_U32 rime_madp_th0    : 12;
348*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
349*437bfbebSnyanmisaka         RK_U32 rime_madp_th1    : 12;
350*437bfbebSnyanmisaka         RK_U32 reserved1        : 4;
351*437bfbebSnyanmisaka     } rime_madp_th_comb;
352*437bfbebSnyanmisaka 
353*437bfbebSnyanmisaka     /* 0x00001778 reg1502 */
354*437bfbebSnyanmisaka     struct {
355*437bfbebSnyanmisaka         RK_U32 rime_multi0    : 10;
356*437bfbebSnyanmisaka         RK_U32 rime_multi1    : 10;
357*437bfbebSnyanmisaka         RK_U32 rime_multi2    : 10;
358*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
359*437bfbebSnyanmisaka     } rime_multi_comb;
360*437bfbebSnyanmisaka 
361*437bfbebSnyanmisaka     /* 0x0000177c reg1503 */
362*437bfbebSnyanmisaka     struct {
363*437bfbebSnyanmisaka         RK_U32 cmv_th0     : 8;
364*437bfbebSnyanmisaka         RK_U32 cmv_th1     : 8;
365*437bfbebSnyanmisaka         RK_U32 cmv_th2     : 8;
366*437bfbebSnyanmisaka         RK_U32 reserved    : 8;
367*437bfbebSnyanmisaka     } cmv_st_th_comb;
368*437bfbebSnyanmisaka 
369*437bfbebSnyanmisaka     /* 0x1780 - 0x17fc */
370*437bfbebSnyanmisaka     RK_U32 reserved1504_1535[32];
371*437bfbebSnyanmisaka 
372*437bfbebSnyanmisaka     /* 0x00001800 reg1536 - 0x000018cc reg1587*/
373*437bfbebSnyanmisaka     RK_U32 pprd_lamb_satd_0_51[52];
374*437bfbebSnyanmisaka 
375*437bfbebSnyanmisaka     /* 0x000018d0 reg1588 */
376*437bfbebSnyanmisaka     struct {
377*437bfbebSnyanmisaka         RK_U32 lambda_satd_offset    : 5;
378*437bfbebSnyanmisaka         RK_U32 reserved              : 27;
379*437bfbebSnyanmisaka     } iprd_lamb_satd_ofst;
380*437bfbebSnyanmisaka 
381*437bfbebSnyanmisaka     /* 0x18d4 - 0x18fc */
382*437bfbebSnyanmisaka     RK_U32 reserved1589_1599[11];
383*437bfbebSnyanmisaka 
384*437bfbebSnyanmisaka     /* 0x00001900 reg1600 - 0x000019cc reg1651*/
385*437bfbebSnyanmisaka     RK_U32 rdo_wgta_qp_grpa_0_51[52];
386*437bfbebSnyanmisaka } H265eVepu510Param;
387*437bfbebSnyanmisaka 
388*437bfbebSnyanmisaka /* class: rdo/q_i */
389*437bfbebSnyanmisaka /* 0x00002000 reg2048 - 0x000020fc reg2111 */
390*437bfbebSnyanmisaka typedef struct H265eVepu510SqiCfg_t {
391*437bfbebSnyanmisaka     /* 0x00002000 reg2048 */
392*437bfbebSnyanmisaka     struct {
393*437bfbebSnyanmisaka         RK_U32 subj_opt_en            : 1;
394*437bfbebSnyanmisaka         RK_U32 subj_opt_strength      : 3;
395*437bfbebSnyanmisaka         RK_U32 aq_subj_en             : 1;
396*437bfbebSnyanmisaka         RK_U32 aq_subj_strength       : 3;
397*437bfbebSnyanmisaka         RK_U32 reserved               : 4;
398*437bfbebSnyanmisaka         RK_U32 thre_sum_grdn_point    : 20;
399*437bfbebSnyanmisaka     } subj_opt_cfg;
400*437bfbebSnyanmisaka 
401*437bfbebSnyanmisaka     /* 0x00002004 reg2049 */
402*437bfbebSnyanmisaka     struct {
403*437bfbebSnyanmisaka         RK_U32 common_thre_num_grdn_point_dep0    : 8;
404*437bfbebSnyanmisaka         RK_U32 common_thre_num_grdn_point_dep1    : 8;
405*437bfbebSnyanmisaka         RK_U32 common_thre_num_grdn_point_dep2    : 8;
406*437bfbebSnyanmisaka         RK_U32 reserved                           : 8;
407*437bfbebSnyanmisaka     } subj_opt_dpth_thd;
408*437bfbebSnyanmisaka 
409*437bfbebSnyanmisaka     /* 0x00002008 reg2050 */
410*437bfbebSnyanmisaka     struct {
411*437bfbebSnyanmisaka         RK_U32 common_rdo_cu_intra_r_coef_dep0    : 8;
412*437bfbebSnyanmisaka         RK_U32 common_rdo_cu_intra_r_coef_dep1    : 8;
413*437bfbebSnyanmisaka         RK_U32 reserved                           : 16;
414*437bfbebSnyanmisaka     } subj_opt_inrar_coef;
415*437bfbebSnyanmisaka 
416*437bfbebSnyanmisaka     /* 0x200c */
417*437bfbebSnyanmisaka     RK_U32 reserved_2051;
418*437bfbebSnyanmisaka 
419*437bfbebSnyanmisaka     /* 0x00002010 reg2052 */
420*437bfbebSnyanmisaka     struct {
421*437bfbebSnyanmisaka         RK_U32 anti_smear_en                  : 1;
422*437bfbebSnyanmisaka         RK_U32 frm_static                     : 1;
423*437bfbebSnyanmisaka         RK_U32 smear_stor_en                  : 1;
424*437bfbebSnyanmisaka         RK_U32 smear_load_en                  : 1;
425*437bfbebSnyanmisaka         RK_U32 smear_strength                 : 3;
426*437bfbebSnyanmisaka         RK_U32 reserved                       : 1;
427*437bfbebSnyanmisaka         RK_U32 thre_mv_inconfor_cime          : 4;
428*437bfbebSnyanmisaka         RK_U32 thre_mv_confor_cime            : 2;
429*437bfbebSnyanmisaka         RK_U32 thre_mv_confor_cime_gmv        : 2;
430*437bfbebSnyanmisaka         RK_U32 thre_mv_inconfor_cime_gmv      : 4;
431*437bfbebSnyanmisaka         RK_U32 thre_num_mv_confor_cime        : 2;
432*437bfbebSnyanmisaka         RK_U32 thre_num_mv_confor_cime_gmv    : 2;
433*437bfbebSnyanmisaka         RK_U32 reserved1                      : 8;
434*437bfbebSnyanmisaka     } smear_opt_cfg0;
435*437bfbebSnyanmisaka 
436*437bfbebSnyanmisaka     /* 0x00002014 reg2053 */
437*437bfbebSnyanmisaka     struct {
438*437bfbebSnyanmisaka         RK_U32 dist0_frm_avg               : 14;
439*437bfbebSnyanmisaka         RK_U32 thre_dsp_static             : 5;
440*437bfbebSnyanmisaka         RK_U32 thre_dsp_mov                : 5;
441*437bfbebSnyanmisaka         RK_U32 thre_dist_mv_confor_cime    : 7;
442*437bfbebSnyanmisaka         RK_U32 reserved                    : 1;
443*437bfbebSnyanmisaka     } smear_opt_cfg1;
444*437bfbebSnyanmisaka 
445*437bfbebSnyanmisaka     /* 0x00002018 reg2054 */
446*437bfbebSnyanmisaka     struct {
447*437bfbebSnyanmisaka         RK_U32 thre_madp_stc_dep0    : 4;
448*437bfbebSnyanmisaka         RK_U32 thre_madp_stc_dep1    : 4;
449*437bfbebSnyanmisaka         RK_U32 thre_madp_stc_dep2    : 4;
450*437bfbebSnyanmisaka         RK_U32 thre_madp_mov_dep0    : 6;
451*437bfbebSnyanmisaka         RK_U32 thre_madp_mov_dep1    : 6;
452*437bfbebSnyanmisaka         RK_U32 thre_madp_mov_dep2    : 6;
453*437bfbebSnyanmisaka         RK_U32 reserved              : 2;
454*437bfbebSnyanmisaka     } smear_madp_thd;
455*437bfbebSnyanmisaka 
456*437bfbebSnyanmisaka     /* 0x0000201c reg2055 */
457*437bfbebSnyanmisaka     struct {
458*437bfbebSnyanmisaka         RK_U32 thre_num_pt_stc_dep0    : 6;
459*437bfbebSnyanmisaka         RK_U32 thre_num_pt_stc_dep1    : 4;
460*437bfbebSnyanmisaka         RK_U32 thre_num_pt_stc_dep2    : 2;
461*437bfbebSnyanmisaka         RK_U32 reserved                : 4;
462*437bfbebSnyanmisaka         RK_U32 thre_num_pt_mov_dep0    : 6;
463*437bfbebSnyanmisaka         RK_U32 thre_num_pt_mov_dep1    : 4;
464*437bfbebSnyanmisaka         RK_U32 thre_num_pt_mov_dep2    : 2;
465*437bfbebSnyanmisaka         RK_U32 reserved1               : 4;
466*437bfbebSnyanmisaka     } smear_stat_thd;
467*437bfbebSnyanmisaka 
468*437bfbebSnyanmisaka     /* 0x00002020 reg2056 */
469*437bfbebSnyanmisaka     struct {
470*437bfbebSnyanmisaka         RK_U32 thre_ratio_dist_mv_confor_cime_gmv0      : 5;
471*437bfbebSnyanmisaka         RK_U32 reserved                                 : 3;
472*437bfbebSnyanmisaka         RK_U32 thre_ratio_dist_mv_confor_cime_gmv1      : 5;
473*437bfbebSnyanmisaka         RK_U32 reserved1                                : 3;
474*437bfbebSnyanmisaka         RK_U32 thre_ratio_dist_mv_inconfor_cime_gmv0    : 6;
475*437bfbebSnyanmisaka         RK_U32 reserved2                                : 2;
476*437bfbebSnyanmisaka         RK_U32 thre_ratio_dist_mv_inconfor_cime_gmv1    : 6;
477*437bfbebSnyanmisaka         RK_U32 reserved3                                : 2;
478*437bfbebSnyanmisaka     } smear_bmv_dist_thd0;
479*437bfbebSnyanmisaka 
480*437bfbebSnyanmisaka     /* 0x00002024 reg2057 */
481*437bfbebSnyanmisaka     struct {
482*437bfbebSnyanmisaka         RK_U32 thre_ratio_dist_mv_inconfor_cime_gmv2    : 6;
483*437bfbebSnyanmisaka         RK_U32 reserved                                 : 2;
484*437bfbebSnyanmisaka         RK_U32 thre_ratio_dist_mv_inconfor_cime_gmv3    : 6;
485*437bfbebSnyanmisaka         RK_U32 reserved1                                : 2;
486*437bfbebSnyanmisaka         RK_U32 thre_ratio_dist_mv_inconfor_cime_gmv4    : 6;
487*437bfbebSnyanmisaka         RK_U32 reserved2                                : 10;
488*437bfbebSnyanmisaka     } smear_bmv_dist_thd1;
489*437bfbebSnyanmisaka 
490*437bfbebSnyanmisaka     /* 0x00002028 reg2058 */
491*437bfbebSnyanmisaka     struct {
492*437bfbebSnyanmisaka         RK_U32 thre_min_num_confor_csu0_bndry_cime_gmv      : 2;
493*437bfbebSnyanmisaka         RK_U32 thre_max_num_confor_csu0_bndry_cime_gmv      : 2;
494*437bfbebSnyanmisaka         RK_U32 thre_min_num_inconfor_csu0_bndry_cime_gmv    : 2;
495*437bfbebSnyanmisaka         RK_U32 thre_max_num_inconfor_csu0_bndry_cime_gmv    : 2;
496*437bfbebSnyanmisaka         RK_U32 thre_split_dep0                              : 2;
497*437bfbebSnyanmisaka         RK_U32 thre_zero_srgn                               : 5;
498*437bfbebSnyanmisaka         RK_U32 reserved                                     : 1;
499*437bfbebSnyanmisaka         RK_U32 madi_thre_dep0                               : 8;
500*437bfbebSnyanmisaka         RK_U32 madi_thre_dep1                               : 8;
501*437bfbebSnyanmisaka     } smear_min_bndry_gmv;
502*437bfbebSnyanmisaka 
503*437bfbebSnyanmisaka     /* 0x0000202c reg2059 */
504*437bfbebSnyanmisaka     struct {
505*437bfbebSnyanmisaka         RK_U32 thre_madp_stc_cover0    : 6;
506*437bfbebSnyanmisaka         RK_U32 thre_madp_stc_cover1    : 6;
507*437bfbebSnyanmisaka         RK_U32 thre_madp_mov_cover0    : 5;
508*437bfbebSnyanmisaka         RK_U32 thre_madp_mov_cover1    : 5;
509*437bfbebSnyanmisaka         RK_U32 smear_qp_strength       : 4;
510*437bfbebSnyanmisaka         RK_U32 smear_thre_qp           : 6;
511*437bfbebSnyanmisaka     } smear_madp_cov_thd;
512*437bfbebSnyanmisaka 
513*437bfbebSnyanmisaka     /* 0x00002030 reg2060 */
514*437bfbebSnyanmisaka     struct {
515*437bfbebSnyanmisaka         RK_U32 skin_en                        : 1;
516*437bfbebSnyanmisaka         RK_U32 skin_strength                  : 3;
517*437bfbebSnyanmisaka         RK_U32 thre_uvsqr16_skin              : 8;
518*437bfbebSnyanmisaka         RK_U32 skin_thre_cst_best_mad         : 10;
519*437bfbebSnyanmisaka         RK_U32 skin_thre_cst_best_grdn_blk    : 7;
520*437bfbebSnyanmisaka         RK_U32 reserved                       : 1;
521*437bfbebSnyanmisaka         RK_U32 frame_skin_ratio               : 2;
522*437bfbebSnyanmisaka     } skin_opt_cfg;
523*437bfbebSnyanmisaka 
524*437bfbebSnyanmisaka     /* 0x00002034 reg2061 */
525*437bfbebSnyanmisaka     struct {
526*437bfbebSnyanmisaka         RK_U32 thre_sum_mad_intra         : 2;
527*437bfbebSnyanmisaka         RK_U32 thre_sum_grdn_blk_intra    : 2;
528*437bfbebSnyanmisaka         RK_U32 vld_thre_skin_v            : 3;
529*437bfbebSnyanmisaka         RK_U32 reserved                   : 1;
530*437bfbebSnyanmisaka         RK_U32 thre_min_skin_u            : 8;
531*437bfbebSnyanmisaka         RK_U32 thre_max_skin_u            : 8;
532*437bfbebSnyanmisaka         RK_U32 thre_min_skin_v            : 8;
533*437bfbebSnyanmisaka     } skin_chrm_thd;
534*437bfbebSnyanmisaka 
535*437bfbebSnyanmisaka     /* 0x00002038 reg2062 */
536*437bfbebSnyanmisaka     struct {
537*437bfbebSnyanmisaka         RK_U32 block_en                        : 1;
538*437bfbebSnyanmisaka         RK_U32 reserved                        : 1;
539*437bfbebSnyanmisaka         RK_U32 block_thre_cst_best_mad         : 10;
540*437bfbebSnyanmisaka         RK_U32 reserved1                       : 4;
541*437bfbebSnyanmisaka         RK_U32 block_thre_cst_best_grdn_blk    : 6;
542*437bfbebSnyanmisaka         RK_U32 reserved2                       : 2;
543*437bfbebSnyanmisaka         RK_U32 thre_num_grdnt_point_cmplx      : 2;
544*437bfbebSnyanmisaka         RK_U32 block_delta_qp_flag             : 2;
545*437bfbebSnyanmisaka         RK_U32 reserved3                       : 4;
546*437bfbebSnyanmisaka     } block_opt_cfg;
547*437bfbebSnyanmisaka 
548*437bfbebSnyanmisaka     /* 0x0000203c reg2063 */
549*437bfbebSnyanmisaka     struct {
550*437bfbebSnyanmisaka         RK_U32 cmplx_thre_cst_best_mad_dep0    : 13;
551*437bfbebSnyanmisaka         RK_U32 reserved                        : 3;
552*437bfbebSnyanmisaka         RK_U32 cmplx_thre_cst_best_mad_dep1    : 13;
553*437bfbebSnyanmisaka         RK_U32 reserved1                       : 2;
554*437bfbebSnyanmisaka         RK_U32 cmplx_en                        : 1;
555*437bfbebSnyanmisaka     } cmplx_opt_cfg;
556*437bfbebSnyanmisaka 
557*437bfbebSnyanmisaka     /* 0x00002040 reg2064 */
558*437bfbebSnyanmisaka     struct {
559*437bfbebSnyanmisaka         RK_U32 cmplx_thre_cst_best_mad_dep2         : 13;
560*437bfbebSnyanmisaka         RK_U32 reserved                             : 3;
561*437bfbebSnyanmisaka         RK_U32 cmplx_thre_cst_best_grdn_blk_dep0    : 11;
562*437bfbebSnyanmisaka         RK_U32 reserved1                            : 5;
563*437bfbebSnyanmisaka     } cmplx_bst_mad_thd;
564*437bfbebSnyanmisaka 
565*437bfbebSnyanmisaka     /* 0x00002044 reg2065 */
566*437bfbebSnyanmisaka     struct {
567*437bfbebSnyanmisaka         RK_U32 cmplx_thre_cst_best_grdn_blk_dep1    : 11;
568*437bfbebSnyanmisaka         RK_U32 reserved                             : 5;
569*437bfbebSnyanmisaka         RK_U32 cmplx_thre_cst_best_grdn_blk_dep2    : 11;
570*437bfbebSnyanmisaka         RK_U32 reserved1                            : 5;
571*437bfbebSnyanmisaka     } cmplx_bst_grdn_thd;
572*437bfbebSnyanmisaka 
573*437bfbebSnyanmisaka     /* 0x00002048 reg2066 */
574*437bfbebSnyanmisaka     struct {
575*437bfbebSnyanmisaka         RK_U32 line_en                                 : 1;
576*437bfbebSnyanmisaka         RK_U32 line_thre_min_cst_best_grdn_blk_dep0    : 5;
577*437bfbebSnyanmisaka         RK_U32 line_thre_min_cst_best_grdn_blk_dep1    : 5;
578*437bfbebSnyanmisaka         RK_U32 line_thre_min_cst_best_grdn_blk_dep2    : 5;
579*437bfbebSnyanmisaka         RK_U32 line_thre_ratio_best_grdn_blk_dep0      : 4;
580*437bfbebSnyanmisaka         RK_U32 line_thre_ratio_best_grdn_blk_dep1      : 4;
581*437bfbebSnyanmisaka         RK_U32 reserved                                : 8;
582*437bfbebSnyanmisaka     } line_opt_cfg;
583*437bfbebSnyanmisaka 
584*437bfbebSnyanmisaka     /* 0x0000204c reg2067 */
585*437bfbebSnyanmisaka     struct {
586*437bfbebSnyanmisaka         RK_U32 line_thre_max_cst_best_grdn_blk_dep0    : 7;
587*437bfbebSnyanmisaka         RK_U32 reserved                                : 1;
588*437bfbebSnyanmisaka         RK_U32 line_thre_max_cst_best_grdn_blk_dep1    : 7;
589*437bfbebSnyanmisaka         RK_U32 reserved1                               : 1;
590*437bfbebSnyanmisaka         RK_U32 line_thre_max_cst_best_grdn_blk_dep2    : 7;
591*437bfbebSnyanmisaka         RK_U32 reserved2                               : 9;
592*437bfbebSnyanmisaka     } line_cst_bst_grdn;
593*437bfbebSnyanmisaka 
594*437bfbebSnyanmisaka     /* 0x00002050 reg2068 */
595*437bfbebSnyanmisaka     struct {
596*437bfbebSnyanmisaka         RK_U32 line_thre_qp               : 6;
597*437bfbebSnyanmisaka         RK_U32 block_strength             : 3;
598*437bfbebSnyanmisaka         RK_U32 block_thre_qp              : 6;
599*437bfbebSnyanmisaka         RK_U32 cmplx_strength             : 3;
600*437bfbebSnyanmisaka         RK_U32 cmplx_thre_qp              : 6;
601*437bfbebSnyanmisaka         RK_U32 cmplx_thre_max_grdn_blk    : 6;
602*437bfbebSnyanmisaka         RK_U32 reserved                   : 2;
603*437bfbebSnyanmisaka     } subj_opt_dqp0;
604*437bfbebSnyanmisaka 
605*437bfbebSnyanmisaka     /* 0x00002054 reg2069 */
606*437bfbebSnyanmisaka     struct {
607*437bfbebSnyanmisaka         RK_U32 skin_thre_qp                      : 6;
608*437bfbebSnyanmisaka         RK_U32 reserved                          : 2;
609*437bfbebSnyanmisaka         RK_U32 bndry_rdo_cu_intra_r_coef_dep0    : 8;
610*437bfbebSnyanmisaka         RK_U32 bndry_rdo_cu_intra_r_coef_dep1    : 8;
611*437bfbebSnyanmisaka         RK_U32 reserved1                         : 8;
612*437bfbebSnyanmisaka     } subj_opt_dqp1;
613*437bfbebSnyanmisaka 
614*437bfbebSnyanmisaka     /* 0x2058 - 0x205c */
615*437bfbebSnyanmisaka     RK_U32 reserved2070_2071[2];
616*437bfbebSnyanmisaka 
617*437bfbebSnyanmisaka     /* 0x00002060 reg2072 - 0x0000206c reg2075 */
618*437bfbebSnyanmisaka     rdo_skip_par rdo_b32_skip;
619*437bfbebSnyanmisaka 
620*437bfbebSnyanmisaka     /* 0x00002070 reg2076 - 0x0000207c reg2079*/
621*437bfbebSnyanmisaka     rdo_skip_par rdo_b16_skip;
622*437bfbebSnyanmisaka 
623*437bfbebSnyanmisaka     /* 0x00002080 reg2080 - 0x00002088 reg2082 */
624*437bfbebSnyanmisaka     rdo_noskip_par rdo_b32_inter;
625*437bfbebSnyanmisaka 
626*437bfbebSnyanmisaka     /* 0x0000208c reg2083 - 0x00002094 reg2085 */
627*437bfbebSnyanmisaka     rdo_noskip_par rdo_b16_inter;
628*437bfbebSnyanmisaka 
629*437bfbebSnyanmisaka     /* 0x00002098 reg2086 - 0x000020a4 reg2088 */
630*437bfbebSnyanmisaka     rdo_noskip_par rdo_b32_intra;
631*437bfbebSnyanmisaka 
632*437bfbebSnyanmisaka     /* 0x000020a8 reg2089 - 0x000020ac reg2091 */
633*437bfbebSnyanmisaka     rdo_noskip_par rdo_b16_intra;
634*437bfbebSnyanmisaka 
635*437bfbebSnyanmisaka     /* 0x000020b0 reg2092 */
636*437bfbebSnyanmisaka     struct {
637*437bfbebSnyanmisaka         RK_U32 blur_low_madi_thd     : 7;
638*437bfbebSnyanmisaka         RK_U32 reserved              : 1;
639*437bfbebSnyanmisaka         RK_U32 blur_high_madi_thd    : 7;
640*437bfbebSnyanmisaka         RK_U32 reserved1             : 1;
641*437bfbebSnyanmisaka         RK_U32 blur_low_cnt_thd      : 4;
642*437bfbebSnyanmisaka         RK_U32 blur_hight_cnt_thd    : 4;
643*437bfbebSnyanmisaka         RK_U32 blur_sum_cnt_thd      : 4;
644*437bfbebSnyanmisaka         RK_U32 anti_blur_en          : 1;
645*437bfbebSnyanmisaka         RK_U32 reserved2             : 3;
646*437bfbebSnyanmisaka     } subj_anti_blur_thd;
647*437bfbebSnyanmisaka 
648*437bfbebSnyanmisaka     /* 0x000020b4 reg2093 */
649*437bfbebSnyanmisaka     struct {
650*437bfbebSnyanmisaka         RK_U32 blur_motion_thd           : 12;
651*437bfbebSnyanmisaka         RK_U32 sao_ofst_thd_eo_luma      : 3;
652*437bfbebSnyanmisaka         RK_U32 reserved                  : 1;
653*437bfbebSnyanmisaka         RK_U32 sao_ofst_thd_bo_luma      : 3;
654*437bfbebSnyanmisaka         RK_U32 reserved1                 : 1;
655*437bfbebSnyanmisaka         RK_U32 sao_ofst_thd_eo_chroma    : 3;
656*437bfbebSnyanmisaka         RK_U32 reserved2                 : 1;
657*437bfbebSnyanmisaka         RK_U32 sao_ofst_thd_bo_chroma    : 3;
658*437bfbebSnyanmisaka         RK_U32 reserved3                 : 5;
659*437bfbebSnyanmisaka     } subj_anti_blur_sao;
660*437bfbebSnyanmisaka 
661*437bfbebSnyanmisaka     /* 0x000020b8 reg2094 - 0x000020bc reg2095*/
662*437bfbebSnyanmisaka     RK_U32 reserved_2094_2095[2];
663*437bfbebSnyanmisaka 
664*437bfbebSnyanmisaka     /* 0x000020c0 reg2096 - 0x000020dc reg2103 */
665*437bfbebSnyanmisaka     pre_cst_par preintra32_cst;
666*437bfbebSnyanmisaka 
667*437bfbebSnyanmisaka     /* 0x000020e0 reg2104 - 0x000020fc reg2111 */
668*437bfbebSnyanmisaka     pre_cst_par preintra16_cst;
669*437bfbebSnyanmisaka 
670*437bfbebSnyanmisaka     /* 0x00002100 reg2112 */
671*437bfbebSnyanmisaka     struct {
672*437bfbebSnyanmisaka         RK_U32 base_thre_rough_mad32_intra           : 4;
673*437bfbebSnyanmisaka         RK_U32 delta0_thre_rough_mad32_intra         : 4;
674*437bfbebSnyanmisaka         RK_U32 delta1_thre_rough_mad32_intra         : 6;
675*437bfbebSnyanmisaka         RK_U32 delta2_thre_rough_mad32_intra         : 6;
676*437bfbebSnyanmisaka         RK_U32 delta3_thre_rough_mad32_intra         : 7;
677*437bfbebSnyanmisaka         RK_U32 delta4_thre_rough_mad32_intra_low5    : 5;
678*437bfbebSnyanmisaka     } cudecis_thd0;
679*437bfbebSnyanmisaka 
680*437bfbebSnyanmisaka     /* 0x00002104 reg2113 */
681*437bfbebSnyanmisaka     struct {
682*437bfbebSnyanmisaka         RK_U32 delta4_thre_rough_mad32_intra_high2    : 2;
683*437bfbebSnyanmisaka         RK_U32 delta5_thre_rough_mad32_intra          : 7;
684*437bfbebSnyanmisaka         RK_U32 delta6_thre_rough_mad32_intra          : 7;
685*437bfbebSnyanmisaka         RK_U32 base_thre_fine_mad32_intra             : 4;
686*437bfbebSnyanmisaka         RK_U32 delta0_thre_fine_mad32_intra           : 4;
687*437bfbebSnyanmisaka         RK_U32 delta1_thre_fine_mad32_intra           : 5;
688*437bfbebSnyanmisaka         RK_U32 delta2_thre_fine_mad32_intra_low3      : 3;
689*437bfbebSnyanmisaka     } cudecis_thd1;
690*437bfbebSnyanmisaka 
691*437bfbebSnyanmisaka     /* 0x00002108 reg2114 */
692*437bfbebSnyanmisaka     struct {
693*437bfbebSnyanmisaka         RK_U32 delta2_thre_fine_mad32_intra_high2    : 2;
694*437bfbebSnyanmisaka         RK_U32 delta3_thre_fine_mad32_intra          : 5;
695*437bfbebSnyanmisaka         RK_U32 delta4_thre_fine_mad32_intra          : 5;
696*437bfbebSnyanmisaka         RK_U32 delta5_thre_fine_mad32_intra          : 6;
697*437bfbebSnyanmisaka         RK_U32 delta6_thre_fine_mad32_intra          : 6;
698*437bfbebSnyanmisaka         RK_U32 base_thre_str_edge_mad32_intra        : 3;
699*437bfbebSnyanmisaka         RK_U32 delta0_thre_str_edge_mad32_intra      : 2;
700*437bfbebSnyanmisaka         RK_U32 delta1_thre_str_edge_mad32_intra      : 3;
701*437bfbebSnyanmisaka     } cudecis_thd2;
702*437bfbebSnyanmisaka 
703*437bfbebSnyanmisaka     /* 0x0000210c reg2115 */
704*437bfbebSnyanmisaka     struct {
705*437bfbebSnyanmisaka         RK_U32 delta2_thre_str_edge_mad32_intra      : 3;
706*437bfbebSnyanmisaka         RK_U32 delta3_thre_str_edge_mad32_intra      : 4;
707*437bfbebSnyanmisaka         RK_U32 base_thre_str_edge_bgrad32_intra      : 5;
708*437bfbebSnyanmisaka         RK_U32 delta0_thre_str_edge_bgrad32_intra    : 2;
709*437bfbebSnyanmisaka         RK_U32 delta1_thre_str_edge_bgrad32_intra    : 3;
710*437bfbebSnyanmisaka         RK_U32 delta2_thre_str_edge_bgrad32_intra    : 4;
711*437bfbebSnyanmisaka         RK_U32 delta3_thre_str_edge_bgrad32_intra    : 5;
712*437bfbebSnyanmisaka         RK_U32 base_thre_mad16_intra                 : 3;
713*437bfbebSnyanmisaka         RK_U32 delta0_thre_mad16_intra               : 3;
714*437bfbebSnyanmisaka     } cudecis_thd3;
715*437bfbebSnyanmisaka 
716*437bfbebSnyanmisaka     /* 0x00002110 reg2116 */
717*437bfbebSnyanmisaka     struct {
718*437bfbebSnyanmisaka         RK_U32 delta1_thre_mad16_intra          : 3;
719*437bfbebSnyanmisaka         RK_U32 delta2_thre_mad16_intra          : 4;
720*437bfbebSnyanmisaka         RK_U32 delta3_thre_mad16_intra          : 5;
721*437bfbebSnyanmisaka         RK_U32 delta4_thre_mad16_intra          : 5;
722*437bfbebSnyanmisaka         RK_U32 delta5_thre_mad16_intra          : 6;
723*437bfbebSnyanmisaka         RK_U32 delta6_thre_mad16_intra          : 6;
724*437bfbebSnyanmisaka         RK_U32 delta0_thre_mad16_ratio_intra    : 3;
725*437bfbebSnyanmisaka     } cudecis_thd4;
726*437bfbebSnyanmisaka 
727*437bfbebSnyanmisaka     /* 0x00002114 reg2117 */
728*437bfbebSnyanmisaka     struct {
729*437bfbebSnyanmisaka         RK_U32 delta1_thre_mad16_ratio_intra           : 3;
730*437bfbebSnyanmisaka         RK_U32 delta2_thre_mad16_ratio_intra           : 3;
731*437bfbebSnyanmisaka         RK_U32 delta3_thre_mad16_ratio_intra           : 3;
732*437bfbebSnyanmisaka         RK_U32 delta4_thre_mad16_ratio_intra           : 3;
733*437bfbebSnyanmisaka         RK_U32 delta5_thre_mad16_ratio_intra           : 3;
734*437bfbebSnyanmisaka         RK_U32 delta6_thre_mad16_ratio_intra           : 3;
735*437bfbebSnyanmisaka         RK_U32 delta7_thre_mad16_ratio_intra           : 3;
736*437bfbebSnyanmisaka         RK_U32 delta0_thre_rough_bgrad32_intra         : 3;
737*437bfbebSnyanmisaka         RK_U32 delta1_thre_rough_bgrad32_intra         : 4;
738*437bfbebSnyanmisaka         RK_U32 delta2_thre_rough_bgrad32_intra_low4    : 4;
739*437bfbebSnyanmisaka     } cudecis_thd5;
740*437bfbebSnyanmisaka 
741*437bfbebSnyanmisaka     /* 0x00002118 reg2118 */
742*437bfbebSnyanmisaka     struct {
743*437bfbebSnyanmisaka         RK_U32 delta2_thre_rough_bgrad32_intra_high2    : 2;
744*437bfbebSnyanmisaka         RK_U32 delta3_thre_rough_bgrad32_intra          : 10;
745*437bfbebSnyanmisaka         RK_U32 delta4_thre_rough_bgrad32_intra          : 10;
746*437bfbebSnyanmisaka         RK_U32 delta5_thre_rough_bgrad32_intra_low10    : 10;
747*437bfbebSnyanmisaka     } cudecis_thd6;
748*437bfbebSnyanmisaka 
749*437bfbebSnyanmisaka     /* 0x0000211c reg2119 */
750*437bfbebSnyanmisaka     struct {
751*437bfbebSnyanmisaka         RK_U32 delta5_thre_rough_bgrad32_intra_high1    : 1;
752*437bfbebSnyanmisaka         RK_U32 delta6_thre_rough_bgrad32_intra          : 12;
753*437bfbebSnyanmisaka         RK_U32 delta7_thre_rough_bgrad32_intra          : 13;
754*437bfbebSnyanmisaka         RK_U32 delta0_thre_bgrad16_ratio_intra          : 4;
755*437bfbebSnyanmisaka         RK_U32 delta1_thre_bgrad16_ratio_intra_low2     : 2;
756*437bfbebSnyanmisaka     } cudecis_thd7;
757*437bfbebSnyanmisaka 
758*437bfbebSnyanmisaka     /* 0x00002120 reg2120 */
759*437bfbebSnyanmisaka     struct {
760*437bfbebSnyanmisaka         RK_U32 delta1_thre_bgrad16_ratio_intra_high2    : 2;
761*437bfbebSnyanmisaka         RK_U32 delta2_thre_bgrad16_ratio_intra          : 4;
762*437bfbebSnyanmisaka         RK_U32 delta3_thre_bgrad16_ratio_intra          : 4;
763*437bfbebSnyanmisaka         RK_U32 delta4_thre_bgrad16_ratio_intra          : 4;
764*437bfbebSnyanmisaka         RK_U32 delta5_thre_bgrad16_ratio_intra          : 4;
765*437bfbebSnyanmisaka         RK_U32 delta6_thre_bgrad16_ratio_intra          : 4;
766*437bfbebSnyanmisaka         RK_U32 delta7_thre_bgrad16_ratio_intra          : 4;
767*437bfbebSnyanmisaka         RK_U32 delta0_thre_fme_ratio_inter              : 3;
768*437bfbebSnyanmisaka         RK_U32 delta1_thre_fme_ratio_inter              : 3;
769*437bfbebSnyanmisaka     } cudecis_thdt8;
770*437bfbebSnyanmisaka 
771*437bfbebSnyanmisaka     /* 0x00002124 reg2121 */
772*437bfbebSnyanmisaka     struct {
773*437bfbebSnyanmisaka         RK_U32 delta2_thre_fme_ratio_inter    : 3;
774*437bfbebSnyanmisaka         RK_U32 delta3_thre_fme_ratio_inter    : 3;
775*437bfbebSnyanmisaka         RK_U32 delta4_thre_fme_ratio_inter    : 3;
776*437bfbebSnyanmisaka         RK_U32 delta5_thre_fme_ratio_inter    : 3;
777*437bfbebSnyanmisaka         RK_U32 delta6_thre_fme_ratio_inter    : 3;
778*437bfbebSnyanmisaka         RK_U32 delta7_thre_fme_ratio_inter    : 3;
779*437bfbebSnyanmisaka         RK_U32 base_thre_fme32_inter          : 3;
780*437bfbebSnyanmisaka         RK_U32 delta0_thre_fme32_inter        : 3;
781*437bfbebSnyanmisaka         RK_U32 delta1_thre_fme32_inter        : 4;
782*437bfbebSnyanmisaka         RK_U32 delta2_thre_fme32_inter        : 4;
783*437bfbebSnyanmisaka     } cudecis_thd9;
784*437bfbebSnyanmisaka 
785*437bfbebSnyanmisaka     /* 0x00002128 reg2122 */
786*437bfbebSnyanmisaka     struct {
787*437bfbebSnyanmisaka         RK_U32 delta3_thre_fme32_inter    : 5;
788*437bfbebSnyanmisaka         RK_U32 delta4_thre_fme32_inter    : 6;
789*437bfbebSnyanmisaka         RK_U32 delta5_thre_fme32_inter    : 7;
790*437bfbebSnyanmisaka         RK_U32 delta6_thre_fme32_inter    : 8;
791*437bfbebSnyanmisaka         RK_U32 thre_cme32_inter           : 6;
792*437bfbebSnyanmisaka     } cudecis_thd10;
793*437bfbebSnyanmisaka 
794*437bfbebSnyanmisaka     /* 0x0000212c reg2123 */
795*437bfbebSnyanmisaka     struct {
796*437bfbebSnyanmisaka         RK_U32 delta0_thre_mad_fme_ratio_inter    : 4;
797*437bfbebSnyanmisaka         RK_U32 delta1_thre_mad_fme_ratio_inter    : 4;
798*437bfbebSnyanmisaka         RK_U32 delta2_thre_mad_fme_ratio_inter    : 4;
799*437bfbebSnyanmisaka         RK_U32 delta3_thre_mad_fme_ratio_inter    : 4;
800*437bfbebSnyanmisaka         RK_U32 delta4_thre_mad_fme_ratio_inter    : 4;
801*437bfbebSnyanmisaka         RK_U32 delta5_thre_mad_fme_ratio_inter    : 4;
802*437bfbebSnyanmisaka         RK_U32 delta6_thre_mad_fme_ratio_inter    : 4;
803*437bfbebSnyanmisaka         RK_U32 delta7_thre_mad_fme_ratio_inter    : 4;
804*437bfbebSnyanmisaka     } cudecis_thd11;
805*437bfbebSnyanmisaka } H265eVepu510Sqi;
806*437bfbebSnyanmisaka 
807*437bfbebSnyanmisaka typedef struct H265eV510RegSet_t {
808*437bfbebSnyanmisaka     Vepu510ControlCfg         reg_ctl;
809*437bfbebSnyanmisaka     H265eVepu510Frame         reg_frm;
810*437bfbebSnyanmisaka     Vepu510RcRoi              reg_rc_roi;
811*437bfbebSnyanmisaka     H265eVepu510Param         reg_param;
812*437bfbebSnyanmisaka     H265eVepu510Sqi           reg_sqi;
813*437bfbebSnyanmisaka     Vepu510SclCfg             reg_scl;
814*437bfbebSnyanmisaka     Vepu510Dbg                reg_dbg;
815*437bfbebSnyanmisaka } H265eV510RegSet;
816*437bfbebSnyanmisaka 
817*437bfbebSnyanmisaka typedef struct H265eV510StatusElem_t {
818*437bfbebSnyanmisaka     RK_U32 hw_status;
819*437bfbebSnyanmisaka     Vepu510Status st;
820*437bfbebSnyanmisaka } H265eV510StatusElem;
821*437bfbebSnyanmisaka 
822*437bfbebSnyanmisaka #endif
823