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_H264E_VEPU511_REG_H__ 7*437bfbebSnyanmisaka #define __HAL_H264E_VEPU511_REG_H__ 8*437bfbebSnyanmisaka 9*437bfbebSnyanmisaka #include "rk_type.h" 10*437bfbebSnyanmisaka #include "vepu511_common.h" 11*437bfbebSnyanmisaka 12*437bfbebSnyanmisaka /* class: buffer/video syntax */ 13*437bfbebSnyanmisaka /* 0x00000270 reg156 - 0x00000538 reg334 */ 14*437bfbebSnyanmisaka typedef struct H264eVepu511Frame_t { 15*437bfbebSnyanmisaka /* 0x00000270 reg156 - 0x0000039c reg231 */ 16*437bfbebSnyanmisaka Vepu511FrmCommon common; 17*437bfbebSnyanmisaka 18*437bfbebSnyanmisaka /* 0x000003a0 reg232 */ 19*437bfbebSnyanmisaka struct { 20*437bfbebSnyanmisaka RK_U32 rect_size : 1; 21*437bfbebSnyanmisaka RK_U32 reserved : 2; 22*437bfbebSnyanmisaka RK_U32 vlc_lmt : 1; 23*437bfbebSnyanmisaka RK_U32 reserved1 : 9; 24*437bfbebSnyanmisaka RK_U32 ccwa_e : 1; 25*437bfbebSnyanmisaka RK_U32 reserved2 : 1; 26*437bfbebSnyanmisaka RK_U32 atr_e : 1; 27*437bfbebSnyanmisaka RK_U32 reserved3 : 4; 28*437bfbebSnyanmisaka RK_U32 scl_lst_sel : 2; 29*437bfbebSnyanmisaka RK_U32 reserved4 : 6; 30*437bfbebSnyanmisaka RK_U32 atf_e : 1; 31*437bfbebSnyanmisaka RK_U32 atr_mult_sel_e : 1; 32*437bfbebSnyanmisaka RK_U32 reserved5 : 2; 33*437bfbebSnyanmisaka } rdo_cfg; 34*437bfbebSnyanmisaka 35*437bfbebSnyanmisaka /* 0x000003a4 reg233 */ 36*437bfbebSnyanmisaka struct { 37*437bfbebSnyanmisaka RK_U32 rdo_mark_mode : 9; 38*437bfbebSnyanmisaka RK_U32 reserved : 5; 39*437bfbebSnyanmisaka RK_U32 p16_interp_num : 2; 40*437bfbebSnyanmisaka RK_U32 p16t8_rdo_num : 2; 41*437bfbebSnyanmisaka RK_U32 p16t4_rmd_num : 2; 42*437bfbebSnyanmisaka RK_U32 p8_interp_num : 2; 43*437bfbebSnyanmisaka RK_U32 p8t8_rdo_num : 2; 44*437bfbebSnyanmisaka RK_U32 p8t4_rmd_num : 2; 45*437bfbebSnyanmisaka RK_U32 iframe_i16_rdo_num : 2; 46*437bfbebSnyanmisaka RK_U32 i8_rdo_num : 2; 47*437bfbebSnyanmisaka RK_U32 iframe_i4_rdo_num : 2; 48*437bfbebSnyanmisaka } rdo_mark_mode; 49*437bfbebSnyanmisaka 50*437bfbebSnyanmisaka /* 0x3a8 - 0x3ac */ 51*437bfbebSnyanmisaka RK_U32 reserved234_235[2]; 52*437bfbebSnyanmisaka 53*437bfbebSnyanmisaka /* 0x000003b0 reg236 */ 54*437bfbebSnyanmisaka struct { 55*437bfbebSnyanmisaka RK_U32 nal_ref_idc : 2; 56*437bfbebSnyanmisaka RK_U32 nal_unit_type : 5; 57*437bfbebSnyanmisaka RK_U32 reserved : 25; 58*437bfbebSnyanmisaka } synt_nal; 59*437bfbebSnyanmisaka 60*437bfbebSnyanmisaka /* 0x000003b4 reg237 */ 61*437bfbebSnyanmisaka struct { 62*437bfbebSnyanmisaka RK_U32 max_fnum : 4; 63*437bfbebSnyanmisaka RK_U32 drct_8x8 : 1; 64*437bfbebSnyanmisaka RK_U32 mpoc_lm4 : 4; 65*437bfbebSnyanmisaka RK_U32 poc_type : 2; 66*437bfbebSnyanmisaka RK_U32 reserved : 21; 67*437bfbebSnyanmisaka } synt_sps; 68*437bfbebSnyanmisaka 69*437bfbebSnyanmisaka /* 0x000003b8 reg238 */ 70*437bfbebSnyanmisaka struct { 71*437bfbebSnyanmisaka RK_U32 etpy_mode : 1; 72*437bfbebSnyanmisaka RK_U32 trns_8x8 : 1; 73*437bfbebSnyanmisaka RK_U32 csip_flag : 1; 74*437bfbebSnyanmisaka RK_U32 num_ref0_idx : 2; 75*437bfbebSnyanmisaka RK_U32 num_ref1_idx : 2; 76*437bfbebSnyanmisaka RK_U32 pic_init_qp : 6; 77*437bfbebSnyanmisaka RK_U32 cb_ofst : 5; 78*437bfbebSnyanmisaka RK_U32 cr_ofst : 5; 79*437bfbebSnyanmisaka RK_U32 reserved : 1; 80*437bfbebSnyanmisaka RK_U32 dbf_cp_flg : 1; 81*437bfbebSnyanmisaka RK_U32 reserved1 : 7; 82*437bfbebSnyanmisaka } synt_pps; 83*437bfbebSnyanmisaka 84*437bfbebSnyanmisaka /* 0x000003bc reg239 */ 85*437bfbebSnyanmisaka struct { 86*437bfbebSnyanmisaka RK_U32 sli_type : 2; 87*437bfbebSnyanmisaka RK_U32 pps_id : 8; 88*437bfbebSnyanmisaka RK_U32 drct_smvp : 1; 89*437bfbebSnyanmisaka RK_U32 num_ref_ovrd : 1; 90*437bfbebSnyanmisaka RK_U32 cbc_init_idc : 2; 91*437bfbebSnyanmisaka RK_U32 reserved : 2; 92*437bfbebSnyanmisaka RK_U32 frm_num : 16; 93*437bfbebSnyanmisaka } synt_sli0; 94*437bfbebSnyanmisaka 95*437bfbebSnyanmisaka /* 0x000003c0 reg240 */ 96*437bfbebSnyanmisaka struct { 97*437bfbebSnyanmisaka RK_U32 idr_pid : 16; 98*437bfbebSnyanmisaka RK_U32 poc_lsb : 16; 99*437bfbebSnyanmisaka } synt_sli1; 100*437bfbebSnyanmisaka 101*437bfbebSnyanmisaka /* 0x000003c4 reg241 */ 102*437bfbebSnyanmisaka struct { 103*437bfbebSnyanmisaka RK_U32 rodr_pic_idx : 2; 104*437bfbebSnyanmisaka RK_U32 ref_list0_rodr : 1; 105*437bfbebSnyanmisaka RK_U32 sli_beta_ofst : 4; 106*437bfbebSnyanmisaka RK_U32 sli_alph_ofst : 4; 107*437bfbebSnyanmisaka RK_U32 dis_dblk_idc : 2; 108*437bfbebSnyanmisaka RK_U32 reserved : 3; 109*437bfbebSnyanmisaka RK_U32 rodr_pic_num : 16; 110*437bfbebSnyanmisaka } synt_sli2; 111*437bfbebSnyanmisaka 112*437bfbebSnyanmisaka /* 0x000003c8 reg242 */ 113*437bfbebSnyanmisaka struct { 114*437bfbebSnyanmisaka RK_U32 nopp_flg : 1; 115*437bfbebSnyanmisaka RK_U32 ltrf_flg : 1; 116*437bfbebSnyanmisaka RK_U32 arpm_flg : 1; 117*437bfbebSnyanmisaka RK_U32 mmco4_pre : 1; 118*437bfbebSnyanmisaka RK_U32 mmco_type0 : 3; 119*437bfbebSnyanmisaka RK_U32 mmco_parm0 : 16; 120*437bfbebSnyanmisaka RK_U32 mmco_type1 : 3; 121*437bfbebSnyanmisaka RK_U32 mmco_type2 : 3; 122*437bfbebSnyanmisaka RK_U32 reserved : 3; 123*437bfbebSnyanmisaka } synt_refm0; 124*437bfbebSnyanmisaka 125*437bfbebSnyanmisaka /* 0x000003cc reg243 */ 126*437bfbebSnyanmisaka struct { 127*437bfbebSnyanmisaka RK_U32 mmco_parm1 : 16; 128*437bfbebSnyanmisaka RK_U32 mmco_parm2 : 16; 129*437bfbebSnyanmisaka } synt_refm1; 130*437bfbebSnyanmisaka 131*437bfbebSnyanmisaka /* 0x000003d0 reg244 */ 132*437bfbebSnyanmisaka struct { 133*437bfbebSnyanmisaka RK_U32 long_term_frame_idx0 : 4; 134*437bfbebSnyanmisaka RK_U32 long_term_frame_idx1 : 4; 135*437bfbebSnyanmisaka RK_U32 long_term_frame_idx2 : 4; 136*437bfbebSnyanmisaka RK_U32 reserved : 20; 137*437bfbebSnyanmisaka } synt_refm2; 138*437bfbebSnyanmisaka 139*437bfbebSnyanmisaka /* 0x000003d4 reg245 - 0x0x00000 reg251 */ 140*437bfbebSnyanmisaka RK_U32 reserved245_251[7]; 141*437bfbebSnyanmisaka 142*437bfbebSnyanmisaka /* 0x000003f0 reg252 */ 143*437bfbebSnyanmisaka struct { 144*437bfbebSnyanmisaka RK_U32 mv_v_lmt_thd : 14; 145*437bfbebSnyanmisaka RK_U32 reserved : 1; 146*437bfbebSnyanmisaka RK_U32 mv_v_lmt_en : 1; 147*437bfbebSnyanmisaka RK_U32 reserved1 : 16; 148*437bfbebSnyanmisaka } sli_cfg; 149*437bfbebSnyanmisaka 150*437bfbebSnyanmisaka /* 0x000003f4 reg253 */ 151*437bfbebSnyanmisaka RK_U32 reserved253; 152*437bfbebSnyanmisaka 153*437bfbebSnyanmisaka /* 0x000003f8 reg254 */ 154*437bfbebSnyanmisaka struct { 155*437bfbebSnyanmisaka RK_U32 slice_sta_x : 9; 156*437bfbebSnyanmisaka RK_U32 reserved1 : 7; 157*437bfbebSnyanmisaka RK_U32 slice_sta_y : 10; 158*437bfbebSnyanmisaka RK_U32 reserved2 : 5; 159*437bfbebSnyanmisaka RK_U32 slice_enc_ena : 1; 160*437bfbebSnyanmisaka } slice_enc_cfg0; 161*437bfbebSnyanmisaka 162*437bfbebSnyanmisaka /* 0x000003fc reg255 */ 163*437bfbebSnyanmisaka struct { 164*437bfbebSnyanmisaka RK_U32 slice_end_x : 9; 165*437bfbebSnyanmisaka RK_U32 reserved : 7; 166*437bfbebSnyanmisaka RK_U32 slice_end_y : 10; 167*437bfbebSnyanmisaka RK_U32 reserved1 : 6; 168*437bfbebSnyanmisaka } slice_enc_cfg1; 169*437bfbebSnyanmisaka 170*437bfbebSnyanmisaka /* 0x00000400 reg256 */ 171*437bfbebSnyanmisaka struct { 172*437bfbebSnyanmisaka RK_U32 reserved : 8; 173*437bfbebSnyanmisaka RK_U32 bsbt_addr_jpeg : 24; 174*437bfbebSnyanmisaka } adr_bsbt_jpeg; 175*437bfbebSnyanmisaka 176*437bfbebSnyanmisaka /* 0x00000404 reg257 */ 177*437bfbebSnyanmisaka struct { 178*437bfbebSnyanmisaka RK_U32 reserved : 8; 179*437bfbebSnyanmisaka RK_U32 bsbb_addr_jpeg : 24; 180*437bfbebSnyanmisaka } adr_bsbb_jpeg; 181*437bfbebSnyanmisaka 182*437bfbebSnyanmisaka /* 0x00000408 reg258 */ 183*437bfbebSnyanmisaka RK_U32 adr_bsbs_jpeg; 184*437bfbebSnyanmisaka 185*437bfbebSnyanmisaka /* 0x0000040c reg259 */ 186*437bfbebSnyanmisaka struct { 187*437bfbebSnyanmisaka RK_U32 bsadr_msk_jpeg : 4; 188*437bfbebSnyanmisaka RK_U32 reserved : 4; 189*437bfbebSnyanmisaka RK_U32 bsbr_addr_jpeg : 24; 190*437bfbebSnyanmisaka } adr_bsbr_jpeg; 191*437bfbebSnyanmisaka 192*437bfbebSnyanmisaka /* 0x00000410 reg260 */ 193*437bfbebSnyanmisaka struct { 194*437bfbebSnyanmisaka RK_U32 reserved : 4; 195*437bfbebSnyanmisaka RK_U32 adr_vsy_b_jpeg : 28; 196*437bfbebSnyanmisaka } adr_vsy_b_jpeg; 197*437bfbebSnyanmisaka 198*437bfbebSnyanmisaka /* 0x00000414 reg261 */ 199*437bfbebSnyanmisaka struct { 200*437bfbebSnyanmisaka RK_U32 reserved : 4; 201*437bfbebSnyanmisaka RK_U32 adr_vsc_b_jpeg : 28; 202*437bfbebSnyanmisaka } adr_vsc_b_jpeg; 203*437bfbebSnyanmisaka 204*437bfbebSnyanmisaka /* 0x00000418 reg262 */ 205*437bfbebSnyanmisaka struct { 206*437bfbebSnyanmisaka RK_U32 reserved : 4; 207*437bfbebSnyanmisaka RK_U32 adr_vsy_t_jpeg : 28; 208*437bfbebSnyanmisaka } adr_vsy_t_jpeg; 209*437bfbebSnyanmisaka 210*437bfbebSnyanmisaka /* 0x0000041c reg263 */ 211*437bfbebSnyanmisaka struct { 212*437bfbebSnyanmisaka RK_U32 reserved : 4; 213*437bfbebSnyanmisaka RK_U32 adr_vsc_t_jpeg : 28; 214*437bfbebSnyanmisaka } adr_vsc_t_jpeg; 215*437bfbebSnyanmisaka 216*437bfbebSnyanmisaka /* 0x00000420 reg264 */ 217*437bfbebSnyanmisaka RK_U32 adr_src0_jpeg; 218*437bfbebSnyanmisaka 219*437bfbebSnyanmisaka /* 0x00000424 reg265 */ 220*437bfbebSnyanmisaka RK_U32 adr_src1_jpeg; 221*437bfbebSnyanmisaka 222*437bfbebSnyanmisaka /* 0x00000428 reg266 */ 223*437bfbebSnyanmisaka RK_U32 adr_src2_jpeg; 224*437bfbebSnyanmisaka 225*437bfbebSnyanmisaka /* 0x0000042c reg267 */ 226*437bfbebSnyanmisaka RK_U32 bsp_size_jpeg; 227*437bfbebSnyanmisaka 228*437bfbebSnyanmisaka /* 0x430 - 0x43c */ 229*437bfbebSnyanmisaka RK_U32 reserved268_271[4]; 230*437bfbebSnyanmisaka 231*437bfbebSnyanmisaka /* 0x00000440 reg272 */ 232*437bfbebSnyanmisaka struct { 233*437bfbebSnyanmisaka RK_U32 pic_wd8_m1 : 11; 234*437bfbebSnyanmisaka RK_U32 reserved : 1; 235*437bfbebSnyanmisaka RK_U32 pp0_vnum_m1 : 4; 236*437bfbebSnyanmisaka RK_U32 pic_hd8_m1 : 11; 237*437bfbebSnyanmisaka RK_U32 reserved1 : 1; 238*437bfbebSnyanmisaka RK_U32 pp0_jnum_m1 : 4; 239*437bfbebSnyanmisaka } enc_rsl_jpeg; 240*437bfbebSnyanmisaka 241*437bfbebSnyanmisaka /* 0x00000444 reg273 */ 242*437bfbebSnyanmisaka struct { 243*437bfbebSnyanmisaka RK_U32 pic_wfill_jpeg : 6; 244*437bfbebSnyanmisaka RK_U32 reserved : 10; 245*437bfbebSnyanmisaka RK_U32 pic_hfill_jpeg : 6; 246*437bfbebSnyanmisaka RK_U32 reserved1 : 10; 247*437bfbebSnyanmisaka } src_fill_jpeg; 248*437bfbebSnyanmisaka 249*437bfbebSnyanmisaka /* 0x00000448 reg274 */ 250*437bfbebSnyanmisaka struct { 251*437bfbebSnyanmisaka RK_U32 alpha_swap_jpeg : 1; 252*437bfbebSnyanmisaka RK_U32 rbuv_swap_jpeg : 1; 253*437bfbebSnyanmisaka RK_U32 src_cfmt_jpeg : 4; 254*437bfbebSnyanmisaka RK_U32 reserved : 2; 255*437bfbebSnyanmisaka RK_U32 src_range_trns_en_jpeg : 1; 256*437bfbebSnyanmisaka RK_U32 src_range_trns_sel_jpeg : 1; 257*437bfbebSnyanmisaka RK_U32 chroma_ds_mode_jpeg : 1; 258*437bfbebSnyanmisaka RK_U32 reserved1 : 21; 259*437bfbebSnyanmisaka } src_fmt_jpeg; 260*437bfbebSnyanmisaka 261*437bfbebSnyanmisaka /* 0x0000044c reg275 */ 262*437bfbebSnyanmisaka struct { 263*437bfbebSnyanmisaka RK_U32 csc_wgt_b2y_jpeg : 9; 264*437bfbebSnyanmisaka RK_U32 csc_wgt_g2y_jpeg : 9; 265*437bfbebSnyanmisaka RK_U32 csc_wgt_r2y_jpeg : 9; 266*437bfbebSnyanmisaka RK_U32 reserved : 5; 267*437bfbebSnyanmisaka } src_udfy_jpeg; 268*437bfbebSnyanmisaka 269*437bfbebSnyanmisaka /* 0x00000450 reg276 */ 270*437bfbebSnyanmisaka struct { 271*437bfbebSnyanmisaka RK_U32 csc_wgt_b2u_jpeg : 9; 272*437bfbebSnyanmisaka RK_U32 csc_wgt_g2u_jpeg : 9; 273*437bfbebSnyanmisaka RK_U32 csc_wgt_r2u_jpeg : 9; 274*437bfbebSnyanmisaka RK_U32 reserved : 5; 275*437bfbebSnyanmisaka } src_udfu_jpeg; 276*437bfbebSnyanmisaka 277*437bfbebSnyanmisaka /* 0x00000454 reg277 */ 278*437bfbebSnyanmisaka struct { 279*437bfbebSnyanmisaka RK_U32 csc_wgt_b2v_jpeg : 9; 280*437bfbebSnyanmisaka RK_U32 csc_wgt_g2v_jpeg : 9; 281*437bfbebSnyanmisaka RK_U32 csc_wgt_r2v_jpeg : 9; 282*437bfbebSnyanmisaka RK_U32 reserved : 5; 283*437bfbebSnyanmisaka } src_udfv_jpeg; 284*437bfbebSnyanmisaka 285*437bfbebSnyanmisaka /* 0x00000458 reg278 */ 286*437bfbebSnyanmisaka struct { 287*437bfbebSnyanmisaka RK_U32 csc_ofst_v_jpeg : 8; 288*437bfbebSnyanmisaka RK_U32 csc_ofst_u_jpeg : 8; 289*437bfbebSnyanmisaka RK_U32 csc_ofst_y_jpeg : 5; 290*437bfbebSnyanmisaka RK_U32 reserved : 11; 291*437bfbebSnyanmisaka } src_udfo_jpeg; 292*437bfbebSnyanmisaka 293*437bfbebSnyanmisaka /* 0x0000045c reg279 */ 294*437bfbebSnyanmisaka struct { 295*437bfbebSnyanmisaka RK_U32 cr_force_value_jpeg : 8; 296*437bfbebSnyanmisaka RK_U32 cb_force_value_jpeg : 8; 297*437bfbebSnyanmisaka RK_U32 chroma_force_en_jpeg : 1; 298*437bfbebSnyanmisaka RK_U32 reserved : 9; 299*437bfbebSnyanmisaka RK_U32 src_mirr_jpeg : 1; 300*437bfbebSnyanmisaka RK_U32 src_rot_jpeg : 2; 301*437bfbebSnyanmisaka RK_U32 reserved1 : 1; 302*437bfbebSnyanmisaka RK_U32 rkfbcd_en_jpeg : 1; 303*437bfbebSnyanmisaka RK_U32 reserved2 : 1; 304*437bfbebSnyanmisaka } src_proc_jpeg; 305*437bfbebSnyanmisaka 306*437bfbebSnyanmisaka /* 0x00000460 reg280 */ 307*437bfbebSnyanmisaka struct { 308*437bfbebSnyanmisaka RK_U32 pic_ofst_x_jpeg : 14; 309*437bfbebSnyanmisaka RK_U32 reserved : 2; 310*437bfbebSnyanmisaka RK_U32 pic_ofst_y_jpeg : 14; 311*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 312*437bfbebSnyanmisaka } pic_ofst_jpeg; 313*437bfbebSnyanmisaka 314*437bfbebSnyanmisaka /* 0x00000464 reg281 */ 315*437bfbebSnyanmisaka struct { 316*437bfbebSnyanmisaka RK_U32 src_strd0_jpeg : 21; 317*437bfbebSnyanmisaka RK_U32 reserved : 11; 318*437bfbebSnyanmisaka } src_strd0_jpeg; 319*437bfbebSnyanmisaka 320*437bfbebSnyanmisaka /* 0x00000468 reg282 */ 321*437bfbebSnyanmisaka struct { 322*437bfbebSnyanmisaka RK_U32 src_strd1_jpeg : 16; 323*437bfbebSnyanmisaka RK_U32 reserved : 16; 324*437bfbebSnyanmisaka } src_strd1_jpeg; 325*437bfbebSnyanmisaka 326*437bfbebSnyanmisaka /* 0x0000046c reg283 */ 327*437bfbebSnyanmisaka struct { 328*437bfbebSnyanmisaka RK_U32 pp_corner_filter_strength_jpeg : 2; 329*437bfbebSnyanmisaka RK_U32 reserved : 2; 330*437bfbebSnyanmisaka RK_U32 pp_edge_filter_strength_jpeg : 2; 331*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 332*437bfbebSnyanmisaka RK_U32 pp_internal_filter_strength_jpeg : 2; 333*437bfbebSnyanmisaka RK_U32 reserved2 : 22; 334*437bfbebSnyanmisaka } src_flt_cfg_jpeg; 335*437bfbebSnyanmisaka 336*437bfbebSnyanmisaka /* 0x00000470 reg284 */ 337*437bfbebSnyanmisaka struct { 338*437bfbebSnyanmisaka RK_U32 jpeg_bias_y : 15; 339*437bfbebSnyanmisaka RK_U32 reserved : 17; 340*437bfbebSnyanmisaka } jpeg_y_cfg; 341*437bfbebSnyanmisaka 342*437bfbebSnyanmisaka /* 0x00000474 reg285 */ 343*437bfbebSnyanmisaka struct { 344*437bfbebSnyanmisaka RK_U32 jpeg_bias_u : 15; 345*437bfbebSnyanmisaka RK_U32 reserved : 17; 346*437bfbebSnyanmisaka } jpeg_u_cfg; 347*437bfbebSnyanmisaka 348*437bfbebSnyanmisaka /* 0x00000478 reg286 */ 349*437bfbebSnyanmisaka struct { 350*437bfbebSnyanmisaka RK_U32 jpeg_bias_v : 15; 351*437bfbebSnyanmisaka RK_U32 reserved : 17; 352*437bfbebSnyanmisaka } jpeg_v_cfg; 353*437bfbebSnyanmisaka 354*437bfbebSnyanmisaka /* 0x0000047c reg287 */ 355*437bfbebSnyanmisaka struct { 356*437bfbebSnyanmisaka RK_U32 jpeg_ri : 25; 357*437bfbebSnyanmisaka RK_U32 jpeg_out_mode : 1; 358*437bfbebSnyanmisaka RK_U32 jpeg_start_rst_m : 3; 359*437bfbebSnyanmisaka RK_U32 jpeg_pic_last_ecs : 1; 360*437bfbebSnyanmisaka RK_U32 reserved : 1; 361*437bfbebSnyanmisaka RK_U32 jpeg_stnd : 1; 362*437bfbebSnyanmisaka } jpeg_base_cfg; 363*437bfbebSnyanmisaka 364*437bfbebSnyanmisaka /* 0x00000480 reg288 */ 365*437bfbebSnyanmisaka struct { 366*437bfbebSnyanmisaka RK_U32 uvc_partition0_len_jpeg : 12; 367*437bfbebSnyanmisaka RK_U32 uvc_partition_len_jpeg : 12; 368*437bfbebSnyanmisaka RK_U32 uvc_skip_len_jpeg : 6; 369*437bfbebSnyanmisaka RK_U32 reserved : 2; 370*437bfbebSnyanmisaka } uvc_cfg_jpeg; 371*437bfbebSnyanmisaka 372*437bfbebSnyanmisaka /* 0x00000484 reg289 */ 373*437bfbebSnyanmisaka struct { 374*437bfbebSnyanmisaka RK_U32 reserved : 4; 375*437bfbebSnyanmisaka RK_U32 eslf_badr_jpeg : 28; 376*437bfbebSnyanmisaka } adr_eslf_jpeg; 377*437bfbebSnyanmisaka 378*437bfbebSnyanmisaka /* 0x00000488 reg290 */ 379*437bfbebSnyanmisaka struct { 380*437bfbebSnyanmisaka RK_U32 eslf_rptr_jpeg : 10; 381*437bfbebSnyanmisaka RK_U32 eslf_wptr_jpeg : 10; 382*437bfbebSnyanmisaka RK_U32 eslf_blen_jpeg : 10; 383*437bfbebSnyanmisaka RK_U32 eslf_updt_jpeg : 2; 384*437bfbebSnyanmisaka } eslf_buf_jpeg; 385*437bfbebSnyanmisaka 386*437bfbebSnyanmisaka /* 0x48c */ 387*437bfbebSnyanmisaka RK_U32 reserved_291; 388*437bfbebSnyanmisaka 389*437bfbebSnyanmisaka /* 0x00000490 reg292 */ 390*437bfbebSnyanmisaka struct { 391*437bfbebSnyanmisaka RK_U32 roi0_rdoq_start_x : 11; 392*437bfbebSnyanmisaka RK_U32 roi0_rdoq_start_y : 11; 393*437bfbebSnyanmisaka RK_U32 reserved : 3; 394*437bfbebSnyanmisaka RK_U32 roi0_rdoq_level : 6; 395*437bfbebSnyanmisaka RK_U32 roi0_rdoq_en : 1; 396*437bfbebSnyanmisaka } jpeg_roi0_cfg0; 397*437bfbebSnyanmisaka 398*437bfbebSnyanmisaka /* 0x00000494 reg293 */ 399*437bfbebSnyanmisaka struct { 400*437bfbebSnyanmisaka RK_U32 roi0_rdoq_width_m1 : 11; 401*437bfbebSnyanmisaka RK_U32 roi0_rdoq_height_m1 : 11; 402*437bfbebSnyanmisaka RK_U32 reserved : 3; 403*437bfbebSnyanmisaka RK_U32 frm_rdoq_level : 6; 404*437bfbebSnyanmisaka RK_U32 frm_rdoq_en : 1; 405*437bfbebSnyanmisaka } jpeg_roi0_cfg1; 406*437bfbebSnyanmisaka 407*437bfbebSnyanmisaka /* 0x00000498 reg294 */ 408*437bfbebSnyanmisaka struct { 409*437bfbebSnyanmisaka RK_U32 roi1_rdoq_start_x : 11; 410*437bfbebSnyanmisaka RK_U32 roi1_rdoq_start_y : 11; 411*437bfbebSnyanmisaka RK_U32 reserved : 3; 412*437bfbebSnyanmisaka RK_U32 roi1_rdoq_level : 6; 413*437bfbebSnyanmisaka RK_U32 roi1_rdoq_en : 1; 414*437bfbebSnyanmisaka } jpeg_roi1_cfg0; 415*437bfbebSnyanmisaka 416*437bfbebSnyanmisaka /* 0x0000049c reg295 */ 417*437bfbebSnyanmisaka struct { 418*437bfbebSnyanmisaka RK_U32 roi1_rdoq_width_m1 : 11; 419*437bfbebSnyanmisaka RK_U32 roi1_rdoq_height_m1 : 11; 420*437bfbebSnyanmisaka RK_U32 reserved : 10; 421*437bfbebSnyanmisaka } jpeg_roi1_cfg1; 422*437bfbebSnyanmisaka 423*437bfbebSnyanmisaka /* 0x000004a0 reg296 */ 424*437bfbebSnyanmisaka struct { 425*437bfbebSnyanmisaka RK_U32 roi2_rdoq_start_x : 11; 426*437bfbebSnyanmisaka RK_U32 roi2_rdoq_start_y : 11; 427*437bfbebSnyanmisaka RK_U32 reserved : 3; 428*437bfbebSnyanmisaka RK_U32 roi2_rdoq_level : 6; 429*437bfbebSnyanmisaka RK_U32 roi2_rdoq_en : 1; 430*437bfbebSnyanmisaka } jpeg_roi2_cfg0; 431*437bfbebSnyanmisaka 432*437bfbebSnyanmisaka /* 0x000004a4 reg297 */ 433*437bfbebSnyanmisaka struct { 434*437bfbebSnyanmisaka RK_U32 roi2_rdoq_width_m1 : 11; 435*437bfbebSnyanmisaka RK_U32 roi2_rdoq_height_m1 : 11; 436*437bfbebSnyanmisaka RK_U32 reserved : 10; 437*437bfbebSnyanmisaka } jpeg_roi2_cfg1; 438*437bfbebSnyanmisaka 439*437bfbebSnyanmisaka /* 0x000004a8 reg298 */ 440*437bfbebSnyanmisaka struct { 441*437bfbebSnyanmisaka RK_U32 roi3_rdoq_start_x : 11; 442*437bfbebSnyanmisaka RK_U32 roi3_rdoq_start_y : 11; 443*437bfbebSnyanmisaka RK_U32 reserved : 3; 444*437bfbebSnyanmisaka RK_U32 roi3_rdoq_level : 6; 445*437bfbebSnyanmisaka RK_U32 roi3_rdoq_en : 1; 446*437bfbebSnyanmisaka } jpeg_roi3_cfg0; 447*437bfbebSnyanmisaka 448*437bfbebSnyanmisaka /* 0x000004ac reg299 */ 449*437bfbebSnyanmisaka struct { 450*437bfbebSnyanmisaka RK_U32 roi3_rdoq_width_m1 : 11; 451*437bfbebSnyanmisaka RK_U32 roi3_rdoq_height_m1 : 11; 452*437bfbebSnyanmisaka RK_U32 reserved : 10; 453*437bfbebSnyanmisaka } jpeg_roi3_cfg1; 454*437bfbebSnyanmisaka 455*437bfbebSnyanmisaka /* 0x000004b0 reg300 */ 456*437bfbebSnyanmisaka struct { 457*437bfbebSnyanmisaka RK_U32 roi4_rdoq_start_x : 11; 458*437bfbebSnyanmisaka RK_U32 roi4_rdoq_start_y : 11; 459*437bfbebSnyanmisaka RK_U32 reserved : 3; 460*437bfbebSnyanmisaka RK_U32 roi4_rdoq_level : 6; 461*437bfbebSnyanmisaka RK_U32 roi4_rdoq_en : 1; 462*437bfbebSnyanmisaka } jpeg_roi4_cfg0; 463*437bfbebSnyanmisaka 464*437bfbebSnyanmisaka /* 0x000004b4 reg301 */ 465*437bfbebSnyanmisaka struct { 466*437bfbebSnyanmisaka RK_U32 roi4_rdoq_width_m1 : 11; 467*437bfbebSnyanmisaka RK_U32 roi4_rdoq_height_m1 : 11; 468*437bfbebSnyanmisaka RK_U32 reserved : 10; 469*437bfbebSnyanmisaka } jpeg_roi4_cfg1; 470*437bfbebSnyanmisaka 471*437bfbebSnyanmisaka /* 0x000004b8 reg302 */ 472*437bfbebSnyanmisaka struct { 473*437bfbebSnyanmisaka RK_U32 roi5_rdoq_start_x : 11; 474*437bfbebSnyanmisaka RK_U32 roi5_rdoq_start_y : 11; 475*437bfbebSnyanmisaka RK_U32 reserved : 3; 476*437bfbebSnyanmisaka RK_U32 roi5_rdoq_level : 6; 477*437bfbebSnyanmisaka RK_U32 roi5_rdoq_en : 1; 478*437bfbebSnyanmisaka } jpeg_roi5_cfg0; 479*437bfbebSnyanmisaka 480*437bfbebSnyanmisaka /* 0x000004bc reg303 */ 481*437bfbebSnyanmisaka struct { 482*437bfbebSnyanmisaka RK_U32 roi5_rdoq_width_m1 : 11; 483*437bfbebSnyanmisaka RK_U32 roi5_rdoq_height_m1 : 11; 484*437bfbebSnyanmisaka RK_U32 reserved : 10; 485*437bfbebSnyanmisaka } jpeg_roi5_cfg1; 486*437bfbebSnyanmisaka 487*437bfbebSnyanmisaka /* 0x000004c0 reg304 */ 488*437bfbebSnyanmisaka struct { 489*437bfbebSnyanmisaka RK_U32 roi6_rdoq_start_x : 11; 490*437bfbebSnyanmisaka RK_U32 roi6_rdoq_start_y : 11; 491*437bfbebSnyanmisaka RK_U32 reserved : 3; 492*437bfbebSnyanmisaka RK_U32 roi6_rdoq_level : 6; 493*437bfbebSnyanmisaka RK_U32 roi6_rdoq_en : 1; 494*437bfbebSnyanmisaka } jpeg_roi6_cfg0; 495*437bfbebSnyanmisaka 496*437bfbebSnyanmisaka /* 0x000004c4 reg305 */ 497*437bfbebSnyanmisaka struct { 498*437bfbebSnyanmisaka RK_U32 roi6_rdoq_width_m1 : 11; 499*437bfbebSnyanmisaka RK_U32 roi6_rdoq_height_m1 : 11; 500*437bfbebSnyanmisaka RK_U32 reserved : 10; 501*437bfbebSnyanmisaka } jpeg_roi6_cfg1; 502*437bfbebSnyanmisaka 503*437bfbebSnyanmisaka /* 0x000004c8 reg306 */ 504*437bfbebSnyanmisaka struct { 505*437bfbebSnyanmisaka RK_U32 roi7_rdoq_start_x : 11; 506*437bfbebSnyanmisaka RK_U32 roi7_rdoq_start_y : 11; 507*437bfbebSnyanmisaka RK_U32 reserved : 3; 508*437bfbebSnyanmisaka RK_U32 roi7_rdoq_level : 6; 509*437bfbebSnyanmisaka RK_U32 roi7_rdoq_en : 1; 510*437bfbebSnyanmisaka } jpeg_roi7_cfg0; 511*437bfbebSnyanmisaka 512*437bfbebSnyanmisaka /* 0x000004cc reg307 */ 513*437bfbebSnyanmisaka struct { 514*437bfbebSnyanmisaka RK_U32 roi7_rdoq_width_m1 : 11; 515*437bfbebSnyanmisaka RK_U32 roi7_rdoq_height_m1 : 11; 516*437bfbebSnyanmisaka RK_U32 reserved : 10; 517*437bfbebSnyanmisaka } jpeg_roi7_cfg1; 518*437bfbebSnyanmisaka 519*437bfbebSnyanmisaka /* 0x000004d0 reg308 */ 520*437bfbebSnyanmisaka struct { 521*437bfbebSnyanmisaka RK_U32 roi8_rdoq_start_x : 11; 522*437bfbebSnyanmisaka RK_U32 roi8_rdoq_start_y : 11; 523*437bfbebSnyanmisaka RK_U32 reserved : 3; 524*437bfbebSnyanmisaka RK_U32 roi8_rdoq_level : 6; 525*437bfbebSnyanmisaka RK_U32 roi8_rdoq_en : 1; 526*437bfbebSnyanmisaka } jpeg_roi8_cfg0; 527*437bfbebSnyanmisaka 528*437bfbebSnyanmisaka /* 0x000004d4 reg309 */ 529*437bfbebSnyanmisaka struct { 530*437bfbebSnyanmisaka RK_U32 roi8_rdoq_width_m1 : 11; 531*437bfbebSnyanmisaka RK_U32 roi8_rdoq_height_m1 : 11; 532*437bfbebSnyanmisaka RK_U32 reserved : 10; 533*437bfbebSnyanmisaka } jpeg_roi8_cfg1; 534*437bfbebSnyanmisaka 535*437bfbebSnyanmisaka /* 0x000004d8 reg310 */ 536*437bfbebSnyanmisaka struct { 537*437bfbebSnyanmisaka RK_U32 roi9_rdoq_start_x : 11; 538*437bfbebSnyanmisaka RK_U32 roi9_rdoq_start_y : 11; 539*437bfbebSnyanmisaka RK_U32 reserved : 3; 540*437bfbebSnyanmisaka RK_U32 roi9_rdoq_level : 6; 541*437bfbebSnyanmisaka RK_U32 roi9_rdoq_en : 1; 542*437bfbebSnyanmisaka } jpeg_roi9_cfg0; 543*437bfbebSnyanmisaka 544*437bfbebSnyanmisaka /* 0x000004dc reg311 */ 545*437bfbebSnyanmisaka struct { 546*437bfbebSnyanmisaka RK_U32 roi9_rdoq_width_m1 : 11; 547*437bfbebSnyanmisaka RK_U32 roi9_rdoq_height_m1 : 11; 548*437bfbebSnyanmisaka RK_U32 reserved : 10; 549*437bfbebSnyanmisaka } jpeg_roi9_cfg1; 550*437bfbebSnyanmisaka 551*437bfbebSnyanmisaka /* 0x000004e0 reg312 */ 552*437bfbebSnyanmisaka struct { 553*437bfbebSnyanmisaka RK_U32 roi10_rdoq_start_x : 11; 554*437bfbebSnyanmisaka RK_U32 roi10_rdoq_start_y : 11; 555*437bfbebSnyanmisaka RK_U32 reserved : 3; 556*437bfbebSnyanmisaka RK_U32 roi10_rdoq_level : 6; 557*437bfbebSnyanmisaka RK_U32 roi10_rdoq_en : 1; 558*437bfbebSnyanmisaka } jpeg_roi10_cfg0; 559*437bfbebSnyanmisaka 560*437bfbebSnyanmisaka /* 0x000004e4 reg313 */ 561*437bfbebSnyanmisaka struct { 562*437bfbebSnyanmisaka RK_U32 roi10_rdoq_width_m1 : 11; 563*437bfbebSnyanmisaka RK_U32 roi10_rdoq_height_m1 : 11; 564*437bfbebSnyanmisaka RK_U32 reserved : 10; 565*437bfbebSnyanmisaka } jpeg_roi10_cfg1; 566*437bfbebSnyanmisaka 567*437bfbebSnyanmisaka /* 0x000004e8 reg314 */ 568*437bfbebSnyanmisaka struct { 569*437bfbebSnyanmisaka RK_U32 roi11_rdoq_start_x : 11; 570*437bfbebSnyanmisaka RK_U32 roi11_rdoq_start_y : 11; 571*437bfbebSnyanmisaka RK_U32 reserved : 3; 572*437bfbebSnyanmisaka RK_U32 roi11_rdoq_level : 6; 573*437bfbebSnyanmisaka RK_U32 roi11_rdoq_en : 1; 574*437bfbebSnyanmisaka } jpeg_roi11_cfg0; 575*437bfbebSnyanmisaka 576*437bfbebSnyanmisaka /* 0x000004ec reg315 */ 577*437bfbebSnyanmisaka struct { 578*437bfbebSnyanmisaka RK_U32 roi11_rdoq_width_m1 : 11; 579*437bfbebSnyanmisaka RK_U32 roi11_rdoq_height_m1 : 11; 580*437bfbebSnyanmisaka RK_U32 reserved : 10; 581*437bfbebSnyanmisaka } jpeg_roi11_cfg1; 582*437bfbebSnyanmisaka 583*437bfbebSnyanmisaka /* 0x000004f0 reg316 */ 584*437bfbebSnyanmisaka struct { 585*437bfbebSnyanmisaka RK_U32 roi12_rdoq_start_x : 11; 586*437bfbebSnyanmisaka RK_U32 roi12_rdoq_start_y : 11; 587*437bfbebSnyanmisaka RK_U32 reserved : 3; 588*437bfbebSnyanmisaka RK_U32 roi12_rdoq_level : 6; 589*437bfbebSnyanmisaka RK_U32 roi12_rdoq_en : 1; 590*437bfbebSnyanmisaka } jpeg_roi12_cfg0; 591*437bfbebSnyanmisaka 592*437bfbebSnyanmisaka /* 0x000004f4 reg317 */ 593*437bfbebSnyanmisaka struct { 594*437bfbebSnyanmisaka RK_U32 roi12_rdoq_width_m1 : 11; 595*437bfbebSnyanmisaka RK_U32 roi12_rdoq_height_m1 : 11; 596*437bfbebSnyanmisaka RK_U32 reserved : 10; 597*437bfbebSnyanmisaka } jpeg_roi12_cfg1; 598*437bfbebSnyanmisaka 599*437bfbebSnyanmisaka /* 0x000004f8 reg318 */ 600*437bfbebSnyanmisaka struct { 601*437bfbebSnyanmisaka RK_U32 roi13_rdoq_start_x : 11; 602*437bfbebSnyanmisaka RK_U32 roi13_rdoq_start_y : 11; 603*437bfbebSnyanmisaka RK_U32 reserved : 3; 604*437bfbebSnyanmisaka RK_U32 roi13_rdoq_level : 6; 605*437bfbebSnyanmisaka RK_U32 roi13_rdoq_en : 1; 606*437bfbebSnyanmisaka } jpeg_roi13_cfg0; 607*437bfbebSnyanmisaka 608*437bfbebSnyanmisaka /* 0x000004fc reg319 */ 609*437bfbebSnyanmisaka struct { 610*437bfbebSnyanmisaka RK_U32 roi13_rdoq_width_m1 : 11; 611*437bfbebSnyanmisaka RK_U32 roi13_rdoq_height_m1 : 11; 612*437bfbebSnyanmisaka RK_U32 reserved : 10; 613*437bfbebSnyanmisaka } jpeg_roi13_cfg1; 614*437bfbebSnyanmisaka 615*437bfbebSnyanmisaka /* 0x00000500 reg320 */ 616*437bfbebSnyanmisaka struct { 617*437bfbebSnyanmisaka RK_U32 roi14_rdoq_start_x : 11; 618*437bfbebSnyanmisaka RK_U32 roi14_rdoq_start_y : 11; 619*437bfbebSnyanmisaka RK_U32 reserved : 3; 620*437bfbebSnyanmisaka RK_U32 roi14_rdoq_level : 6; 621*437bfbebSnyanmisaka RK_U32 roi14_rdoq_en : 1; 622*437bfbebSnyanmisaka } jpeg_roi14_cfg0; 623*437bfbebSnyanmisaka 624*437bfbebSnyanmisaka /* 0x00000504 reg321 */ 625*437bfbebSnyanmisaka struct { 626*437bfbebSnyanmisaka RK_U32 roi14_rdoq_width_m1 : 11; 627*437bfbebSnyanmisaka RK_U32 roi14_rdoq_height_m1 : 11; 628*437bfbebSnyanmisaka RK_U32 reserved : 10; 629*437bfbebSnyanmisaka } jpeg_roi14_cfg1; 630*437bfbebSnyanmisaka 631*437bfbebSnyanmisaka /* 0x00000508 reg322 */ 632*437bfbebSnyanmisaka struct { 633*437bfbebSnyanmisaka RK_U32 roi15_rdoq_start_x : 11; 634*437bfbebSnyanmisaka RK_U32 roi15_rdoq_start_y : 11; 635*437bfbebSnyanmisaka RK_U32 reserved : 3; 636*437bfbebSnyanmisaka RK_U32 roi15_rdoq_level : 6; 637*437bfbebSnyanmisaka RK_U32 roi15_rdoq_en : 1; 638*437bfbebSnyanmisaka } jpeg_roi15_cfg0; 639*437bfbebSnyanmisaka 640*437bfbebSnyanmisaka /* 0x0000050c reg323 */ 641*437bfbebSnyanmisaka struct { 642*437bfbebSnyanmisaka RK_U32 roi15_rdoq_width_m1 : 11; 643*437bfbebSnyanmisaka RK_U32 roi15_rdoq_height_m1 : 11; 644*437bfbebSnyanmisaka RK_U32 reserved : 10; 645*437bfbebSnyanmisaka } jpeg_roi15_cfg1; 646*437bfbebSnyanmisaka 647*437bfbebSnyanmisaka /* 0x510 - 0x51c */ 648*437bfbebSnyanmisaka RK_U32 reserved324_327[4]; 649*437bfbebSnyanmisaka 650*437bfbebSnyanmisaka /* 0x00000520 reg328 */ 651*437bfbebSnyanmisaka struct { 652*437bfbebSnyanmisaka RK_U32 reserved : 4; 653*437bfbebSnyanmisaka RK_U32 base_addr_md : 28; 654*437bfbebSnyanmisaka } adr_md_vpp; 655*437bfbebSnyanmisaka 656*437bfbebSnyanmisaka /* 0x00000524 reg329 */ 657*437bfbebSnyanmisaka struct { 658*437bfbebSnyanmisaka RK_U32 reserved : 4; 659*437bfbebSnyanmisaka RK_U32 base_addr_od : 28; 660*437bfbebSnyanmisaka } adr_od_vpp; 661*437bfbebSnyanmisaka 662*437bfbebSnyanmisaka /* 0x00000528 reg330 */ 663*437bfbebSnyanmisaka struct { 664*437bfbebSnyanmisaka RK_U32 reserved : 4; 665*437bfbebSnyanmisaka RK_U32 base_addr_ref_mdw : 28; 666*437bfbebSnyanmisaka } adr_ref_mdw; 667*437bfbebSnyanmisaka 668*437bfbebSnyanmisaka /* 0x0000052c reg331 */ 669*437bfbebSnyanmisaka struct { 670*437bfbebSnyanmisaka RK_U32 reserved : 4; 671*437bfbebSnyanmisaka RK_U32 base_addr_ref_mdr : 28; 672*437bfbebSnyanmisaka } adr_ref_mdr; 673*437bfbebSnyanmisaka 674*437bfbebSnyanmisaka /* 0x00000530 reg332 */ 675*437bfbebSnyanmisaka struct { 676*437bfbebSnyanmisaka RK_U32 sto_stride_md : 8; 677*437bfbebSnyanmisaka RK_U32 sto_stride_od : 8; 678*437bfbebSnyanmisaka RK_U32 cur_frm_en_md : 1; 679*437bfbebSnyanmisaka RK_U32 ref_frm_en_md : 1; 680*437bfbebSnyanmisaka RK_U32 switch_sad_md : 2; 681*437bfbebSnyanmisaka RK_U32 night_mode_en_md : 1; 682*437bfbebSnyanmisaka RK_U32 flycatkin_flt_en_md : 1; 683*437bfbebSnyanmisaka RK_U32 en_od : 1; 684*437bfbebSnyanmisaka RK_U32 background_en_od : 1; 685*437bfbebSnyanmisaka RK_U32 sad_comp_en_od : 1; 686*437bfbebSnyanmisaka RK_U32 reserved : 6; 687*437bfbebSnyanmisaka RK_U32 vepu_pp_en : 1; 688*437bfbebSnyanmisaka } vpp_base_cfg; 689*437bfbebSnyanmisaka 690*437bfbebSnyanmisaka /* 0x00000534 reg333 */ 691*437bfbebSnyanmisaka struct { 692*437bfbebSnyanmisaka RK_U32 thres_sad_md : 12; 693*437bfbebSnyanmisaka RK_U32 thres_move_md : 3; 694*437bfbebSnyanmisaka RK_U32 reserved : 1; 695*437bfbebSnyanmisaka RK_U32 thres_dust_move_md : 4; 696*437bfbebSnyanmisaka RK_U32 thres_dust_blk_md : 3; 697*437bfbebSnyanmisaka RK_U32 reserved1 : 1; 698*437bfbebSnyanmisaka RK_U32 thres_dust_chng_md : 8; 699*437bfbebSnyanmisaka } thd_md_vpp; 700*437bfbebSnyanmisaka 701*437bfbebSnyanmisaka /* 0x00000538 reg334 */ 702*437bfbebSnyanmisaka struct { 703*437bfbebSnyanmisaka RK_U32 thres_complex_od : 12; 704*437bfbebSnyanmisaka RK_U32 thres_complex_cnt_od : 3; 705*437bfbebSnyanmisaka RK_U32 thres_sad_od : 14; 706*437bfbebSnyanmisaka RK_U32 reserved : 3; 707*437bfbebSnyanmisaka } thd_od_vpp; 708*437bfbebSnyanmisaka } H264eVepu511Frame; 709*437bfbebSnyanmisaka 710*437bfbebSnyanmisaka /* class: param */ 711*437bfbebSnyanmisaka /* 0x00001700 reg1472 - 0x000019cc reg1651 */ 712*437bfbebSnyanmisaka typedef struct H264eVepu511Param_t { 713*437bfbebSnyanmisaka /* 0x00001700 reg1472 */ 714*437bfbebSnyanmisaka struct { 715*437bfbebSnyanmisaka RK_U32 iprd_tthdy4_0 : 12; 716*437bfbebSnyanmisaka RK_U32 reserved : 4; 717*437bfbebSnyanmisaka RK_U32 iprd_tthdy4_1 : 12; 718*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 719*437bfbebSnyanmisaka } iprd_tthdy4_0; 720*437bfbebSnyanmisaka 721*437bfbebSnyanmisaka /* 0x00001704 reg1473 */ 722*437bfbebSnyanmisaka struct { 723*437bfbebSnyanmisaka RK_U32 iprd_tthdy4_2 : 12; 724*437bfbebSnyanmisaka RK_U32 reserved : 4; 725*437bfbebSnyanmisaka RK_U32 iprd_tthdy4_3 : 12; 726*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 727*437bfbebSnyanmisaka } iprd_tthdy4_1; 728*437bfbebSnyanmisaka 729*437bfbebSnyanmisaka /* 0x00001708 reg1474 */ 730*437bfbebSnyanmisaka struct { 731*437bfbebSnyanmisaka RK_U32 iprd_tthdc8_0 : 12; 732*437bfbebSnyanmisaka RK_U32 reserved : 4; 733*437bfbebSnyanmisaka RK_U32 iprd_tthdc8_1 : 12; 734*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 735*437bfbebSnyanmisaka } iprd_tthdc8_0; 736*437bfbebSnyanmisaka 737*437bfbebSnyanmisaka /* 0x0000170c reg1475 */ 738*437bfbebSnyanmisaka struct { 739*437bfbebSnyanmisaka RK_U32 iprd_tthdc8_2 : 12; 740*437bfbebSnyanmisaka RK_U32 reserved : 4; 741*437bfbebSnyanmisaka RK_U32 iprd_tthdc8_3 : 12; 742*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 743*437bfbebSnyanmisaka } iprd_tthdc8_1; 744*437bfbebSnyanmisaka 745*437bfbebSnyanmisaka /* 0x00001710 reg1476 */ 746*437bfbebSnyanmisaka struct { 747*437bfbebSnyanmisaka RK_U32 iprd_tthdy8_0 : 12; 748*437bfbebSnyanmisaka RK_U32 reserved : 4; 749*437bfbebSnyanmisaka RK_U32 iprd_tthdy8_1 : 12; 750*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 751*437bfbebSnyanmisaka } iprd_tthdy8_0; 752*437bfbebSnyanmisaka 753*437bfbebSnyanmisaka /* 0x00001714 reg1477 */ 754*437bfbebSnyanmisaka struct { 755*437bfbebSnyanmisaka RK_U32 iprd_tthdy8_2 : 12; 756*437bfbebSnyanmisaka RK_U32 reserved : 4; 757*437bfbebSnyanmisaka RK_U32 iprd_tthdy8_3 : 12; 758*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 759*437bfbebSnyanmisaka } iprd_tthdy8_1; 760*437bfbebSnyanmisaka 761*437bfbebSnyanmisaka /* 0x00001718 reg1478 */ 762*437bfbebSnyanmisaka struct { 763*437bfbebSnyanmisaka RK_U32 iprd_tthd_ul : 12; 764*437bfbebSnyanmisaka RK_U32 reserved : 20; 765*437bfbebSnyanmisaka } iprd_tthd_ul; 766*437bfbebSnyanmisaka 767*437bfbebSnyanmisaka /* 0x0000171c reg1479 */ 768*437bfbebSnyanmisaka struct { 769*437bfbebSnyanmisaka RK_U32 iprd_wgty8_0 : 8; 770*437bfbebSnyanmisaka RK_U32 iprd_wgty8_1 : 8; 771*437bfbebSnyanmisaka RK_U32 iprd_wgty8_2 : 8; 772*437bfbebSnyanmisaka RK_U32 iprd_wgty8_3 : 8; 773*437bfbebSnyanmisaka } iprd_wgty8; 774*437bfbebSnyanmisaka 775*437bfbebSnyanmisaka /* 0x00001720 reg1480 */ 776*437bfbebSnyanmisaka struct { 777*437bfbebSnyanmisaka RK_U32 iprd_wgty4_0 : 8; 778*437bfbebSnyanmisaka RK_U32 iprd_wgty4_1 : 8; 779*437bfbebSnyanmisaka RK_U32 iprd_wgty4_2 : 8; 780*437bfbebSnyanmisaka RK_U32 iprd_wgty4_3 : 8; 781*437bfbebSnyanmisaka } iprd_wgty4; 782*437bfbebSnyanmisaka 783*437bfbebSnyanmisaka /* 0x00001724 reg1481 */ 784*437bfbebSnyanmisaka struct { 785*437bfbebSnyanmisaka RK_U32 iprd_wgty16_0 : 8; 786*437bfbebSnyanmisaka RK_U32 iprd_wgty16_1 : 8; 787*437bfbebSnyanmisaka RK_U32 iprd_wgty16_2 : 8; 788*437bfbebSnyanmisaka RK_U32 iprd_wgty16_3 : 8; 789*437bfbebSnyanmisaka } iprd_wgty16; 790*437bfbebSnyanmisaka 791*437bfbebSnyanmisaka /* 0x00001728 reg1482 */ 792*437bfbebSnyanmisaka struct { 793*437bfbebSnyanmisaka RK_U32 iprd_wgtc8_0 : 8; 794*437bfbebSnyanmisaka RK_U32 iprd_wgtc8_1 : 8; 795*437bfbebSnyanmisaka RK_U32 iprd_wgtc8_2 : 8; 796*437bfbebSnyanmisaka RK_U32 iprd_wgtc8_3 : 8; 797*437bfbebSnyanmisaka } iprd_wgtc8; 798*437bfbebSnyanmisaka 799*437bfbebSnyanmisaka /* 0x172c */ 800*437bfbebSnyanmisaka RK_U32 reserved_1483; 801*437bfbebSnyanmisaka 802*437bfbebSnyanmisaka /* 0x00001730 reg1484 */ 803*437bfbebSnyanmisaka struct { 804*437bfbebSnyanmisaka RK_U32 bias_madi_th0 : 8; 805*437bfbebSnyanmisaka RK_U32 bias_madi_th1 : 8; 806*437bfbebSnyanmisaka RK_U32 bias_madi_th2 : 8; 807*437bfbebSnyanmisaka RK_U32 reserved : 8; 808*437bfbebSnyanmisaka } bias_madi_thd_comb; 809*437bfbebSnyanmisaka 810*437bfbebSnyanmisaka /* 0x00001738 reg1486 */ 811*437bfbebSnyanmisaka struct { 812*437bfbebSnyanmisaka RK_U32 bias_i_val3 : 10; 813*437bfbebSnyanmisaka RK_U32 reserved : 22; 814*437bfbebSnyanmisaka } qnt1_i_bias_comb; 815*437bfbebSnyanmisaka 816*437bfbebSnyanmisaka /* 0x0000173c reg1487 */ 817*437bfbebSnyanmisaka struct { 818*437bfbebSnyanmisaka RK_U32 bias_p_val0 : 10; 819*437bfbebSnyanmisaka RK_U32 bias_p_val1 : 10; 820*437bfbebSnyanmisaka RK_U32 bias_p_val2 : 10; 821*437bfbebSnyanmisaka RK_U32 reserved : 2; 822*437bfbebSnyanmisaka } qnt0_p_bias_comb; 823*437bfbebSnyanmisaka 824*437bfbebSnyanmisaka /* 0x00001740 reg1488 */ 825*437bfbebSnyanmisaka struct { 826*437bfbebSnyanmisaka RK_U32 bias_p_val3 : 10; 827*437bfbebSnyanmisaka RK_U32 reserved : 22; 828*437bfbebSnyanmisaka } qnt1_p_bias_comb; 829*437bfbebSnyanmisaka 830*437bfbebSnyanmisaka /* 0x1744 - 0x175c */ 831*437bfbebSnyanmisaka RK_U32 reserved1489_1495[7]; 832*437bfbebSnyanmisaka 833*437bfbebSnyanmisaka /* 0x00001760 reg1496 */ 834*437bfbebSnyanmisaka struct { 835*437bfbebSnyanmisaka RK_U32 cime_pmv_num : 1; 836*437bfbebSnyanmisaka RK_U32 cime_fuse : 1; 837*437bfbebSnyanmisaka RK_U32 reserved : 2; 838*437bfbebSnyanmisaka RK_U32 move_lambda : 4; 839*437bfbebSnyanmisaka RK_U32 rime_lvl_mrg : 2; 840*437bfbebSnyanmisaka RK_U32 rime_prelvl_en : 2; 841*437bfbebSnyanmisaka RK_U32 rime_prersu_en : 3; 842*437bfbebSnyanmisaka RK_U32 fme_lvl_mrg : 1; 843*437bfbebSnyanmisaka RK_U32 reserved1 : 16; 844*437bfbebSnyanmisaka } me_sqi_comb; 845*437bfbebSnyanmisaka 846*437bfbebSnyanmisaka /* 0x00001764 reg1497 */ 847*437bfbebSnyanmisaka struct { 848*437bfbebSnyanmisaka RK_U32 cime_mvd_th0 : 9; 849*437bfbebSnyanmisaka RK_U32 reserved : 1; 850*437bfbebSnyanmisaka RK_U32 cime_mvd_th1 : 9; 851*437bfbebSnyanmisaka RK_U32 reserved1 : 1; 852*437bfbebSnyanmisaka RK_U32 cime_mvd_th2 : 9; 853*437bfbebSnyanmisaka RK_U32 reserved2 : 3; 854*437bfbebSnyanmisaka } cime_mvd_th_comb; 855*437bfbebSnyanmisaka 856*437bfbebSnyanmisaka /* 0x00001768 reg1498 */ 857*437bfbebSnyanmisaka struct { 858*437bfbebSnyanmisaka RK_U32 cime_madp_th : 12; 859*437bfbebSnyanmisaka RK_U32 ratio_consi_cfg : 4; 860*437bfbebSnyanmisaka RK_U32 ratio_bmv_dist : 4; 861*437bfbebSnyanmisaka RK_U32 reserved : 12; 862*437bfbebSnyanmisaka } cime_madp_th_comb; 863*437bfbebSnyanmisaka 864*437bfbebSnyanmisaka /* 0x0000176c reg1499 */ 865*437bfbebSnyanmisaka struct { 866*437bfbebSnyanmisaka RK_U32 cime_multi0 : 8; 867*437bfbebSnyanmisaka RK_U32 cime_multi1 : 8; 868*437bfbebSnyanmisaka RK_U32 cime_multi2 : 8; 869*437bfbebSnyanmisaka RK_U32 cime_multi3 : 8; 870*437bfbebSnyanmisaka } cime_multi_comb; 871*437bfbebSnyanmisaka 872*437bfbebSnyanmisaka /* 0x00001770 reg1500 */ 873*437bfbebSnyanmisaka struct { 874*437bfbebSnyanmisaka RK_U32 rime_mvd_th0 : 3; 875*437bfbebSnyanmisaka RK_U32 reserved : 1; 876*437bfbebSnyanmisaka RK_U32 rime_mvd_th1 : 3; 877*437bfbebSnyanmisaka RK_U32 reserved1 : 9; 878*437bfbebSnyanmisaka RK_U32 fme_madp_th : 12; 879*437bfbebSnyanmisaka RK_U32 reserved2 : 4; 880*437bfbebSnyanmisaka } rime_mvd_th_comb; 881*437bfbebSnyanmisaka 882*437bfbebSnyanmisaka /* 0x00001774 reg1501 */ 883*437bfbebSnyanmisaka struct { 884*437bfbebSnyanmisaka RK_U32 rime_madp_th0 : 12; 885*437bfbebSnyanmisaka RK_U32 reserved : 4; 886*437bfbebSnyanmisaka RK_U32 rime_madp_th1 : 12; 887*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 888*437bfbebSnyanmisaka } rime_madp_th_comb; 889*437bfbebSnyanmisaka 890*437bfbebSnyanmisaka /* 0x00001778 reg1502 */ 891*437bfbebSnyanmisaka struct { 892*437bfbebSnyanmisaka RK_U32 rime_multi0 : 10; 893*437bfbebSnyanmisaka RK_U32 rime_multi1 : 10; 894*437bfbebSnyanmisaka RK_U32 rime_multi2 : 10; 895*437bfbebSnyanmisaka RK_U32 reserved : 2; 896*437bfbebSnyanmisaka } rime_multi_comb; 897*437bfbebSnyanmisaka 898*437bfbebSnyanmisaka /* 0x0000177c reg1503 */ 899*437bfbebSnyanmisaka struct { 900*437bfbebSnyanmisaka RK_U32 cmv_th0 : 8; 901*437bfbebSnyanmisaka RK_U32 cmv_th1 : 8; 902*437bfbebSnyanmisaka RK_U32 cmv_th2 : 8; 903*437bfbebSnyanmisaka RK_U32 reserved : 8; 904*437bfbebSnyanmisaka } cmv_st_th_comb; 905*437bfbebSnyanmisaka 906*437bfbebSnyanmisaka /* 0x1780 - 0x18fc */ 907*437bfbebSnyanmisaka RK_U32 reserved1504_1599[96]; 908*437bfbebSnyanmisaka 909*437bfbebSnyanmisaka /* 0x00001900 reg1600 - 0x000019cc reg1651*/ 910*437bfbebSnyanmisaka RK_U32 rdo_wgta_qp_grpa_0_51[52]; 911*437bfbebSnyanmisaka } H264eVepu511Param; 912*437bfbebSnyanmisaka 913*437bfbebSnyanmisaka /* class: rdo/q_i */ 914*437bfbebSnyanmisaka /* 0x00002000 reg2048 - 0x000020b8 reg2094 */ 915*437bfbebSnyanmisaka typedef struct H264eVepu511SqiCfg_t { 916*437bfbebSnyanmisaka /* 0x00002000 reg2048 - 0x00002010 reg2052*/ 917*437bfbebSnyanmisaka RK_U32 reserved_2048_2052[5]; 918*437bfbebSnyanmisaka 919*437bfbebSnyanmisaka /* 0x00002014 reg2053 */ 920*437bfbebSnyanmisaka struct { 921*437bfbebSnyanmisaka RK_U32 rdo_smear_lvl16_multi : 8; 922*437bfbebSnyanmisaka RK_U32 rdo_smear_dlt_qp : 4; 923*437bfbebSnyanmisaka RK_U32 reserved : 1; 924*437bfbebSnyanmisaka RK_U32 stated_mode : 2; 925*437bfbebSnyanmisaka RK_U32 rdo_smear_en : 1; 926*437bfbebSnyanmisaka RK_U32 reserved1 : 16; 927*437bfbebSnyanmisaka } smear_opt_cfg; 928*437bfbebSnyanmisaka 929*437bfbebSnyanmisaka /* 0x00002018 reg2054 */ 930*437bfbebSnyanmisaka struct { 931*437bfbebSnyanmisaka RK_U32 madp_cur_thd0 : 12; 932*437bfbebSnyanmisaka RK_U32 reserved : 4; 933*437bfbebSnyanmisaka RK_U32 madp_cur_thd1 : 12; 934*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 935*437bfbebSnyanmisaka } smear_madp_thd0; 936*437bfbebSnyanmisaka 937*437bfbebSnyanmisaka /* 0x0000201c reg2055 */ 938*437bfbebSnyanmisaka struct { 939*437bfbebSnyanmisaka RK_U32 madp_cur_thd2 : 12; 940*437bfbebSnyanmisaka RK_U32 reserved : 4; 941*437bfbebSnyanmisaka RK_U32 madp_cur_thd3 : 12; 942*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 943*437bfbebSnyanmisaka } smear_madp_thd1; 944*437bfbebSnyanmisaka 945*437bfbebSnyanmisaka /* 0x00002020 reg2056 */ 946*437bfbebSnyanmisaka struct { 947*437bfbebSnyanmisaka RK_U32 madp_around_thd0 : 12; 948*437bfbebSnyanmisaka RK_U32 reserved : 4; 949*437bfbebSnyanmisaka RK_U32 madp_around_thd1 : 12; 950*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 951*437bfbebSnyanmisaka } smear_madp_thd2; 952*437bfbebSnyanmisaka 953*437bfbebSnyanmisaka /* 0x00002024 reg2057 */ 954*437bfbebSnyanmisaka struct { 955*437bfbebSnyanmisaka RK_U32 madp_around_thd2 : 12; 956*437bfbebSnyanmisaka RK_U32 reserved : 4; 957*437bfbebSnyanmisaka RK_U32 madp_around_thd3 : 12; 958*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 959*437bfbebSnyanmisaka } smear_madp_thd3; 960*437bfbebSnyanmisaka 961*437bfbebSnyanmisaka /* 0x00002028 reg2058 */ 962*437bfbebSnyanmisaka struct { 963*437bfbebSnyanmisaka RK_U32 madp_around_thd4 : 12; 964*437bfbebSnyanmisaka RK_U32 reserved : 4; 965*437bfbebSnyanmisaka RK_U32 madp_around_thd5 : 12; 966*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 967*437bfbebSnyanmisaka } smear_madp_thd4; 968*437bfbebSnyanmisaka 969*437bfbebSnyanmisaka /* 0x0000202c reg2059 */ 970*437bfbebSnyanmisaka struct { 971*437bfbebSnyanmisaka RK_U32 madp_ref_thd0 : 12; 972*437bfbebSnyanmisaka RK_U32 reserved : 4; 973*437bfbebSnyanmisaka RK_U32 madp_ref_thd1 : 12; 974*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 975*437bfbebSnyanmisaka } smear_madp_thd5; 976*437bfbebSnyanmisaka 977*437bfbebSnyanmisaka /* 0x00002030 reg2060 */ 978*437bfbebSnyanmisaka struct { 979*437bfbebSnyanmisaka RK_U32 cnt_cur_thd0 : 4; 980*437bfbebSnyanmisaka RK_U32 reserved : 4; 981*437bfbebSnyanmisaka RK_U32 cnt_cur_thd1 : 4; 982*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 983*437bfbebSnyanmisaka RK_U32 cnt_cur_thd2 : 4; 984*437bfbebSnyanmisaka RK_U32 reserved2 : 4; 985*437bfbebSnyanmisaka RK_U32 cnt_cur_thd3 : 4; 986*437bfbebSnyanmisaka RK_U32 reserved3 : 4; 987*437bfbebSnyanmisaka } smear_cnt_thd0; 988*437bfbebSnyanmisaka 989*437bfbebSnyanmisaka /* 0x00002034 reg2061 */ 990*437bfbebSnyanmisaka struct { 991*437bfbebSnyanmisaka RK_U32 cnt_around_thd0 : 4; 992*437bfbebSnyanmisaka RK_U32 reserved : 4; 993*437bfbebSnyanmisaka RK_U32 cnt_around_thd1 : 4; 994*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 995*437bfbebSnyanmisaka RK_U32 cnt_around_thd2 : 4; 996*437bfbebSnyanmisaka RK_U32 reserved2 : 4; 997*437bfbebSnyanmisaka RK_U32 cnt_around_thd3 : 4; 998*437bfbebSnyanmisaka RK_U32 reserved3 : 4; 999*437bfbebSnyanmisaka } smear_cnt_thd1; 1000*437bfbebSnyanmisaka 1001*437bfbebSnyanmisaka /* 0x00002038 reg2062 */ 1002*437bfbebSnyanmisaka struct { 1003*437bfbebSnyanmisaka RK_U32 cnt_around_thd4 : 4; 1004*437bfbebSnyanmisaka RK_U32 reserved : 4; 1005*437bfbebSnyanmisaka RK_U32 cnt_around_thd5 : 4; 1006*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 1007*437bfbebSnyanmisaka RK_U32 cnt_around_thd6 : 4; 1008*437bfbebSnyanmisaka RK_U32 reserved2 : 4; 1009*437bfbebSnyanmisaka RK_U32 cnt_around_thd7 : 4; 1010*437bfbebSnyanmisaka RK_U32 reserved3 : 4; 1011*437bfbebSnyanmisaka } smear_cnt_thd2; 1012*437bfbebSnyanmisaka 1013*437bfbebSnyanmisaka /* 0x0000203c reg2063 */ 1014*437bfbebSnyanmisaka struct { 1015*437bfbebSnyanmisaka RK_U32 cnt_ref_thd0 : 4; 1016*437bfbebSnyanmisaka RK_U32 reserved : 4; 1017*437bfbebSnyanmisaka RK_U32 cnt_ref_thd1 : 4; 1018*437bfbebSnyanmisaka RK_U32 reserved1 : 20; 1019*437bfbebSnyanmisaka } smear_cnt_thd3; 1020*437bfbebSnyanmisaka 1021*437bfbebSnyanmisaka /* 0x00002040 reg2064 */ 1022*437bfbebSnyanmisaka struct { 1023*437bfbebSnyanmisaka RK_U32 resi_small_cur_th0 : 6; 1024*437bfbebSnyanmisaka RK_U32 reserved : 2; 1025*437bfbebSnyanmisaka RK_U32 resi_big_cur_th0 : 6; 1026*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 1027*437bfbebSnyanmisaka RK_U32 resi_small_cur_th1 : 6; 1028*437bfbebSnyanmisaka RK_U32 reserved2 : 2; 1029*437bfbebSnyanmisaka RK_U32 resi_big_cur_th1 : 6; 1030*437bfbebSnyanmisaka RK_U32 reserved3 : 2; 1031*437bfbebSnyanmisaka } smear_resi_thd0; 1032*437bfbebSnyanmisaka 1033*437bfbebSnyanmisaka /* 0x00002044 reg2065 */ 1034*437bfbebSnyanmisaka struct { 1035*437bfbebSnyanmisaka RK_U32 resi_small_around_th0 : 6; 1036*437bfbebSnyanmisaka RK_U32 reserved : 2; 1037*437bfbebSnyanmisaka RK_U32 resi_big_around_th0 : 6; 1038*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 1039*437bfbebSnyanmisaka RK_U32 resi_small_around_th1 : 6; 1040*437bfbebSnyanmisaka RK_U32 reserved2 : 2; 1041*437bfbebSnyanmisaka RK_U32 resi_big_around_th1 : 6; 1042*437bfbebSnyanmisaka RK_U32 reserved3 : 2; 1043*437bfbebSnyanmisaka } smear_resi_thd1; 1044*437bfbebSnyanmisaka 1045*437bfbebSnyanmisaka /* 0x00002048 reg2066 */ 1046*437bfbebSnyanmisaka struct { 1047*437bfbebSnyanmisaka RK_U32 resi_small_around_th2 : 6; 1048*437bfbebSnyanmisaka RK_U32 reserved : 2; 1049*437bfbebSnyanmisaka RK_U32 resi_big_around_th2 : 6; 1050*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 1051*437bfbebSnyanmisaka RK_U32 resi_small_around_th3 : 6; 1052*437bfbebSnyanmisaka RK_U32 reserved2 : 2; 1053*437bfbebSnyanmisaka RK_U32 resi_big_around_th3 : 6; 1054*437bfbebSnyanmisaka RK_U32 reserved3 : 2; 1055*437bfbebSnyanmisaka } smear_resi_thd2; 1056*437bfbebSnyanmisaka 1057*437bfbebSnyanmisaka /* 0x0000204c reg2067 */ 1058*437bfbebSnyanmisaka struct { 1059*437bfbebSnyanmisaka RK_U32 resi_small_ref_th0 : 6; 1060*437bfbebSnyanmisaka RK_U32 reserved : 2; 1061*437bfbebSnyanmisaka RK_U32 resi_big_ref_th0 : 6; 1062*437bfbebSnyanmisaka RK_U32 reserved1 : 18; 1063*437bfbebSnyanmisaka } smear_resi_thd3; 1064*437bfbebSnyanmisaka 1065*437bfbebSnyanmisaka /* 0x00002050 reg2068 */ 1066*437bfbebSnyanmisaka struct { 1067*437bfbebSnyanmisaka RK_U32 resi_th0 : 8; 1068*437bfbebSnyanmisaka RK_U32 reserved : 8; 1069*437bfbebSnyanmisaka RK_U32 resi_th1 : 8; 1070*437bfbebSnyanmisaka RK_U32 reserved1 : 8; 1071*437bfbebSnyanmisaka } smear_resi_thd4; 1072*437bfbebSnyanmisaka 1073*437bfbebSnyanmisaka /* 0x00002054 reg2069 */ 1074*437bfbebSnyanmisaka struct { 1075*437bfbebSnyanmisaka RK_U32 madp_cnt_th0 : 4; 1076*437bfbebSnyanmisaka RK_U32 madp_cnt_th1 : 4; 1077*437bfbebSnyanmisaka RK_U32 madp_cnt_th2 : 4; 1078*437bfbebSnyanmisaka RK_U32 madp_cnt_th3 : 4; 1079*437bfbebSnyanmisaka RK_U32 reserved : 16; 1080*437bfbebSnyanmisaka } smear_st_thd; 1081*437bfbebSnyanmisaka 1082*437bfbebSnyanmisaka /* 0x2058 - 0x206c */ 1083*437bfbebSnyanmisaka RK_U32 reserved_2070; 1084*437bfbebSnyanmisaka 1085*437bfbebSnyanmisaka /* 0x0000205c reg2071 */ 1086*437bfbebSnyanmisaka struct { 1087*437bfbebSnyanmisaka RK_U32 lid_grdn_blk_cu16_th : 8; 1088*437bfbebSnyanmisaka RK_U32 lid_rmd_intra_jcoef_ang : 5; 1089*437bfbebSnyanmisaka RK_U32 lid_rdo_intra_rcoef_ang : 5; 1090*437bfbebSnyanmisaka RK_U32 lid_rmd_intra_jcoef_dp : 6; 1091*437bfbebSnyanmisaka RK_U32 lid_rdo_intra_rcoef_dp : 6; 1092*437bfbebSnyanmisaka RK_U32 lid_en : 1; 1093*437bfbebSnyanmisaka RK_U32 reserved : 1; 1094*437bfbebSnyanmisaka } line_intra_dir_cfg; 1095*437bfbebSnyanmisaka 1096*437bfbebSnyanmisaka RK_U32 reserved2072_2075[4]; 1097*437bfbebSnyanmisaka 1098*437bfbebSnyanmisaka /* 0x00002070 reg2076 - 0x0000207c reg2079*/ 1099*437bfbebSnyanmisaka rdo_skip_par rdo_b16_skip; 1100*437bfbebSnyanmisaka 1101*437bfbebSnyanmisaka /* 0x00002080 reg2080 - 0x00002088 reg2082 */ 1102*437bfbebSnyanmisaka RK_U32 reserved2080_2082[3]; 1103*437bfbebSnyanmisaka 1104*437bfbebSnyanmisaka /* 0x0000208c reg2083 - 0x00002094 reg2085 */ 1105*437bfbebSnyanmisaka rdo_noskip_par rdo_b16_inter; 1106*437bfbebSnyanmisaka 1107*437bfbebSnyanmisaka /* 0x00002098 reg2086 - 0x000020a4 reg2088 */ 1108*437bfbebSnyanmisaka RK_U32 reserved2086_2088[3]; 1109*437bfbebSnyanmisaka 1110*437bfbebSnyanmisaka /* 0x000020a8 reg2089 - 0x000020ac reg2091 */ 1111*437bfbebSnyanmisaka rdo_noskip_par rdo_b16_intra; 1112*437bfbebSnyanmisaka 1113*437bfbebSnyanmisaka /* 0x000020b0 reg2092 */ 1114*437bfbebSnyanmisaka RK_U32 reserved2092; 1115*437bfbebSnyanmisaka 1116*437bfbebSnyanmisaka /* 0x000020b4 reg2093 */ 1117*437bfbebSnyanmisaka struct { 1118*437bfbebSnyanmisaka RK_U32 thd0 : 4; 1119*437bfbebSnyanmisaka RK_U32 reserved : 4; 1120*437bfbebSnyanmisaka RK_U32 thd1 : 4; 1121*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 1122*437bfbebSnyanmisaka RK_U32 thd2 : 4; 1123*437bfbebSnyanmisaka RK_U32 reserved2 : 4; 1124*437bfbebSnyanmisaka RK_U32 thd3 : 4; 1125*437bfbebSnyanmisaka RK_U32 reserved3 : 4; 1126*437bfbebSnyanmisaka } rdo_b16_intra_atf_cnt_thd; 1127*437bfbebSnyanmisaka 1128*437bfbebSnyanmisaka /* 0x000020b8 reg2094 */ 1129*437bfbebSnyanmisaka struct { 1130*437bfbebSnyanmisaka RK_U32 big_th0 : 6; 1131*437bfbebSnyanmisaka RK_U32 reserved : 2; 1132*437bfbebSnyanmisaka RK_U32 big_th1 : 6; 1133*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 1134*437bfbebSnyanmisaka RK_U32 small_th0 : 6; 1135*437bfbebSnyanmisaka RK_U32 reserved2 : 2; 1136*437bfbebSnyanmisaka RK_U32 small_th1 : 6; 1137*437bfbebSnyanmisaka RK_U32 reserved3 : 2; 1138*437bfbebSnyanmisaka } rdo_atf_resi_thd; 1139*437bfbebSnyanmisaka 1140*437bfbebSnyanmisaka /* 0x000020bc reg2095 - 0x0000215c reg2135*/ 1141*437bfbebSnyanmisaka RK_U32 reserved_2095_2135[40]; 1142*437bfbebSnyanmisaka 1143*437bfbebSnyanmisaka /* 0x00002160 reg2136 */ 1144*437bfbebSnyanmisaka struct { 1145*437bfbebSnyanmisaka RK_U32 atr_thd0 : 8; 1146*437bfbebSnyanmisaka RK_U32 atr_thd1 : 8; 1147*437bfbebSnyanmisaka RK_U32 atr_thd2 : 8; 1148*437bfbebSnyanmisaka RK_U32 atr_qp : 6; 1149*437bfbebSnyanmisaka RK_U32 reserved : 2; 1150*437bfbebSnyanmisaka } atr_thd; 1151*437bfbebSnyanmisaka 1152*437bfbebSnyanmisaka /* 0x00002164 reg2137 */ 1153*437bfbebSnyanmisaka struct { 1154*437bfbebSnyanmisaka RK_U32 atr_lv16_wgt0 : 8; 1155*437bfbebSnyanmisaka RK_U32 atr_lv16_wgt1 : 8; 1156*437bfbebSnyanmisaka RK_U32 atr_lv16_wgt2 : 8; 1157*437bfbebSnyanmisaka RK_U32 reserved : 8; 1158*437bfbebSnyanmisaka } atr_wgt16; 1159*437bfbebSnyanmisaka 1160*437bfbebSnyanmisaka /* 0x00002168 reg2138 */ 1161*437bfbebSnyanmisaka struct { 1162*437bfbebSnyanmisaka RK_U32 atr_lv8_wgt0 : 8; 1163*437bfbebSnyanmisaka RK_U32 atr_lv8_wgt1 : 8; 1164*437bfbebSnyanmisaka RK_U32 atr_lv8_wgt2 : 8; 1165*437bfbebSnyanmisaka RK_U32 reserved : 8; 1166*437bfbebSnyanmisaka } atr_wgt8; 1167*437bfbebSnyanmisaka 1168*437bfbebSnyanmisaka /* 0x0000216c reg2139 */ 1169*437bfbebSnyanmisaka struct { 1170*437bfbebSnyanmisaka RK_U32 atr_lv4_wgt0 : 8; 1171*437bfbebSnyanmisaka RK_U32 atr_lv4_wgt1 : 8; 1172*437bfbebSnyanmisaka RK_U32 atr_lv4_wgt2 : 8; 1173*437bfbebSnyanmisaka RK_U32 reserved : 8; 1174*437bfbebSnyanmisaka } atr_wgt4; 1175*437bfbebSnyanmisaka } H264eVepu511Sqi; 1176*437bfbebSnyanmisaka 1177*437bfbebSnyanmisaka /* class: scaling list */ 1178*437bfbebSnyanmisaka /* 0x00002200 reg2176- 0x0000268c reg2467*/ 1179*437bfbebSnyanmisaka typedef struct H264eVepu511SclCfg_t { 1180*437bfbebSnyanmisaka /* 0x2200 - 0x227c, valid for h.264 iq_scal_t8_intra0~15 iq_scal_t8_inter0~15*/ 1181*437bfbebSnyanmisaka RK_U32 tu8_intra_y[16]; 1182*437bfbebSnyanmisaka RK_U32 tu8_intra_u[16]; 1183*437bfbebSnyanmisaka 1184*437bfbebSnyanmisaka /* 0x2280 - 0x258c*/ 1185*437bfbebSnyanmisaka RK_U32 reserved_2208_2215[196]; 1186*437bfbebSnyanmisaka 1187*437bfbebSnyanmisaka /* 0x2590 - 0x268c, valid for h.264 q_scal_t8_intra0~31 q_scal_t8_inter0~31*/ 1188*437bfbebSnyanmisaka RK_U32 q_t8_intra[32]; 1189*437bfbebSnyanmisaka RK_U32 q_t8_inter[32]; 1190*437bfbebSnyanmisaka } H264eVepu511SclCfg; 1191*437bfbebSnyanmisaka 1192*437bfbebSnyanmisaka typedef struct HalVepu511Reg_t { 1193*437bfbebSnyanmisaka Vepu511ControlCfg reg_ctl; 1194*437bfbebSnyanmisaka H264eVepu511Frame reg_frm; 1195*437bfbebSnyanmisaka Vepu511RcRoi reg_rc_roi; 1196*437bfbebSnyanmisaka H264eVepu511Param reg_param; 1197*437bfbebSnyanmisaka H264eVepu511Sqi reg_sqi; 1198*437bfbebSnyanmisaka H264eVepu511SclCfg reg_scl; 1199*437bfbebSnyanmisaka Vepu511OsdRegs reg_osd; 1200*437bfbebSnyanmisaka Vepu511Status reg_st; 1201*437bfbebSnyanmisaka Vepu511Dbg reg_dbg; 1202*437bfbebSnyanmisaka } HalVepu511RegSet; 1203*437bfbebSnyanmisaka 1204*437bfbebSnyanmisaka #endif