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