1*437bfbebSnyanmisaka /* 2*437bfbebSnyanmisaka * Copyright 2021 Rockchip Electronics Co. LTD 3*437bfbebSnyanmisaka * 4*437bfbebSnyanmisaka * Licensed under the Apache License, Version 2.0 (the "License"); 5*437bfbebSnyanmisaka * you may not use this file except in compliance with the License. 6*437bfbebSnyanmisaka * You may obtain a copy of the License at 7*437bfbebSnyanmisaka * 8*437bfbebSnyanmisaka * http://www.apache.org/licenses/LICENSE-2.0 9*437bfbebSnyanmisaka * 10*437bfbebSnyanmisaka * Unless required by applicable law or agreed to in writing, software 11*437bfbebSnyanmisaka * distributed under the License is distributed on an "AS IS" BASIS, 12*437bfbebSnyanmisaka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*437bfbebSnyanmisaka * See the License for the specific language governing permissions and 14*437bfbebSnyanmisaka * limitations under the License. 15*437bfbebSnyanmisaka */ 16*437bfbebSnyanmisaka 17*437bfbebSnyanmisaka #ifndef __HAL_H265E_VEPU540C_REG_H__ 18*437bfbebSnyanmisaka #define __HAL_H265E_VEPU540C_REG_H__ 19*437bfbebSnyanmisaka 20*437bfbebSnyanmisaka #include "rk_type.h" 21*437bfbebSnyanmisaka #include "vepu540c_common.h" 22*437bfbebSnyanmisaka /* class: control/link */ 23*437bfbebSnyanmisaka /* 0x00000000 reg0 - 0x00000120 reg72 */ 24*437bfbebSnyanmisaka typedef struct HevcVepu540cControlCfg_t { 25*437bfbebSnyanmisaka /* 0x00000000 reg0 */ 26*437bfbebSnyanmisaka struct { 27*437bfbebSnyanmisaka RK_U32 sub_ver : 8; 28*437bfbebSnyanmisaka RK_U32 h264_cap : 1; 29*437bfbebSnyanmisaka RK_U32 hevc_cap : 1; 30*437bfbebSnyanmisaka RK_U32 reserved : 2; 31*437bfbebSnyanmisaka RK_U32 res_cap : 4; 32*437bfbebSnyanmisaka RK_U32 osd_cap : 2; 33*437bfbebSnyanmisaka RK_U32 filtr_cap : 2; 34*437bfbebSnyanmisaka RK_U32 bfrm_cap : 1; 35*437bfbebSnyanmisaka RK_U32 fbc_cap : 2; 36*437bfbebSnyanmisaka RK_U32 reserved1 : 1; 37*437bfbebSnyanmisaka RK_U32 ip_id : 8; 38*437bfbebSnyanmisaka } reg0001_version; 39*437bfbebSnyanmisaka 40*437bfbebSnyanmisaka /* 0x4 - 0xc */ 41*437bfbebSnyanmisaka RK_U32 reserved1_3[3]; 42*437bfbebSnyanmisaka 43*437bfbebSnyanmisaka /* 0x00000010 reg4 */ 44*437bfbebSnyanmisaka struct { 45*437bfbebSnyanmisaka RK_U32 lkt_num : 8; 46*437bfbebSnyanmisaka RK_U32 vepu_cmd : 3; 47*437bfbebSnyanmisaka RK_U32 reserved : 21; 48*437bfbebSnyanmisaka } reg0004_enc_strt; 49*437bfbebSnyanmisaka 50*437bfbebSnyanmisaka /* 0x00000014 reg5 */ 51*437bfbebSnyanmisaka struct { 52*437bfbebSnyanmisaka RK_U32 safe_clr : 1; 53*437bfbebSnyanmisaka RK_U32 force_clr : 1; 54*437bfbebSnyanmisaka RK_U32 reserved : 30; 55*437bfbebSnyanmisaka } reg0005_enc_clr; 56*437bfbebSnyanmisaka 57*437bfbebSnyanmisaka /* 0x18 */ 58*437bfbebSnyanmisaka struct { 59*437bfbebSnyanmisaka RK_U32 vswm_lcnt_soft : 14; 60*437bfbebSnyanmisaka RK_U32 vswm_fcnt_soft : 8; 61*437bfbebSnyanmisaka RK_U32 reserved : 2; 62*437bfbebSnyanmisaka RK_U32 dvbm_ack_soft : 1; 63*437bfbebSnyanmisaka RK_U32 dvbm_ack_sel : 1; 64*437bfbebSnyanmisaka RK_U32 dvbm_inf_sel : 1; 65*437bfbebSnyanmisaka RK_U32 reserved1 : 5; 66*437bfbebSnyanmisaka } reg0006_vs_ldly; 67*437bfbebSnyanmisaka 68*437bfbebSnyanmisaka /* 0x1c */ 69*437bfbebSnyanmisaka RK_U32 reserved007; 70*437bfbebSnyanmisaka 71*437bfbebSnyanmisaka /* 0x00000020 reg8 */ 72*437bfbebSnyanmisaka struct { 73*437bfbebSnyanmisaka RK_U32 enc_done_en : 1; 74*437bfbebSnyanmisaka RK_U32 lkt_node_done_en : 1; 75*437bfbebSnyanmisaka RK_U32 sclr_done_en : 1; 76*437bfbebSnyanmisaka RK_U32 vslc_done_en : 1; 77*437bfbebSnyanmisaka RK_U32 vbsf_oflw_en : 1; 78*437bfbebSnyanmisaka RK_U32 vbuf_lens_en : 1; 79*437bfbebSnyanmisaka RK_U32 enc_err_en : 1; 80*437bfbebSnyanmisaka RK_U32 dvbm_fcfg_en : 1; 81*437bfbebSnyanmisaka RK_U32 wdg_en : 1; 82*437bfbebSnyanmisaka RK_U32 lkt_err_int_en : 1; 83*437bfbebSnyanmisaka RK_U32 lkt_err_stop_en : 1; 84*437bfbebSnyanmisaka RK_U32 lkt_force_stop_en : 1; 85*437bfbebSnyanmisaka RK_U32 jslc_done_en : 1; 86*437bfbebSnyanmisaka RK_U32 jbsf_oflw_en : 1; 87*437bfbebSnyanmisaka RK_U32 jbuf_lens_en : 1; 88*437bfbebSnyanmisaka RK_U32 dvbm_dcnt_en : 1; 89*437bfbebSnyanmisaka RK_U32 reserved : 16; 90*437bfbebSnyanmisaka } reg0008_int_en; 91*437bfbebSnyanmisaka 92*437bfbebSnyanmisaka /* 0x00000024 reg9 */ 93*437bfbebSnyanmisaka struct { 94*437bfbebSnyanmisaka RK_U32 enc_done_msk : 1; 95*437bfbebSnyanmisaka RK_U32 lkt_node_done_msk : 1; 96*437bfbebSnyanmisaka RK_U32 sclr_done_msk : 1; 97*437bfbebSnyanmisaka RK_U32 vslc_done_msk : 1; 98*437bfbebSnyanmisaka RK_U32 vbsf_oflw_msk : 1; 99*437bfbebSnyanmisaka RK_U32 vbuf_lens_msk : 1; 100*437bfbebSnyanmisaka RK_U32 enc_err_msk : 1; 101*437bfbebSnyanmisaka RK_U32 dvbm_fcfg_msk : 1; 102*437bfbebSnyanmisaka RK_U32 wdg_msk : 1; 103*437bfbebSnyanmisaka RK_U32 lkt_err_int_msk : 1; 104*437bfbebSnyanmisaka RK_U32 lkt_err_stop_msk : 1; 105*437bfbebSnyanmisaka RK_U32 lkt_force_stop_msk : 1; 106*437bfbebSnyanmisaka RK_U32 jslc_done_msk : 1; 107*437bfbebSnyanmisaka RK_U32 jbsf_oflw_msk : 1; 108*437bfbebSnyanmisaka RK_U32 jbuf_lens_msk : 1; 109*437bfbebSnyanmisaka RK_U32 dvbm_dcnt_msk : 1; 110*437bfbebSnyanmisaka RK_U32 reserved : 16; 111*437bfbebSnyanmisaka } reg0009_int_msk; 112*437bfbebSnyanmisaka 113*437bfbebSnyanmisaka /* 0x00000028 reg10 */ 114*437bfbebSnyanmisaka struct { 115*437bfbebSnyanmisaka RK_U32 enc_done_clr : 1; 116*437bfbebSnyanmisaka RK_U32 lkt_node_done_clr : 1; 117*437bfbebSnyanmisaka RK_U32 sclr_done_clr : 1; 118*437bfbebSnyanmisaka RK_U32 vslc_done_clr : 1; 119*437bfbebSnyanmisaka RK_U32 vbsf_oflw_clr : 1; 120*437bfbebSnyanmisaka RK_U32 vbuf_lens_clr : 1; 121*437bfbebSnyanmisaka RK_U32 enc_err_clr : 1; 122*437bfbebSnyanmisaka RK_U32 dvbm_fcfg_clr : 1; 123*437bfbebSnyanmisaka RK_U32 wdg_clr : 1; 124*437bfbebSnyanmisaka RK_U32 lkt_err_int_clr : 1; 125*437bfbebSnyanmisaka RK_U32 lkt_err_stop_clr : 1; 126*437bfbebSnyanmisaka RK_U32 lkt_force_stop_clr : 1; 127*437bfbebSnyanmisaka RK_U32 jslc_done_clr : 1; 128*437bfbebSnyanmisaka RK_U32 jbsf_oflw_clr : 1; 129*437bfbebSnyanmisaka RK_U32 jbuf_lens_clr : 1; 130*437bfbebSnyanmisaka RK_U32 dvbm_dcnt_clr : 1; 131*437bfbebSnyanmisaka RK_U32 reserved : 16; 132*437bfbebSnyanmisaka } reg0010_int_clr; 133*437bfbebSnyanmisaka 134*437bfbebSnyanmisaka /* 0x0000002c reg11 */ 135*437bfbebSnyanmisaka struct { 136*437bfbebSnyanmisaka RK_U32 enc_done_sta : 1; 137*437bfbebSnyanmisaka RK_U32 lkt_node_done_sta : 1; 138*437bfbebSnyanmisaka RK_U32 sclr_done_sta : 1; 139*437bfbebSnyanmisaka RK_U32 vslc_done_sta : 1; 140*437bfbebSnyanmisaka RK_U32 vbsf_oflw_sta : 1; 141*437bfbebSnyanmisaka RK_U32 vbuf_lens_sta : 1; 142*437bfbebSnyanmisaka RK_U32 enc_err_sta : 1; 143*437bfbebSnyanmisaka RK_U32 dvbm_fcfg_sta : 1; 144*437bfbebSnyanmisaka RK_U32 wdg_sta : 1; 145*437bfbebSnyanmisaka RK_U32 lkt_err_int_sta : 1; 146*437bfbebSnyanmisaka RK_U32 lkt_err_stop_sta : 1; 147*437bfbebSnyanmisaka RK_U32 lkt_force_stop_sta : 1; 148*437bfbebSnyanmisaka RK_U32 jslc_done_sta : 1; 149*437bfbebSnyanmisaka RK_U32 jbsf_oflw_sta : 1; 150*437bfbebSnyanmisaka RK_U32 jbuf_lens_sta : 1; 151*437bfbebSnyanmisaka RK_U32 dvbm_dcnt_sta : 1; 152*437bfbebSnyanmisaka RK_U32 reserved : 16; 153*437bfbebSnyanmisaka } reg0011_int_sta; 154*437bfbebSnyanmisaka 155*437bfbebSnyanmisaka /* 0x00000030 reg12 */ 156*437bfbebSnyanmisaka struct { 157*437bfbebSnyanmisaka RK_U32 jpeg_bus_edin : 4; 158*437bfbebSnyanmisaka RK_U32 src_bus_edin : 4; 159*437bfbebSnyanmisaka RK_U32 meiw_bus_edin : 4; 160*437bfbebSnyanmisaka RK_U32 bsw_bus_edin : 4; 161*437bfbebSnyanmisaka RK_U32 lktr_bus_edin : 4; 162*437bfbebSnyanmisaka RK_U32 roir_bus_edin : 4; 163*437bfbebSnyanmisaka RK_U32 lktw_bus_edin : 4; 164*437bfbebSnyanmisaka RK_U32 rec_nfbc_bus_edin : 4; 165*437bfbebSnyanmisaka } reg0012_dtrns_map; 166*437bfbebSnyanmisaka 167*437bfbebSnyanmisaka /* 0x00000034 reg13 */ 168*437bfbebSnyanmisaka struct { 169*437bfbebSnyanmisaka RK_U32 reserved : 16; 170*437bfbebSnyanmisaka RK_U32 axi_brsp_cke : 10; 171*437bfbebSnyanmisaka RK_U32 reserved1 : 6; 172*437bfbebSnyanmisaka } reg0013_dtrns_cfg; 173*437bfbebSnyanmisaka 174*437bfbebSnyanmisaka /* 0x00000038 reg14 */ 175*437bfbebSnyanmisaka struct { 176*437bfbebSnyanmisaka RK_U32 vs_load_thd : 24; 177*437bfbebSnyanmisaka RK_U32 rfp_load_thd : 8; 178*437bfbebSnyanmisaka } reg0014_enc_wdg; 179*437bfbebSnyanmisaka 180*437bfbebSnyanmisaka /* 0x0000003c reg15 */ 181*437bfbebSnyanmisaka struct { 182*437bfbebSnyanmisaka RK_U32 hurry_en : 1; 183*437bfbebSnyanmisaka RK_U32 hurry_low : 3; 184*437bfbebSnyanmisaka RK_U32 hurry_mid : 3; 185*437bfbebSnyanmisaka RK_U32 hurry_high : 3; 186*437bfbebSnyanmisaka RK_U32 reserved : 22; 187*437bfbebSnyanmisaka } reg0015_qos_cfg; 188*437bfbebSnyanmisaka 189*437bfbebSnyanmisaka /* 0x00000040 reg16 */ 190*437bfbebSnyanmisaka struct { 191*437bfbebSnyanmisaka RK_U32 qos_period : 16; 192*437bfbebSnyanmisaka RK_U32 reserved : 16; 193*437bfbebSnyanmisaka } reg0016_qos_perd; 194*437bfbebSnyanmisaka 195*437bfbebSnyanmisaka /* 0x00000044 reg17 */ 196*437bfbebSnyanmisaka RK_U32 reg0017_hurry_thd_low; 197*437bfbebSnyanmisaka 198*437bfbebSnyanmisaka /* 0x00000048 reg18 */ 199*437bfbebSnyanmisaka RK_U32 reg0018_hurry_thd_mid; 200*437bfbebSnyanmisaka 201*437bfbebSnyanmisaka /* 0x0000004c reg19 */ 202*437bfbebSnyanmisaka RK_U32 reg0019_hurry_thd_high; 203*437bfbebSnyanmisaka 204*437bfbebSnyanmisaka /* 0x00000050 reg20 */ 205*437bfbebSnyanmisaka struct { 206*437bfbebSnyanmisaka RK_U32 idle_en_core : 1; 207*437bfbebSnyanmisaka RK_U32 idle_en_axi : 1; 208*437bfbebSnyanmisaka RK_U32 idle_en_ahb : 1; 209*437bfbebSnyanmisaka RK_U32 reserved : 29; 210*437bfbebSnyanmisaka } reg0020_enc_idle_en; 211*437bfbebSnyanmisaka 212*437bfbebSnyanmisaka /* 0x00000054 reg21 */ 213*437bfbebSnyanmisaka struct { 214*437bfbebSnyanmisaka RK_U32 cke : 1; 215*437bfbebSnyanmisaka RK_U32 resetn_hw_en : 1; 216*437bfbebSnyanmisaka RK_U32 enc_done_tmvp_en : 1; 217*437bfbebSnyanmisaka RK_U32 sram_ckg_en : 1; 218*437bfbebSnyanmisaka RK_U32 link_err_stop : 1; 219*437bfbebSnyanmisaka RK_U32 reserved : 27; 220*437bfbebSnyanmisaka } reg0021_func_en; 221*437bfbebSnyanmisaka 222*437bfbebSnyanmisaka /* 0x00000058 reg22 */ 223*437bfbebSnyanmisaka struct { 224*437bfbebSnyanmisaka RK_U32 recon32_ckg : 1; 225*437bfbebSnyanmisaka RK_U32 iqit32_ckg : 1; 226*437bfbebSnyanmisaka RK_U32 q32_ckg : 1; 227*437bfbebSnyanmisaka RK_U32 t32_ckg : 1; 228*437bfbebSnyanmisaka RK_U32 cabac32_ckg : 1; 229*437bfbebSnyanmisaka RK_U32 recon16_ckg : 1; 230*437bfbebSnyanmisaka RK_U32 iqit16_ckg : 1; 231*437bfbebSnyanmisaka RK_U32 q16_ckg : 1; 232*437bfbebSnyanmisaka RK_U32 t16_ckg : 1; 233*437bfbebSnyanmisaka RK_U32 cabac16_ckg : 1; 234*437bfbebSnyanmisaka RK_U32 recon8_ckg : 1; 235*437bfbebSnyanmisaka RK_U32 iqit8_ckg : 1; 236*437bfbebSnyanmisaka RK_U32 q8_ckg : 1; 237*437bfbebSnyanmisaka RK_U32 t8_ckg : 1; 238*437bfbebSnyanmisaka RK_U32 cabac8_ckg : 1; 239*437bfbebSnyanmisaka RK_U32 recon4_ckg : 1; 240*437bfbebSnyanmisaka RK_U32 iqit4_ckg : 1; 241*437bfbebSnyanmisaka RK_U32 q4_ckg : 1; 242*437bfbebSnyanmisaka RK_U32 t4_ckg : 1; 243*437bfbebSnyanmisaka RK_U32 cabac4_ckg : 1; 244*437bfbebSnyanmisaka RK_U32 intra32_ckg : 1; 245*437bfbebSnyanmisaka RK_U32 intra16_ckg : 1; 246*437bfbebSnyanmisaka RK_U32 intra8_ckg : 1; 247*437bfbebSnyanmisaka RK_U32 intra4_ckg : 1; 248*437bfbebSnyanmisaka RK_U32 inter_pred_ckg : 1; 249*437bfbebSnyanmisaka RK_U32 reserved : 7; 250*437bfbebSnyanmisaka } reg0022_rdo_ckg; 251*437bfbebSnyanmisaka 252*437bfbebSnyanmisaka /* 0x0000005c reg23 */ 253*437bfbebSnyanmisaka struct { 254*437bfbebSnyanmisaka RK_U32 core_id : 2; 255*437bfbebSnyanmisaka RK_U32 reserved : 30; 256*437bfbebSnyanmisaka } reg0023_enc_id; 257*437bfbebSnyanmisaka 258*437bfbebSnyanmisaka 259*437bfbebSnyanmisaka /* 0x00000060 reg24 */ 260*437bfbebSnyanmisaka struct { 261*437bfbebSnyanmisaka RK_U32 dvbm_en : 1; 262*437bfbebSnyanmisaka RK_U32 src_badr_sel : 1; 263*437bfbebSnyanmisaka RK_U32 vinf_frm_match : 1; 264*437bfbebSnyanmisaka RK_U32 reserved : 1; 265*437bfbebSnyanmisaka RK_U32 vrsp_half_cycle : 4; 266*437bfbebSnyanmisaka RK_U32 reserved1 : 24; 267*437bfbebSnyanmisaka } reg0024_dvbm_cfg; 268*437bfbebSnyanmisaka 269*437bfbebSnyanmisaka /* 0x00000064 - 0x6c*/ 270*437bfbebSnyanmisaka RK_U32 reg025_027[3]; 271*437bfbebSnyanmisaka 272*437bfbebSnyanmisaka /* 0x00000070*/ 273*437bfbebSnyanmisaka struct { 274*437bfbebSnyanmisaka RK_U32 reserved : 4; 275*437bfbebSnyanmisaka RK_U32 lkt_addr : 28; 276*437bfbebSnyanmisaka } reg0028_lkt_base_addr; 277*437bfbebSnyanmisaka 278*437bfbebSnyanmisaka /* 0x74 - 0xfc */ 279*437bfbebSnyanmisaka RK_U32 reserved29_63[35]; 280*437bfbebSnyanmisaka 281*437bfbebSnyanmisaka struct { 282*437bfbebSnyanmisaka RK_U32 node_core_id : 2; 283*437bfbebSnyanmisaka RK_U32 node_int : 1; 284*437bfbebSnyanmisaka RK_U32 reserved : 1; 285*437bfbebSnyanmisaka RK_U32 task_id : 12; 286*437bfbebSnyanmisaka RK_U32 reserved1 : 16; 287*437bfbebSnyanmisaka } reg0064_lkt_node_cfg; 288*437bfbebSnyanmisaka 289*437bfbebSnyanmisaka /* 0x00000104 reg65 */ 290*437bfbebSnyanmisaka struct { 291*437bfbebSnyanmisaka RK_U32 pcfg_rd_en : 1; 292*437bfbebSnyanmisaka RK_U32 reserved : 3; 293*437bfbebSnyanmisaka RK_U32 lkt_addr_pcfg : 28; 294*437bfbebSnyanmisaka } reg0065_lkt_addr_pcfg; 295*437bfbebSnyanmisaka 296*437bfbebSnyanmisaka /* 0x00000108 reg66 */ 297*437bfbebSnyanmisaka struct { 298*437bfbebSnyanmisaka RK_U32 rc_cfg_rd_en : 1; 299*437bfbebSnyanmisaka RK_U32 reserved : 3; 300*437bfbebSnyanmisaka RK_U32 lkt_addr_rc_cfg : 28; 301*437bfbebSnyanmisaka } reg0066_lkt_addr_rc_cfg; 302*437bfbebSnyanmisaka 303*437bfbebSnyanmisaka /* 0x0000010c reg67 */ 304*437bfbebSnyanmisaka struct { 305*437bfbebSnyanmisaka RK_U32 par_cfg_rd_en : 1; 306*437bfbebSnyanmisaka RK_U32 reserved : 3; 307*437bfbebSnyanmisaka RK_U32 lkt_addr_par_cfg : 28; 308*437bfbebSnyanmisaka } reg0067_lkt_addr_par_cfg; 309*437bfbebSnyanmisaka 310*437bfbebSnyanmisaka /* 0x00000110 reg68 */ 311*437bfbebSnyanmisaka struct { 312*437bfbebSnyanmisaka RK_U32 sqi_cfg_rd_en : 1; 313*437bfbebSnyanmisaka RK_U32 reserved : 3; 314*437bfbebSnyanmisaka RK_U32 lkt_addr_sqi_cfg : 28; 315*437bfbebSnyanmisaka } reg0068_lkt_addr_sqi_cfg; 316*437bfbebSnyanmisaka 317*437bfbebSnyanmisaka /* 0x00000114 reg69 */ 318*437bfbebSnyanmisaka struct { 319*437bfbebSnyanmisaka RK_U32 scal_cfg_rd_en : 1; 320*437bfbebSnyanmisaka RK_U32 reserved : 3; 321*437bfbebSnyanmisaka RK_U32 lkt_addr_scal_cfg : 28; 322*437bfbebSnyanmisaka } reg0069_lkt_addr_scal_cfg; 323*437bfbebSnyanmisaka 324*437bfbebSnyanmisaka /* 0x00000118 reg70 */ 325*437bfbebSnyanmisaka struct { 326*437bfbebSnyanmisaka RK_U32 pp_cfg_rd_en : 1; 327*437bfbebSnyanmisaka RK_U32 reserved : 3; 328*437bfbebSnyanmisaka RK_U32 lkt_addr_pp_cfg : 28; 329*437bfbebSnyanmisaka } reg0070_lkt_addr_osd_cfg; 330*437bfbebSnyanmisaka 331*437bfbebSnyanmisaka /* 0x0000011c reg71 */ 332*437bfbebSnyanmisaka struct { 333*437bfbebSnyanmisaka RK_U32 st_out_en : 1; 334*437bfbebSnyanmisaka RK_U32 reserved : 3; 335*437bfbebSnyanmisaka RK_U32 lkt_addr_st : 28; 336*437bfbebSnyanmisaka } reg0071_lkt_addr_st; 337*437bfbebSnyanmisaka 338*437bfbebSnyanmisaka /* 0x00000120 reg72 */ 339*437bfbebSnyanmisaka struct { 340*437bfbebSnyanmisaka RK_U32 nxt_node_vld : 1; 341*437bfbebSnyanmisaka RK_U32 reserved : 3; 342*437bfbebSnyanmisaka RK_U32 lkt_addr_nxt : 28; 343*437bfbebSnyanmisaka } reg0072_lkt_addr_nxt; 344*437bfbebSnyanmisaka } hevc_vepu540c_control_cfg; 345*437bfbebSnyanmisaka 346*437bfbebSnyanmisaka /* class: buffer/video syntax */ 347*437bfbebSnyanmisaka /* 0x00000280 reg160 - 0x000003f4 reg253*/ 348*437bfbebSnyanmisaka typedef struct HevcVepu540cBase_t { 349*437bfbebSnyanmisaka vepu540c_online online_addr; 350*437bfbebSnyanmisaka /* 0x00000280 reg160 */ 351*437bfbebSnyanmisaka RK_U32 reg0160_adr_src0; 352*437bfbebSnyanmisaka 353*437bfbebSnyanmisaka /* 0x00000284 reg161 */ 354*437bfbebSnyanmisaka RK_U32 reg0161_adr_src1; 355*437bfbebSnyanmisaka 356*437bfbebSnyanmisaka /* 0x00000288 reg162 */ 357*437bfbebSnyanmisaka RK_U32 reg0162_adr_src2; 358*437bfbebSnyanmisaka 359*437bfbebSnyanmisaka /* 0x0000028c reg163 */ 360*437bfbebSnyanmisaka RK_U32 reg0163_rfpw_h_addr; 361*437bfbebSnyanmisaka 362*437bfbebSnyanmisaka /* 0x00000290 reg164 */ 363*437bfbebSnyanmisaka RK_U32 reg0164_rfpw_b_addr; 364*437bfbebSnyanmisaka 365*437bfbebSnyanmisaka /* 0x00000294 reg165 */ 366*437bfbebSnyanmisaka RK_U32 reg0165_rfpr_h_addr; 367*437bfbebSnyanmisaka 368*437bfbebSnyanmisaka /* 0x00000298 reg166 */ 369*437bfbebSnyanmisaka RK_U32 reg0166_rfpr_b_addr; 370*437bfbebSnyanmisaka 371*437bfbebSnyanmisaka /* 0x0000029c reg167 */ 372*437bfbebSnyanmisaka RK_U32 reg0167_cmvw_addr; 373*437bfbebSnyanmisaka 374*437bfbebSnyanmisaka /* 0x000002a0 reg168 */ 375*437bfbebSnyanmisaka RK_U32 reg0168_cmvr_addr; 376*437bfbebSnyanmisaka 377*437bfbebSnyanmisaka /* 0x000002a4 reg169 */ 378*437bfbebSnyanmisaka RK_U32 reg0169_dspw_addr; 379*437bfbebSnyanmisaka 380*437bfbebSnyanmisaka /* 0x000002a8 reg170 */ 381*437bfbebSnyanmisaka RK_U32 reg0170_dspr_addr; 382*437bfbebSnyanmisaka 383*437bfbebSnyanmisaka /* 0x000002ac reg171 */ 384*437bfbebSnyanmisaka RK_U32 reg0171_meiw_addr; 385*437bfbebSnyanmisaka 386*437bfbebSnyanmisaka /* 0x000002b0 reg172 */ 387*437bfbebSnyanmisaka RK_U32 reg0172_bsbt_addr; 388*437bfbebSnyanmisaka 389*437bfbebSnyanmisaka /* 0x000002b4 reg173 */ 390*437bfbebSnyanmisaka RK_U32 reg0173_bsbb_addr; 391*437bfbebSnyanmisaka 392*437bfbebSnyanmisaka /* 0x000002b8 reg174 */ 393*437bfbebSnyanmisaka RK_U32 reg0174_adr_bsbs; 394*437bfbebSnyanmisaka 395*437bfbebSnyanmisaka /* 0x000002bc reg175 */ 396*437bfbebSnyanmisaka RK_U32 reg0175_bsbr_addr; 397*437bfbebSnyanmisaka 398*437bfbebSnyanmisaka /* 0x000002c0 reg176 */ 399*437bfbebSnyanmisaka RK_U32 reg0176_lpfw_addr; 400*437bfbebSnyanmisaka 401*437bfbebSnyanmisaka /* 0x000002c4 reg177 */ 402*437bfbebSnyanmisaka RK_U32 reg0177_lpfr_addr; 403*437bfbebSnyanmisaka 404*437bfbebSnyanmisaka /* 0x000002c8 reg178 */ 405*437bfbebSnyanmisaka RK_U32 reg0178_adr_ebuft; 406*437bfbebSnyanmisaka 407*437bfbebSnyanmisaka /* 0x000002cc reg179 */ 408*437bfbebSnyanmisaka RK_U32 reg0179_adr_ebufb; 409*437bfbebSnyanmisaka 410*437bfbebSnyanmisaka /* 0x000002d0 reg180 */ 411*437bfbebSnyanmisaka RK_U32 reg0180_adr_rfpt_h; 412*437bfbebSnyanmisaka 413*437bfbebSnyanmisaka /* 0x000002d4 reg181 */ 414*437bfbebSnyanmisaka RK_U32 reg0181_adr_rfpb_h; 415*437bfbebSnyanmisaka 416*437bfbebSnyanmisaka /* 0x000002d8 reg182 */ 417*437bfbebSnyanmisaka RK_U32 reg0182_adr_rfpt_b; 418*437bfbebSnyanmisaka 419*437bfbebSnyanmisaka /* 0x000002dc reg183 */ 420*437bfbebSnyanmisaka RK_U32 reg0183_adr_rfpb_b; 421*437bfbebSnyanmisaka 422*437bfbebSnyanmisaka /* 0x000002e0 reg184 */ 423*437bfbebSnyanmisaka RK_U32 reg0184_adr_smr_rd; 424*437bfbebSnyanmisaka 425*437bfbebSnyanmisaka /* 0x000002e4 reg185 */ 426*437bfbebSnyanmisaka RK_U32 reg0185_adr_smr_wr; 427*437bfbebSnyanmisaka 428*437bfbebSnyanmisaka /* 0x000002e8 reg186 */ 429*437bfbebSnyanmisaka RK_U32 reg0186_adr_roir; 430*437bfbebSnyanmisaka 431*437bfbebSnyanmisaka /* 0x2ec - 0x2fc */ 432*437bfbebSnyanmisaka RK_U32 reserved187_191[5]; 433*437bfbebSnyanmisaka 434*437bfbebSnyanmisaka /* 0x00000300 reg192 */ 435*437bfbebSnyanmisaka struct { 436*437bfbebSnyanmisaka RK_U32 enc_stnd : 2; 437*437bfbebSnyanmisaka RK_U32 cur_frm_ref : 1; 438*437bfbebSnyanmisaka RK_U32 mei_stor : 1; 439*437bfbebSnyanmisaka RK_U32 bs_scp : 1; 440*437bfbebSnyanmisaka RK_U32 reserved : 3; 441*437bfbebSnyanmisaka RK_U32 pic_qp : 6; 442*437bfbebSnyanmisaka RK_U32 num_pic_tot_cur : 5; 443*437bfbebSnyanmisaka RK_U32 log2_ctu_num : 5; 444*437bfbebSnyanmisaka RK_U32 reserved1 : 6; 445*437bfbebSnyanmisaka RK_U32 slen_fifo : 1; 446*437bfbebSnyanmisaka RK_U32 rec_fbc_dis : 1; 447*437bfbebSnyanmisaka } reg0192_enc_pic; 448*437bfbebSnyanmisaka 449*437bfbebSnyanmisaka 450*437bfbebSnyanmisaka /* 0x304 */ 451*437bfbebSnyanmisaka RK_U32 reserved_193; 452*437bfbebSnyanmisaka 453*437bfbebSnyanmisaka /* 0x00000308 reg194 */ 454*437bfbebSnyanmisaka struct { 455*437bfbebSnyanmisaka RK_U32 frame_id : 8; 456*437bfbebSnyanmisaka RK_U32 reserved : 8; 457*437bfbebSnyanmisaka RK_U32 ch_id : 2; 458*437bfbebSnyanmisaka RK_U32 vrsp_rtn_en : 1; 459*437bfbebSnyanmisaka RK_U32 reserved1 : 13; 460*437bfbebSnyanmisaka } reg0194_dvbm_id; 461*437bfbebSnyanmisaka 462*437bfbebSnyanmisaka /* 0x0000030c reg195 */ 463*437bfbebSnyanmisaka RK_U32 bsp_size; 464*437bfbebSnyanmisaka 465*437bfbebSnyanmisaka /* 0x00000310 reg196 */ 466*437bfbebSnyanmisaka struct { 467*437bfbebSnyanmisaka RK_U32 pic_wd8_m1 : 11; 468*437bfbebSnyanmisaka RK_U32 reserved : 5; 469*437bfbebSnyanmisaka RK_U32 pic_hd8_m1 : 11; 470*437bfbebSnyanmisaka RK_U32 reserved1 : 5; 471*437bfbebSnyanmisaka } reg0196_enc_rsl; 472*437bfbebSnyanmisaka 473*437bfbebSnyanmisaka /* 0x00000314 reg197 */ 474*437bfbebSnyanmisaka struct { 475*437bfbebSnyanmisaka RK_U32 pic_wfill : 6; 476*437bfbebSnyanmisaka RK_U32 reserved : 10; 477*437bfbebSnyanmisaka RK_U32 pic_hfill : 6; 478*437bfbebSnyanmisaka RK_U32 reserved1 : 10; 479*437bfbebSnyanmisaka } reg0197_src_fill; 480*437bfbebSnyanmisaka 481*437bfbebSnyanmisaka /* 0x00000318 reg198 */ 482*437bfbebSnyanmisaka struct { 483*437bfbebSnyanmisaka RK_U32 alpha_swap : 1; 484*437bfbebSnyanmisaka RK_U32 rbuv_swap : 1; 485*437bfbebSnyanmisaka RK_U32 src_cfmt : 4; 486*437bfbebSnyanmisaka RK_U32 src_rcne : 1; 487*437bfbebSnyanmisaka RK_U32 out_fmt : 1; 488*437bfbebSnyanmisaka RK_U32 src_range_trns_en : 1; 489*437bfbebSnyanmisaka RK_U32 src_range_trns_sel : 1; 490*437bfbebSnyanmisaka RK_U32 chroma_ds_mode : 1; 491*437bfbebSnyanmisaka RK_U32 reserved : 21; 492*437bfbebSnyanmisaka } reg0198_src_fmt; 493*437bfbebSnyanmisaka 494*437bfbebSnyanmisaka /* 0x0000031c reg199 */ 495*437bfbebSnyanmisaka struct { 496*437bfbebSnyanmisaka RK_U32 csc_wgt_b2y : 9; 497*437bfbebSnyanmisaka RK_U32 csc_wgt_g2y : 9; 498*437bfbebSnyanmisaka RK_U32 csc_wgt_r2y : 9; 499*437bfbebSnyanmisaka RK_U32 reserved : 5; 500*437bfbebSnyanmisaka } reg0199_src_udfy; 501*437bfbebSnyanmisaka 502*437bfbebSnyanmisaka /* 0x00000320 reg200 */ 503*437bfbebSnyanmisaka struct { 504*437bfbebSnyanmisaka RK_U32 csc_wgt_b2u : 9; 505*437bfbebSnyanmisaka RK_U32 csc_wgt_g2u : 9; 506*437bfbebSnyanmisaka RK_U32 csc_wgt_r2u : 9; 507*437bfbebSnyanmisaka RK_U32 reserved : 5; 508*437bfbebSnyanmisaka } reg0200_src_udfu; 509*437bfbebSnyanmisaka 510*437bfbebSnyanmisaka /* 0x00000324 reg201 */ 511*437bfbebSnyanmisaka struct { 512*437bfbebSnyanmisaka RK_U32 csc_wgt_b2v : 9; 513*437bfbebSnyanmisaka RK_U32 csc_wgt_g2v : 9; 514*437bfbebSnyanmisaka RK_U32 csc_wgt_r2v : 9; 515*437bfbebSnyanmisaka RK_U32 reserved : 5; 516*437bfbebSnyanmisaka } reg0201_src_udfv; 517*437bfbebSnyanmisaka 518*437bfbebSnyanmisaka /* 0x00000328 reg202 */ 519*437bfbebSnyanmisaka struct { 520*437bfbebSnyanmisaka RK_U32 csc_ofst_v : 8; 521*437bfbebSnyanmisaka RK_U32 csc_ofst_u : 8; 522*437bfbebSnyanmisaka RK_U32 csc_ofst_y : 5; 523*437bfbebSnyanmisaka RK_U32 reserved : 11; 524*437bfbebSnyanmisaka } reg0202_src_udfo; 525*437bfbebSnyanmisaka 526*437bfbebSnyanmisaka /* 0x0000032c reg203 */ 527*437bfbebSnyanmisaka struct { 528*437bfbebSnyanmisaka RK_U32 reserved : 26; 529*437bfbebSnyanmisaka RK_U32 src_mirr : 1; 530*437bfbebSnyanmisaka RK_U32 src_rot : 2; 531*437bfbebSnyanmisaka RK_U32 reserved1 : 3; 532*437bfbebSnyanmisaka } reg0203_src_proc; 533*437bfbebSnyanmisaka 534*437bfbebSnyanmisaka /* 0x00000330 reg204 */ 535*437bfbebSnyanmisaka struct { 536*437bfbebSnyanmisaka RK_U32 pic_ofst_x : 14; 537*437bfbebSnyanmisaka RK_U32 reserved : 2; 538*437bfbebSnyanmisaka RK_U32 pic_ofst_y : 14; 539*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 540*437bfbebSnyanmisaka } reg0204_pic_ofst; 541*437bfbebSnyanmisaka 542*437bfbebSnyanmisaka /* 0x00000334 reg205 */ 543*437bfbebSnyanmisaka struct { 544*437bfbebSnyanmisaka RK_U32 src_strd0 : 17; 545*437bfbebSnyanmisaka RK_U32 reserved : 15; 546*437bfbebSnyanmisaka } reg0205_src_strd0; 547*437bfbebSnyanmisaka 548*437bfbebSnyanmisaka /* 0x00000338 reg206 */ 549*437bfbebSnyanmisaka struct { 550*437bfbebSnyanmisaka RK_U32 src_strd1 : 16; 551*437bfbebSnyanmisaka RK_U32 reserved : 16; 552*437bfbebSnyanmisaka } reg0206_src_strd1; 553*437bfbebSnyanmisaka 554*437bfbebSnyanmisaka /* 0x0000033c reg207 */ 555*437bfbebSnyanmisaka struct { 556*437bfbebSnyanmisaka RK_U32 pp_corner_filter_strength : 2; 557*437bfbebSnyanmisaka RK_U32 reserved : 2; 558*437bfbebSnyanmisaka RK_U32 pp_edge_filter_strength : 2; 559*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 560*437bfbebSnyanmisaka RK_U32 pp_internal_filter_strength : 2; 561*437bfbebSnyanmisaka RK_U32 reserved2 : 22; 562*437bfbebSnyanmisaka } reg0207_src_flt_cfg; 563*437bfbebSnyanmisaka 564*437bfbebSnyanmisaka /* 0x340 - 0x34c */ 565*437bfbebSnyanmisaka RK_U32 reserved208_211[4]; 566*437bfbebSnyanmisaka 567*437bfbebSnyanmisaka /* 0x00000350 reg212 */ 568*437bfbebSnyanmisaka struct { 569*437bfbebSnyanmisaka RK_U32 rc_en : 1; 570*437bfbebSnyanmisaka RK_U32 aq_en : 1; 571*437bfbebSnyanmisaka RK_U32 aq_mode : 1; 572*437bfbebSnyanmisaka RK_U32 reserved : 9; 573*437bfbebSnyanmisaka RK_U32 rc_ctu_num : 20; 574*437bfbebSnyanmisaka } reg212_rc_cfg; 575*437bfbebSnyanmisaka 576*437bfbebSnyanmisaka /* 0x00000354 reg213 */ 577*437bfbebSnyanmisaka struct { 578*437bfbebSnyanmisaka RK_U32 reserved : 16; 579*437bfbebSnyanmisaka RK_U32 rc_qp_range : 4; 580*437bfbebSnyanmisaka RK_U32 rc_max_qp : 6; 581*437bfbebSnyanmisaka RK_U32 rc_min_qp : 6; 582*437bfbebSnyanmisaka } reg213_rc_qp; 583*437bfbebSnyanmisaka 584*437bfbebSnyanmisaka /* 0x00000358 reg214 */ 585*437bfbebSnyanmisaka struct { 586*437bfbebSnyanmisaka RK_U32 ctu_ebit : 20; 587*437bfbebSnyanmisaka RK_U32 reserved : 12; 588*437bfbebSnyanmisaka } reg214_rc_tgt; 589*437bfbebSnyanmisaka 590*437bfbebSnyanmisaka /* 0x35c */ 591*437bfbebSnyanmisaka RK_U32 reserved_215; 592*437bfbebSnyanmisaka 593*437bfbebSnyanmisaka /* 0x00000360 reg216 */ 594*437bfbebSnyanmisaka struct { 595*437bfbebSnyanmisaka RK_U32 sli_splt : 1; 596*437bfbebSnyanmisaka RK_U32 sli_splt_mode : 1; 597*437bfbebSnyanmisaka RK_U32 sli_splt_cpst : 1; 598*437bfbebSnyanmisaka RK_U32 reserved : 12; 599*437bfbebSnyanmisaka RK_U32 sli_flsh : 1; 600*437bfbebSnyanmisaka RK_U32 sli_max_num_m1 : 15; 601*437bfbebSnyanmisaka RK_U32 reserved1 : 1; 602*437bfbebSnyanmisaka } reg0216_sli_splt; 603*437bfbebSnyanmisaka 604*437bfbebSnyanmisaka /* 0x00000364 reg217 */ 605*437bfbebSnyanmisaka struct { 606*437bfbebSnyanmisaka RK_U32 sli_splt_byte : 20; 607*437bfbebSnyanmisaka RK_U32 reserved : 12; 608*437bfbebSnyanmisaka } reg0217_sli_byte; 609*437bfbebSnyanmisaka 610*437bfbebSnyanmisaka /* 0x00000368 reg218 */ 611*437bfbebSnyanmisaka struct { 612*437bfbebSnyanmisaka RK_U32 sli_splt_cnum_m1 : 20; 613*437bfbebSnyanmisaka RK_U32 reserved : 12; 614*437bfbebSnyanmisaka } reg0218_sli_cnum; 615*437bfbebSnyanmisaka 616*437bfbebSnyanmisaka /* 0x0000036c reg219 */ 617*437bfbebSnyanmisaka struct { 618*437bfbebSnyanmisaka RK_U32 uvc_partition0_len : 12; 619*437bfbebSnyanmisaka RK_U32 uvc_partition_len : 12; 620*437bfbebSnyanmisaka RK_U32 uvc_skip_len : 6; 621*437bfbebSnyanmisaka RK_U32 reserved : 2; 622*437bfbebSnyanmisaka } reg0218_uvc_cfg; 623*437bfbebSnyanmisaka 624*437bfbebSnyanmisaka /* 0x00000370 reg220 */ 625*437bfbebSnyanmisaka struct { 626*437bfbebSnyanmisaka RK_U32 cime_srch_dwnh : 4; 627*437bfbebSnyanmisaka RK_U32 cime_srch_uph : 4; 628*437bfbebSnyanmisaka RK_U32 cime_srch_rgtw : 4; 629*437bfbebSnyanmisaka RK_U32 cime_srch_lftw : 4; 630*437bfbebSnyanmisaka RK_U32 dlt_frm_num : 16; 631*437bfbebSnyanmisaka } reg0220_me_rnge; 632*437bfbebSnyanmisaka 633*437bfbebSnyanmisaka /* 0x00000374 reg221 */ 634*437bfbebSnyanmisaka struct { 635*437bfbebSnyanmisaka RK_U32 srgn_max_num : 7; 636*437bfbebSnyanmisaka RK_U32 cime_dist_thre : 13; 637*437bfbebSnyanmisaka RK_U32 rme_srch_h : 2; 638*437bfbebSnyanmisaka RK_U32 rme_srch_v : 2; 639*437bfbebSnyanmisaka RK_U32 rme_dis : 3; 640*437bfbebSnyanmisaka RK_U32 reserved1 : 1; 641*437bfbebSnyanmisaka RK_U32 fme_dis : 3; 642*437bfbebSnyanmisaka RK_U32 reserved2 : 1; 643*437bfbebSnyanmisaka } reg0221_me_cfg; 644*437bfbebSnyanmisaka 645*437bfbebSnyanmisaka /* 0x00000378 reg222 */ 646*437bfbebSnyanmisaka struct { 647*437bfbebSnyanmisaka RK_U32 cime_size_rama : 10; 648*437bfbebSnyanmisaka RK_U32 reserved : 1; 649*437bfbebSnyanmisaka RK_U32 cime_hgt_rama : 5; 650*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 651*437bfbebSnyanmisaka RK_U32 cme_linebuf_w : 10; 652*437bfbebSnyanmisaka RK_U32 fme_prefsu_en : 2; 653*437bfbebSnyanmisaka RK_U32 colmv_stor : 1; 654*437bfbebSnyanmisaka RK_U32 colmv_load : 1; 655*437bfbebSnyanmisaka } reg0222_me_cach; 656*437bfbebSnyanmisaka 657*437bfbebSnyanmisaka 658*437bfbebSnyanmisaka /* 0x37c - 0x39c */ 659*437bfbebSnyanmisaka RK_U32 reserved223_231[9]; 660*437bfbebSnyanmisaka 661*437bfbebSnyanmisaka /* 0x000003a0 reg232 */ 662*437bfbebSnyanmisaka struct { 663*437bfbebSnyanmisaka RK_U32 ltm_col : 1; 664*437bfbebSnyanmisaka RK_U32 ltm_idx0l0 : 1; 665*437bfbebSnyanmisaka RK_U32 chrm_spcl : 1; 666*437bfbebSnyanmisaka RK_U32 cu_inter_e : 12; 667*437bfbebSnyanmisaka RK_U32 reserved : 4; 668*437bfbebSnyanmisaka RK_U32 cu_intra_e : 4; 669*437bfbebSnyanmisaka RK_U32 ccwa_e : 1; 670*437bfbebSnyanmisaka RK_U32 scl_lst_sel : 2; 671*437bfbebSnyanmisaka RK_U32 lambda_qp_use_avg_cu16_flag : 1; 672*437bfbebSnyanmisaka RK_U32 yuvskip_calc_en : 1; 673*437bfbebSnyanmisaka RK_U32 atf_e : 1; 674*437bfbebSnyanmisaka RK_U32 atr_e : 1; 675*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 676*437bfbebSnyanmisaka } reg0232_rdo_cfg; 677*437bfbebSnyanmisaka 678*437bfbebSnyanmisaka /* 0x000003a4 reg233 */ 679*437bfbebSnyanmisaka struct { 680*437bfbebSnyanmisaka RK_U32 rdo_mark_mode : 9; 681*437bfbebSnyanmisaka RK_U32 reserved : 23; 682*437bfbebSnyanmisaka } reg0233_iprd_csts; 683*437bfbebSnyanmisaka 684*437bfbebSnyanmisaka /* 0x3a8 - 0x3ac */ 685*437bfbebSnyanmisaka RK_U32 reserved234_235[2]; 686*437bfbebSnyanmisaka 687*437bfbebSnyanmisaka /* 0x000003b0 reg236 */ 688*437bfbebSnyanmisaka 689*437bfbebSnyanmisaka struct { 690*437bfbebSnyanmisaka RK_U32 nal_unit_type : 6; 691*437bfbebSnyanmisaka RK_U32 reserved : 26; 692*437bfbebSnyanmisaka } reg0236_synt_nal; 693*437bfbebSnyanmisaka 694*437bfbebSnyanmisaka /* 0x000003b4 reg237 */ 695*437bfbebSnyanmisaka struct { 696*437bfbebSnyanmisaka RK_U32 smpl_adpt_ofst_e : 1; 697*437bfbebSnyanmisaka RK_U32 num_st_ref_pic : 7; 698*437bfbebSnyanmisaka RK_U32 lt_ref_pic_prsnt : 1; 699*437bfbebSnyanmisaka RK_U32 num_lt_ref_pic : 6; 700*437bfbebSnyanmisaka RK_U32 tmpl_mvp_e : 1; 701*437bfbebSnyanmisaka RK_U32 log2_max_poc_lsb : 4; 702*437bfbebSnyanmisaka RK_U32 strg_intra_smth : 1; 703*437bfbebSnyanmisaka RK_U32 reserved : 11; 704*437bfbebSnyanmisaka } reg0237_synt_sps; 705*437bfbebSnyanmisaka 706*437bfbebSnyanmisaka /* 0x000003b8 reg238 */ 707*437bfbebSnyanmisaka struct { 708*437bfbebSnyanmisaka RK_U32 dpdnt_sli_seg_en : 1; 709*437bfbebSnyanmisaka RK_U32 out_flg_prsnt_flg : 1; 710*437bfbebSnyanmisaka RK_U32 num_extr_sli_hdr : 3; 711*437bfbebSnyanmisaka RK_U32 sgn_dat_hid_en : 1; 712*437bfbebSnyanmisaka RK_U32 cbc_init_prsnt_flg : 1; 713*437bfbebSnyanmisaka RK_U32 pic_init_qp : 6; 714*437bfbebSnyanmisaka RK_U32 cu_qp_dlt_en : 1; 715*437bfbebSnyanmisaka RK_U32 chrm_qp_ofst_prsn : 1; 716*437bfbebSnyanmisaka RK_U32 lp_fltr_acrs_sli : 1; 717*437bfbebSnyanmisaka RK_U32 dblk_fltr_ovrd_en : 1; 718*437bfbebSnyanmisaka RK_U32 lst_mdfy_prsnt_flg : 1; 719*437bfbebSnyanmisaka RK_U32 sli_seg_hdr_extn : 1; 720*437bfbebSnyanmisaka RK_U32 cu_qp_dlt_depth : 2; 721*437bfbebSnyanmisaka RK_U32 lpf_fltr_acrs_til : 1; 722*437bfbebSnyanmisaka RK_U32 reserved : 10; 723*437bfbebSnyanmisaka } reg0238_synt_pps; 724*437bfbebSnyanmisaka 725*437bfbebSnyanmisaka /* 0x000003bc reg239 */ 726*437bfbebSnyanmisaka struct { 727*437bfbebSnyanmisaka RK_U32 cbc_init_flg : 1; 728*437bfbebSnyanmisaka RK_U32 mvd_l1_zero_flg : 1; 729*437bfbebSnyanmisaka RK_U32 mrg_up_flg : 1; 730*437bfbebSnyanmisaka RK_U32 mrg_lft_flg : 1; 731*437bfbebSnyanmisaka RK_U32 reserved : 1; 732*437bfbebSnyanmisaka RK_U32 ref_pic_lst_mdf_l0 : 1; 733*437bfbebSnyanmisaka RK_U32 num_refidx_l1_act : 2; 734*437bfbebSnyanmisaka RK_U32 num_refidx_l0_act : 2; 735*437bfbebSnyanmisaka RK_U32 num_refidx_act_ovrd : 1; 736*437bfbebSnyanmisaka RK_U32 sli_sao_chrm_flg : 1; 737*437bfbebSnyanmisaka RK_U32 sli_sao_luma_flg : 1; 738*437bfbebSnyanmisaka RK_U32 sli_tmprl_mvp_e : 1; 739*437bfbebSnyanmisaka RK_U32 pic_out_flg : 1; 740*437bfbebSnyanmisaka RK_U32 sli_type : 2; 741*437bfbebSnyanmisaka RK_U32 sli_rsrv_flg : 7; 742*437bfbebSnyanmisaka RK_U32 dpdnt_sli_seg_flg : 1; 743*437bfbebSnyanmisaka RK_U32 sli_pps_id : 6; 744*437bfbebSnyanmisaka RK_U32 no_out_pri_pic : 1; 745*437bfbebSnyanmisaka } reg0239_synt_sli0; 746*437bfbebSnyanmisaka 747*437bfbebSnyanmisaka /* 0x000003c0 reg240 */ 748*437bfbebSnyanmisaka struct { 749*437bfbebSnyanmisaka RK_U32 sp_tc_ofst_div2 : 4; 750*437bfbebSnyanmisaka RK_U32 sp_beta_ofst_div2 : 4; 751*437bfbebSnyanmisaka RK_U32 sli_lp_fltr_acrs_sli : 1; 752*437bfbebSnyanmisaka RK_U32 sp_dblk_fltr_dis : 1; 753*437bfbebSnyanmisaka RK_U32 dblk_fltr_ovrd_flg : 1; 754*437bfbebSnyanmisaka RK_U32 sli_cb_qp_ofst : 5; 755*437bfbebSnyanmisaka RK_U32 sli_qp : 6; 756*437bfbebSnyanmisaka RK_U32 max_mrg_cnd : 2; 757*437bfbebSnyanmisaka RK_U32 reserved : 1; 758*437bfbebSnyanmisaka RK_U32 col_ref_idx : 1; 759*437bfbebSnyanmisaka RK_U32 col_frm_l0_flg : 1; 760*437bfbebSnyanmisaka RK_U32 lst_entry_l0 : 4; 761*437bfbebSnyanmisaka RK_U32 reserved1 : 1; 762*437bfbebSnyanmisaka } reg0240_synt_sli1; 763*437bfbebSnyanmisaka 764*437bfbebSnyanmisaka /* 0x000003c4 reg241 */ 765*437bfbebSnyanmisaka struct { 766*437bfbebSnyanmisaka RK_U32 sli_poc_lsb : 16; 767*437bfbebSnyanmisaka RK_U32 sli_hdr_ext_len : 9; 768*437bfbebSnyanmisaka RK_U32 reserved : 7; 769*437bfbebSnyanmisaka } reg0241_synt_sli2; 770*437bfbebSnyanmisaka 771*437bfbebSnyanmisaka /* 0x000003c8 reg242 */ 772*437bfbebSnyanmisaka 773*437bfbebSnyanmisaka struct { 774*437bfbebSnyanmisaka RK_U32 st_ref_pic_flg : 1; 775*437bfbebSnyanmisaka RK_U32 poc_lsb_lt0 : 16; 776*437bfbebSnyanmisaka RK_U32 lt_idx_sps : 5; 777*437bfbebSnyanmisaka RK_U32 num_lt_pic : 2; 778*437bfbebSnyanmisaka RK_U32 st_ref_pic_idx : 6; 779*437bfbebSnyanmisaka RK_U32 num_lt_sps : 2; 780*437bfbebSnyanmisaka } reg0242_synt_refm0; 781*437bfbebSnyanmisaka 782*437bfbebSnyanmisaka /* 0x000003cc reg243 */ 783*437bfbebSnyanmisaka struct { 784*437bfbebSnyanmisaka RK_U32 used_by_s0_flg : 4; 785*437bfbebSnyanmisaka RK_U32 num_pos_pic : 1; 786*437bfbebSnyanmisaka RK_U32 num_negative_pics : 5; 787*437bfbebSnyanmisaka RK_U32 dlt_poc_msb_cycl0 : 16; 788*437bfbebSnyanmisaka RK_U32 dlt_poc_msb_prsnt0 : 1; 789*437bfbebSnyanmisaka RK_U32 dlt_poc_msb_prsnt1 : 1; 790*437bfbebSnyanmisaka RK_U32 dlt_poc_msb_prsnt2 : 1; 791*437bfbebSnyanmisaka RK_U32 used_by_lt_flg0 : 1; 792*437bfbebSnyanmisaka RK_U32 used_by_lt_flg1 : 1; 793*437bfbebSnyanmisaka RK_U32 used_by_lt_flg2 : 1; 794*437bfbebSnyanmisaka } reg0243_synt_refm1; 795*437bfbebSnyanmisaka 796*437bfbebSnyanmisaka /* 0x000003d0 reg244 */ 797*437bfbebSnyanmisaka struct { 798*437bfbebSnyanmisaka RK_U32 dlt_poc_s0_m10 : 16; 799*437bfbebSnyanmisaka RK_U32 dlt_poc_s0_m11 : 16; 800*437bfbebSnyanmisaka } reg0244_synt_refm2; 801*437bfbebSnyanmisaka /* 0x000003d4 reg245 */ 802*437bfbebSnyanmisaka struct { 803*437bfbebSnyanmisaka RK_U32 dlt_poc_s0_m12 : 16; 804*437bfbebSnyanmisaka RK_U32 dlt_poc_s0_m13 : 16; 805*437bfbebSnyanmisaka } reg0245_synt_refm3; 806*437bfbebSnyanmisaka 807*437bfbebSnyanmisaka /* 0x000003d8 reg246 */ 808*437bfbebSnyanmisaka struct { 809*437bfbebSnyanmisaka RK_U32 poc_lsb_lt1 : 16; 810*437bfbebSnyanmisaka RK_U32 poc_lsb_lt2 : 16; 811*437bfbebSnyanmisaka } reg0246_synt_long_refm0; 812*437bfbebSnyanmisaka 813*437bfbebSnyanmisaka /* 0x000003dc reg247 */ 814*437bfbebSnyanmisaka struct { 815*437bfbebSnyanmisaka RK_U32 dlt_poc_msb_cycl1 : 16; 816*437bfbebSnyanmisaka RK_U32 dlt_poc_msb_cycl2 : 16; 817*437bfbebSnyanmisaka } reg0247_synt_long_refm1; 818*437bfbebSnyanmisaka 819*437bfbebSnyanmisaka struct { 820*437bfbebSnyanmisaka RK_U32 sao_lambda_multi : 3; 821*437bfbebSnyanmisaka RK_U32 reserved : 29; 822*437bfbebSnyanmisaka } reg0248_sao_cfg; 823*437bfbebSnyanmisaka 824*437bfbebSnyanmisaka /* 0x3e4 - 0x3ec */ 825*437bfbebSnyanmisaka RK_U32 reserved249_251[3]; 826*437bfbebSnyanmisaka 827*437bfbebSnyanmisaka /* 0x000003f0 reg252 */ 828*437bfbebSnyanmisaka struct { 829*437bfbebSnyanmisaka RK_U32 tile_w_m1 : 8; 830*437bfbebSnyanmisaka RK_U32 reserved : 8; 831*437bfbebSnyanmisaka RK_U32 tile_h_m1 : 8; 832*437bfbebSnyanmisaka RK_U32 reserved1 : 7; 833*437bfbebSnyanmisaka RK_U32 tile_en : 1; 834*437bfbebSnyanmisaka } reg0252_tile_cfg; 835*437bfbebSnyanmisaka /* 0x000003f4 reg253 */ 836*437bfbebSnyanmisaka struct { 837*437bfbebSnyanmisaka RK_U32 tile_x : 8; 838*437bfbebSnyanmisaka RK_U32 reserved : 8; 839*437bfbebSnyanmisaka RK_U32 tile_y : 8; 840*437bfbebSnyanmisaka RK_U32 reserved1 : 8; 841*437bfbebSnyanmisaka } reg0253_tile_pos; 842*437bfbebSnyanmisaka 843*437bfbebSnyanmisaka /* 0x3f8 - 0x3fc */ 844*437bfbebSnyanmisaka RK_U32 reserved254_255[2]; 845*437bfbebSnyanmisaka 846*437bfbebSnyanmisaka /* 0x00000400 reg256 - 0x00000480 reg288 */ 847*437bfbebSnyanmisaka Vepu540cJpegReg jpegReg; 848*437bfbebSnyanmisaka 849*437bfbebSnyanmisaka } hevc_vepu540c_base; 850*437bfbebSnyanmisaka 851*437bfbebSnyanmisaka /* class: rc/roi/aq/klut */ 852*437bfbebSnyanmisaka /* 0x00001000 reg1024 - 0x000010e0 reg1080 */ 853*437bfbebSnyanmisaka typedef struct HevcVepu540cRcRoi_t { 854*437bfbebSnyanmisaka /* 0x00001000 reg1024 */ 855*437bfbebSnyanmisaka struct { 856*437bfbebSnyanmisaka RK_U32 qp_adj0 : 5; 857*437bfbebSnyanmisaka RK_U32 qp_adj1 : 5; 858*437bfbebSnyanmisaka RK_U32 qp_adj2 : 5; 859*437bfbebSnyanmisaka RK_U32 qp_adj3 : 5; 860*437bfbebSnyanmisaka RK_U32 qp_adj4 : 5; 861*437bfbebSnyanmisaka RK_U32 reserved : 7; 862*437bfbebSnyanmisaka } rc_adj0; 863*437bfbebSnyanmisaka 864*437bfbebSnyanmisaka /* 0x00001004 reg1025 */ 865*437bfbebSnyanmisaka struct { 866*437bfbebSnyanmisaka RK_U32 qp_adj5 : 5; 867*437bfbebSnyanmisaka RK_U32 qp_adj6 : 5; 868*437bfbebSnyanmisaka RK_U32 qp_adj7 : 5; 869*437bfbebSnyanmisaka RK_U32 qp_adj8 : 5; 870*437bfbebSnyanmisaka RK_U32 reserved : 12; 871*437bfbebSnyanmisaka } rc_adj1; 872*437bfbebSnyanmisaka 873*437bfbebSnyanmisaka /* 0x00001008 reg1026 - 0x00001028 reg1034 */ 874*437bfbebSnyanmisaka RK_U32 rc_dthd_0_8[9]; 875*437bfbebSnyanmisaka 876*437bfbebSnyanmisaka /* 0x102c */ 877*437bfbebSnyanmisaka RK_U32 reserved_1035; 878*437bfbebSnyanmisaka 879*437bfbebSnyanmisaka /* 0x00001030 reg1036 */ 880*437bfbebSnyanmisaka struct { 881*437bfbebSnyanmisaka RK_U32 qpmin_area0 : 6; 882*437bfbebSnyanmisaka RK_U32 qpmax_area0 : 6; 883*437bfbebSnyanmisaka RK_U32 qpmin_area1 : 6; 884*437bfbebSnyanmisaka RK_U32 qpmax_area1 : 6; 885*437bfbebSnyanmisaka RK_U32 qpmin_area2 : 6; 886*437bfbebSnyanmisaka RK_U32 reserved : 2; 887*437bfbebSnyanmisaka } roi_qthd0; 888*437bfbebSnyanmisaka 889*437bfbebSnyanmisaka /* 0x00001034 reg1037 */ 890*437bfbebSnyanmisaka struct { 891*437bfbebSnyanmisaka RK_U32 qpmax_area2 : 6; 892*437bfbebSnyanmisaka RK_U32 qpmin_area3 : 6; 893*437bfbebSnyanmisaka RK_U32 qpmax_area3 : 6; 894*437bfbebSnyanmisaka RK_U32 qpmin_area4 : 6; 895*437bfbebSnyanmisaka RK_U32 qpmax_area4 : 6; 896*437bfbebSnyanmisaka RK_U32 reserved : 2; 897*437bfbebSnyanmisaka } roi_qthd1; 898*437bfbebSnyanmisaka 899*437bfbebSnyanmisaka /* 0x00001038 reg1038 */ 900*437bfbebSnyanmisaka struct { 901*437bfbebSnyanmisaka RK_U32 qpmin_area5 : 6; 902*437bfbebSnyanmisaka RK_U32 qpmax_area5 : 6; 903*437bfbebSnyanmisaka RK_U32 qpmin_area6 : 6; 904*437bfbebSnyanmisaka RK_U32 qpmax_area6 : 6; 905*437bfbebSnyanmisaka RK_U32 qpmin_area7 : 6; 906*437bfbebSnyanmisaka RK_U32 reserved : 2; 907*437bfbebSnyanmisaka } roi_qthd2; 908*437bfbebSnyanmisaka 909*437bfbebSnyanmisaka /* 0x0000103c reg1039 */ 910*437bfbebSnyanmisaka struct { 911*437bfbebSnyanmisaka RK_U32 qpmax_area7 : 6; 912*437bfbebSnyanmisaka RK_U32 reserved : 24; 913*437bfbebSnyanmisaka RK_U32 qpmap_mode : 2; 914*437bfbebSnyanmisaka } roi_qthd3; 915*437bfbebSnyanmisaka 916*437bfbebSnyanmisaka /* 0x00001040 reg1040 */ 917*437bfbebSnyanmisaka RK_U32 reserved_1040; 918*437bfbebSnyanmisaka 919*437bfbebSnyanmisaka /* 0x00001044 reg1041 - 0x00001050 reg1044 */ 920*437bfbebSnyanmisaka RK_U8 aq_tthd[16]; 921*437bfbebSnyanmisaka 922*437bfbebSnyanmisaka /* 923*437bfbebSnyanmisaka * 0x00001054 reg1045 - 0x00001060 reg1048 924*437bfbebSnyanmisaka * only low 6 bits is valid for per step. 925*437bfbebSnyanmisaka */ 926*437bfbebSnyanmisaka RK_U8 aq_step[16]; 927*437bfbebSnyanmisaka 928*437bfbebSnyanmisaka /* 0x00001064 reg1049 */ 929*437bfbebSnyanmisaka struct { 930*437bfbebSnyanmisaka RK_U32 madi_th0 : 8; 931*437bfbebSnyanmisaka RK_U32 madi_th1 : 8; 932*437bfbebSnyanmisaka RK_U32 madi_th2 : 8; 933*437bfbebSnyanmisaka RK_U32 reserved : 8; 934*437bfbebSnyanmisaka } madi_st_thd; 935*437bfbebSnyanmisaka 936*437bfbebSnyanmisaka /* 0x00001068 reg1050 */ 937*437bfbebSnyanmisaka struct { 938*437bfbebSnyanmisaka RK_U32 madp_th0 : 12; 939*437bfbebSnyanmisaka RK_U32 reserved : 4; 940*437bfbebSnyanmisaka RK_U32 madp_th1 : 12; 941*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 942*437bfbebSnyanmisaka } madp_st_thd0; 943*437bfbebSnyanmisaka 944*437bfbebSnyanmisaka /* 0x0000106c reg1051 */ 945*437bfbebSnyanmisaka struct { 946*437bfbebSnyanmisaka RK_U32 madp_th2 : 12; 947*437bfbebSnyanmisaka RK_U32 reserved : 20; 948*437bfbebSnyanmisaka } madp_st_thd1; 949*437bfbebSnyanmisaka 950*437bfbebSnyanmisaka /* 0x1078 - 0x107c */ 951*437bfbebSnyanmisaka RK_U32 reserved1052_1054[3]; 952*437bfbebSnyanmisaka 953*437bfbebSnyanmisaka /* 0x0000107c reg1055 */ 954*437bfbebSnyanmisaka struct { 955*437bfbebSnyanmisaka RK_U32 chrm_klut_ofst : 4; 956*437bfbebSnyanmisaka RK_U32 reserved : 4; 957*437bfbebSnyanmisaka RK_U32 inter_chrm_dist_multi : 6; 958*437bfbebSnyanmisaka RK_U32 reserved1 : 18; 959*437bfbebSnyanmisaka } klut_ofst; 960*437bfbebSnyanmisaka 961*437bfbebSnyanmisaka /*0x00001080 reg1056 - 0x0000110c reg1091 */ 962*437bfbebSnyanmisaka Vepu540cRoiCfg roi_cfg; 963*437bfbebSnyanmisaka } hevc_vepu540c_rc_roi; 964*437bfbebSnyanmisaka 965*437bfbebSnyanmisaka /* class: iprd/iprd_wgt/rdo_wgta/prei_dif*/ 966*437bfbebSnyanmisaka /* 0x00001700 reg1472 - 0x00001cd4 reg1845 */ 967*437bfbebSnyanmisaka typedef struct HevcVepu540cWgt_t { 968*437bfbebSnyanmisaka /* 0x00001700 - 0x0000172c reg1472 */ 969*437bfbebSnyanmisaka RK_U32 reserved1472_1483[12]; 970*437bfbebSnyanmisaka 971*437bfbebSnyanmisaka /* 0x00001730 reg1484 */ 972*437bfbebSnyanmisaka struct { 973*437bfbebSnyanmisaka RK_U32 qnt_bias_i : 10; 974*437bfbebSnyanmisaka RK_U32 qnt_bias_p : 10; 975*437bfbebSnyanmisaka RK_U32 reserved : 12; 976*437bfbebSnyanmisaka } reg1484_qnt_bias_comb; 977*437bfbebSnyanmisaka 978*437bfbebSnyanmisaka /* 0x1734 - 0x175c */ 979*437bfbebSnyanmisaka RK_U32 reserved1485_1495[11]; 980*437bfbebSnyanmisaka 981*437bfbebSnyanmisaka /* 0x00001760 reg1496 */ 982*437bfbebSnyanmisaka struct { 983*437bfbebSnyanmisaka RK_U32 cime_pmv_num : 1; 984*437bfbebSnyanmisaka RK_U32 cime_fuse : 1; 985*437bfbebSnyanmisaka RK_U32 itp_mode : 1; 986*437bfbebSnyanmisaka RK_U32 reserved : 1; 987*437bfbebSnyanmisaka RK_U32 move_lambda : 4; 988*437bfbebSnyanmisaka RK_U32 rime_lvl_mrg : 2; 989*437bfbebSnyanmisaka RK_U32 rime_prelvl_en : 2; 990*437bfbebSnyanmisaka RK_U32 rime_prersu_en : 3; 991*437bfbebSnyanmisaka RK_U32 reserved1 : 17; 992*437bfbebSnyanmisaka } me_sqi_cfg; 993*437bfbebSnyanmisaka 994*437bfbebSnyanmisaka /* 0x00001764 reg1497 */ 995*437bfbebSnyanmisaka struct { 996*437bfbebSnyanmisaka RK_U32 cime_mvd_th0 : 9; 997*437bfbebSnyanmisaka RK_U32 reserved : 1; 998*437bfbebSnyanmisaka RK_U32 cime_mvd_th1 : 9; 999*437bfbebSnyanmisaka RK_U32 reserved1 : 1; 1000*437bfbebSnyanmisaka RK_U32 cime_mvd_th2 : 9; 1001*437bfbebSnyanmisaka RK_U32 reserved2 : 3; 1002*437bfbebSnyanmisaka } cime_mvd_th; 1003*437bfbebSnyanmisaka 1004*437bfbebSnyanmisaka /* 0x00001768 reg1498 */ 1005*437bfbebSnyanmisaka struct { 1006*437bfbebSnyanmisaka RK_U32 cime_madp_th : 12; 1007*437bfbebSnyanmisaka RK_U32 reserved : 20; 1008*437bfbebSnyanmisaka } cime_madp_th; 1009*437bfbebSnyanmisaka 1010*437bfbebSnyanmisaka /* 0x0000176c reg1499 */ 1011*437bfbebSnyanmisaka struct { 1012*437bfbebSnyanmisaka RK_U32 cime_multi0 : 8; 1013*437bfbebSnyanmisaka RK_U32 cime_multi1 : 8; 1014*437bfbebSnyanmisaka RK_U32 cime_multi2 : 8; 1015*437bfbebSnyanmisaka RK_U32 cime_multi3 : 8; 1016*437bfbebSnyanmisaka } cime_multi; 1017*437bfbebSnyanmisaka 1018*437bfbebSnyanmisaka /* 0x00001770 reg1500 */ 1019*437bfbebSnyanmisaka struct { 1020*437bfbebSnyanmisaka RK_U32 rime_mvd_th0 : 3; 1021*437bfbebSnyanmisaka RK_U32 reserved : 1; 1022*437bfbebSnyanmisaka RK_U32 rime_mvd_th1 : 3; 1023*437bfbebSnyanmisaka RK_U32 reserved1 : 9; 1024*437bfbebSnyanmisaka RK_U32 fme_madp_th : 12; 1025*437bfbebSnyanmisaka RK_U32 reserved2 : 4; 1026*437bfbebSnyanmisaka } rime_mvd_th; 1027*437bfbebSnyanmisaka 1028*437bfbebSnyanmisaka /* 0x00001774 reg1501 */ 1029*437bfbebSnyanmisaka struct { 1030*437bfbebSnyanmisaka RK_U32 rime_madp_th0 : 12; 1031*437bfbebSnyanmisaka RK_U32 reserved : 4; 1032*437bfbebSnyanmisaka RK_U32 rime_madp_th1 : 12; 1033*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 1034*437bfbebSnyanmisaka } rime_madp_th; 1035*437bfbebSnyanmisaka 1036*437bfbebSnyanmisaka /* 0x00001778 reg1502 */ 1037*437bfbebSnyanmisaka struct { 1038*437bfbebSnyanmisaka RK_U32 rime_multi0 : 10; 1039*437bfbebSnyanmisaka RK_U32 rime_multi1 : 10; 1040*437bfbebSnyanmisaka RK_U32 rime_multi2 : 10; 1041*437bfbebSnyanmisaka RK_U32 reserved : 2; 1042*437bfbebSnyanmisaka } rime_multi; 1043*437bfbebSnyanmisaka 1044*437bfbebSnyanmisaka /* 0x0000177c reg1503 */ 1045*437bfbebSnyanmisaka struct { 1046*437bfbebSnyanmisaka RK_U32 cmv_th0 : 8; 1047*437bfbebSnyanmisaka RK_U32 cmv_th1 : 8; 1048*437bfbebSnyanmisaka RK_U32 cmv_th2 : 8; 1049*437bfbebSnyanmisaka RK_U32 reserved : 8; 1050*437bfbebSnyanmisaka } cmv_st_th; 1051*437bfbebSnyanmisaka 1052*437bfbebSnyanmisaka /* 0x1780 - 0x17fc */ 1053*437bfbebSnyanmisaka RK_U32 reserved1504_1535[32]; 1054*437bfbebSnyanmisaka 1055*437bfbebSnyanmisaka /* 0x00001800 reg1536 */ 1056*437bfbebSnyanmisaka struct { 1057*437bfbebSnyanmisaka RK_U32 lambda_satd_offset : 5; 1058*437bfbebSnyanmisaka RK_U32 reserved : 27; 1059*437bfbebSnyanmisaka } iprd_lamb_satd_ofst; 1060*437bfbebSnyanmisaka 1061*437bfbebSnyanmisaka /* 0x1804 - 0x18fc */ 1062*437bfbebSnyanmisaka RK_U32 reserved1537_1599[63];; 1063*437bfbebSnyanmisaka 1064*437bfbebSnyanmisaka /* wgt_qp48_grpa */ 1065*437bfbebSnyanmisaka /* 0x00001900 reg1600 */ 1066*437bfbebSnyanmisaka RK_U32 rdo_wgta_qp_grpa_0_51[52]; 1067*437bfbebSnyanmisaka } hevc_vepu540c_wgt; 1068*437bfbebSnyanmisaka 1069*437bfbebSnyanmisaka typedef struct H265eV540cRegSet_t { 1070*437bfbebSnyanmisaka hevc_vepu540c_control_cfg reg_ctl; 1071*437bfbebSnyanmisaka hevc_vepu540c_base reg_base; 1072*437bfbebSnyanmisaka hevc_vepu540c_rc_roi reg_rc_roi; 1073*437bfbebSnyanmisaka hevc_vepu540c_wgt reg_wgt; 1074*437bfbebSnyanmisaka vepu540c_rdo_cfg reg_rdo; 1075*437bfbebSnyanmisaka vepu540c_scl_cfg reg_scl; 1076*437bfbebSnyanmisaka vepu540c_jpeg_tab jpeg_table; 1077*437bfbebSnyanmisaka vepu540c_dbg reg_dbg; 1078*437bfbebSnyanmisaka } H265eV540cRegSet; 1079*437bfbebSnyanmisaka 1080*437bfbebSnyanmisaka typedef struct H265eV540cStatusElem_t { 1081*437bfbebSnyanmisaka vepu540c_hw_status hw_status; 1082*437bfbebSnyanmisaka vepu540c_status st; 1083*437bfbebSnyanmisaka } H265eV540cStatusElem; 1084*437bfbebSnyanmisaka 1085*437bfbebSnyanmisaka #endif 1086