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