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 __VEPU511_COMMON_H__ 7*437bfbebSnyanmisaka #define __VEPU511_COMMON_H__ 8*437bfbebSnyanmisaka 9*437bfbebSnyanmisaka #include "rk_venc_cmd.h" 10*437bfbebSnyanmisaka #include "mpp_device.h" 11*437bfbebSnyanmisaka 12*437bfbebSnyanmisaka #define VEPU511_CTL_OFFSET (0 * sizeof(RK_U32)) /* 0x00000000 reg0 - 0x00000120 reg72 */ 13*437bfbebSnyanmisaka #define VEPU511_FRAME_OFFSET (156 * sizeof(RK_U32)) /* 0x00000270 reg156 - 0x00000538 reg334 */ 14*437bfbebSnyanmisaka #define VEPU511_RC_ROI_OFFSET (1024 * sizeof(RK_U32)) /* 0x00001000 reg1024 - 0x00001160 reg1112 */ 15*437bfbebSnyanmisaka #define VEPU511_PARAM_OFFSET (1472 * sizeof(RK_U32)) /* 0x00001700 reg1472 - 0x000019cc reg1651 */ 16*437bfbebSnyanmisaka #define VEPU511_SQI_OFFSET (2048 * sizeof(RK_U32)) /* 0x00002000 reg2048 - 0x0000216c reg2139 */ 17*437bfbebSnyanmisaka #define VEPU511_SCL_OFFSET (2176 * sizeof(RK_U32)) /* 0x00002200 reg2176 - 0x00002c9c reg2855 */ 18*437bfbebSnyanmisaka #define VEPU511_JPEGTAB_OFFSET (2856 * sizeof(RK_U32)) /* 0x00002ca0 reg2856 - 0x00002e1c reg2951 */ 19*437bfbebSnyanmisaka #define VEPU511_OSD_OFFSET (3072 * sizeof(RK_U32)) /* 0x00003000 reg3072 - 0x00003264 reg3225 */ 20*437bfbebSnyanmisaka #define VEPU511_STATUS_OFFSET (4096 * sizeof(RK_U32)) /* 0x00004000 reg4096 - 0x0000424c reg4243 */ 21*437bfbebSnyanmisaka #define VEPU511_DBG_OFFSET (5120 * sizeof(RK_U32)) /* 0x00005000 reg5120 - 0x0000523c reg5263 */ 22*437bfbebSnyanmisaka #define VEPU511_REG_BASE_HW_STATUS (0x2c) 23*437bfbebSnyanmisaka 24*437bfbebSnyanmisaka #define VEPU511_MAX_ROI_NUM 8 25*437bfbebSnyanmisaka #define VEPU511_SLICE_FIFO_LEN 8 26*437bfbebSnyanmisaka 27*437bfbebSnyanmisaka typedef enum qbias_ofst_e { 28*437bfbebSnyanmisaka IFRAME_THD0 = 0, 29*437bfbebSnyanmisaka IFRAME_THD1, 30*437bfbebSnyanmisaka IFRAME_THD2, 31*437bfbebSnyanmisaka IFRAME_BIAS0, 32*437bfbebSnyanmisaka IFRAME_BIAS1, 33*437bfbebSnyanmisaka IFRAME_BIAS2, 34*437bfbebSnyanmisaka IFRAME_BIAS3, 35*437bfbebSnyanmisaka PFRAME_THD0, 36*437bfbebSnyanmisaka PFRAME_THD1, 37*437bfbebSnyanmisaka PFRAME_THD2, 38*437bfbebSnyanmisaka PFRAME_IBLK_BIAS0, 39*437bfbebSnyanmisaka PFRAME_IBLK_BIAS1, 40*437bfbebSnyanmisaka PFRAME_IBLK_BIAS2, 41*437bfbebSnyanmisaka PFRAME_IBLK_BIAS3, 42*437bfbebSnyanmisaka PFRAME_PBLK_BIAS0, 43*437bfbebSnyanmisaka PFRAME_PBLK_BIAS1, 44*437bfbebSnyanmisaka PFRAME_PBLK_BIAS2, 45*437bfbebSnyanmisaka PFRAME_PBLK_BIAS3 46*437bfbebSnyanmisaka } QbiasOfst; 47*437bfbebSnyanmisaka 48*437bfbebSnyanmisaka typedef struct Vepu511Online_t { 49*437bfbebSnyanmisaka /* 0x00000270 reg156 */ 50*437bfbebSnyanmisaka struct { 51*437bfbebSnyanmisaka RK_U32 reserved : 4; 52*437bfbebSnyanmisaka RK_U32 adr_vsy_t : 28; 53*437bfbebSnyanmisaka } adr_vsy_t; 54*437bfbebSnyanmisaka 55*437bfbebSnyanmisaka /* 0x00000274 reg157 */ 56*437bfbebSnyanmisaka struct { 57*437bfbebSnyanmisaka RK_U32 reserved : 4; 58*437bfbebSnyanmisaka RK_U32 adr_vsc_t : 28; 59*437bfbebSnyanmisaka } adr_vsc_t; 60*437bfbebSnyanmisaka 61*437bfbebSnyanmisaka /* 0x00000278 reg158 */ 62*437bfbebSnyanmisaka struct { 63*437bfbebSnyanmisaka RK_U32 reserved : 4; 64*437bfbebSnyanmisaka RK_U32 adr_vsy_b : 28; 65*437bfbebSnyanmisaka } adr_vsy_b; 66*437bfbebSnyanmisaka 67*437bfbebSnyanmisaka /* 0x0000027c reg159 */ 68*437bfbebSnyanmisaka struct { 69*437bfbebSnyanmisaka RK_U32 reserved : 4; 70*437bfbebSnyanmisaka RK_U32 adr_vsc_b : 28; 71*437bfbebSnyanmisaka } adr_vsc_b; 72*437bfbebSnyanmisaka } vepu511_online; 73*437bfbebSnyanmisaka 74*437bfbebSnyanmisaka typedef struct RdoB32SkipPar_t { 75*437bfbebSnyanmisaka /* 0x00002060 reg2072 */ 76*437bfbebSnyanmisaka struct { 77*437bfbebSnyanmisaka RK_U32 madp_thd0 : 12; 78*437bfbebSnyanmisaka RK_U32 reserved : 4; 79*437bfbebSnyanmisaka RK_U32 madp_thd1 : 12; 80*437bfbebSnyanmisaka RK_U32 reserved1 : 1; 81*437bfbebSnyanmisaka RK_U32 flckr_frame_qp_en : 1; 82*437bfbebSnyanmisaka RK_U32 flckr_lgt_chng_en : 1; 83*437bfbebSnyanmisaka RK_U32 flckr_en : 1; 84*437bfbebSnyanmisaka } atf_thd0; 85*437bfbebSnyanmisaka 86*437bfbebSnyanmisaka /* 0x00002064 reg2073 */ 87*437bfbebSnyanmisaka struct { 88*437bfbebSnyanmisaka RK_U32 madp_thd2 : 12; 89*437bfbebSnyanmisaka RK_U32 reserved : 4; 90*437bfbebSnyanmisaka RK_U32 madp_thd3 : 12; 91*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 92*437bfbebSnyanmisaka } atf_thd1; 93*437bfbebSnyanmisaka 94*437bfbebSnyanmisaka /* 0x00002068 reg2074 */ 95*437bfbebSnyanmisaka struct { 96*437bfbebSnyanmisaka RK_U32 wgt0 : 8; 97*437bfbebSnyanmisaka RK_U32 wgt1 : 8; 98*437bfbebSnyanmisaka RK_U32 wgt2 : 8; 99*437bfbebSnyanmisaka RK_U32 wgt3 : 8; 100*437bfbebSnyanmisaka } atf_wgt0; 101*437bfbebSnyanmisaka 102*437bfbebSnyanmisaka /* 0x206c */ 103*437bfbebSnyanmisaka RK_U32 reserved_2075; 104*437bfbebSnyanmisaka } rdo_b32_skip_par; 105*437bfbebSnyanmisaka 106*437bfbebSnyanmisaka typedef struct RdoSkipPar_t { 107*437bfbebSnyanmisaka struct { 108*437bfbebSnyanmisaka RK_U32 madp_thd0 : 12; 109*437bfbebSnyanmisaka RK_U32 reserved : 4; 110*437bfbebSnyanmisaka RK_U32 madp_thd1 : 12; 111*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 112*437bfbebSnyanmisaka } atf_thd0; 113*437bfbebSnyanmisaka 114*437bfbebSnyanmisaka /* 0x00002064 reg2073 */ 115*437bfbebSnyanmisaka struct { 116*437bfbebSnyanmisaka RK_U32 madp_thd2 : 12; 117*437bfbebSnyanmisaka RK_U32 reserved : 4; 118*437bfbebSnyanmisaka RK_U32 madp_thd3 : 12; 119*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 120*437bfbebSnyanmisaka } atf_thd1; 121*437bfbebSnyanmisaka 122*437bfbebSnyanmisaka /* 0x00002068 reg2074 */ 123*437bfbebSnyanmisaka struct { 124*437bfbebSnyanmisaka RK_U32 wgt0 : 8; 125*437bfbebSnyanmisaka RK_U32 wgt1 : 8; 126*437bfbebSnyanmisaka RK_U32 wgt2 : 8; 127*437bfbebSnyanmisaka RK_U32 wgt3 : 8; 128*437bfbebSnyanmisaka } atf_wgt0; 129*437bfbebSnyanmisaka 130*437bfbebSnyanmisaka /* 0x0000206c reg2075 */ 131*437bfbebSnyanmisaka struct { 132*437bfbebSnyanmisaka RK_U32 wgt4 : 8; 133*437bfbebSnyanmisaka RK_U32 reserved : 24; 134*437bfbebSnyanmisaka } atf_wgt1; 135*437bfbebSnyanmisaka } rdo_skip_par; 136*437bfbebSnyanmisaka 137*437bfbebSnyanmisaka typedef struct RdoB32NoSkipPar_t { 138*437bfbebSnyanmisaka /* 0x00002080 reg2080 */ 139*437bfbebSnyanmisaka struct { 140*437bfbebSnyanmisaka RK_U32 madp_thd0 : 12; 141*437bfbebSnyanmisaka RK_U32 reserved : 4; 142*437bfbebSnyanmisaka RK_U32 madp_thd1 : 12; 143*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 144*437bfbebSnyanmisaka } atf_thd0; 145*437bfbebSnyanmisaka 146*437bfbebSnyanmisaka /* 0x00002084 reg2081 */ 147*437bfbebSnyanmisaka struct { 148*437bfbebSnyanmisaka RK_U32 madp_thd2 : 12; 149*437bfbebSnyanmisaka RK_U32 reserved : 4; 150*437bfbebSnyanmisaka RK_U32 atf_bypass_pri_flag : 1; 151*437bfbebSnyanmisaka RK_U32 reserved1 : 15; 152*437bfbebSnyanmisaka } atf_thd1; 153*437bfbebSnyanmisaka 154*437bfbebSnyanmisaka 155*437bfbebSnyanmisaka /* 0x00002088 reg2082 */ 156*437bfbebSnyanmisaka struct { 157*437bfbebSnyanmisaka RK_U32 wgt0 : 8; 158*437bfbebSnyanmisaka RK_U32 wgt1 : 8; 159*437bfbebSnyanmisaka RK_U32 wgt2 : 8; 160*437bfbebSnyanmisaka RK_U32 reserved : 8; 161*437bfbebSnyanmisaka } atf_wgt; 162*437bfbebSnyanmisaka } rdo_b32_noskip_par; 163*437bfbebSnyanmisaka 164*437bfbebSnyanmisaka typedef struct RdoNoSkipPar_t { 165*437bfbebSnyanmisaka /* 0x00002080 reg2080 */ 166*437bfbebSnyanmisaka struct { 167*437bfbebSnyanmisaka RK_U32 madp_thd0 : 12; 168*437bfbebSnyanmisaka RK_U32 reserved : 4; 169*437bfbebSnyanmisaka RK_U32 madp_thd1 : 12; 170*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 171*437bfbebSnyanmisaka } ratf_thd0; 172*437bfbebSnyanmisaka 173*437bfbebSnyanmisaka /* 0x00002084 reg2081 */ 174*437bfbebSnyanmisaka struct { 175*437bfbebSnyanmisaka RK_U32 madp_thd2 : 12; 176*437bfbebSnyanmisaka RK_U32 reserved : 20; 177*437bfbebSnyanmisaka } ratf_thd1; 178*437bfbebSnyanmisaka 179*437bfbebSnyanmisaka /* 0x00002088 reg2082 */ 180*437bfbebSnyanmisaka struct { 181*437bfbebSnyanmisaka RK_U32 wgt0 : 8; 182*437bfbebSnyanmisaka RK_U32 wgt1 : 8; 183*437bfbebSnyanmisaka RK_U32 wgt2 : 8; 184*437bfbebSnyanmisaka RK_U32 wgt3 : 8; 185*437bfbebSnyanmisaka } atf_wgt; 186*437bfbebSnyanmisaka } rdo_noskip_par; 187*437bfbebSnyanmisaka 188*437bfbebSnyanmisaka typedef struct Vepu511RoiRegion_t { 189*437bfbebSnyanmisaka struct { 190*437bfbebSnyanmisaka RK_U32 roi_lt_x : 10; 191*437bfbebSnyanmisaka RK_U32 reserved : 6; 192*437bfbebSnyanmisaka RK_U32 roi_lt_y : 10; 193*437bfbebSnyanmisaka RK_U32 reserved1 : 6; 194*437bfbebSnyanmisaka } roi_pos_lt; 195*437bfbebSnyanmisaka 196*437bfbebSnyanmisaka struct { 197*437bfbebSnyanmisaka RK_U32 roi_rb_x : 10; 198*437bfbebSnyanmisaka RK_U32 reserved : 6; 199*437bfbebSnyanmisaka RK_U32 roi_rb_y : 10; 200*437bfbebSnyanmisaka RK_U32 reserved1 : 6; 201*437bfbebSnyanmisaka } roi_pos_rb; 202*437bfbebSnyanmisaka 203*437bfbebSnyanmisaka struct { 204*437bfbebSnyanmisaka RK_U32 roi_qp_value : 7; 205*437bfbebSnyanmisaka RK_U32 roi_qp_adj_mode : 1; 206*437bfbebSnyanmisaka RK_U32 roi_pri : 5; 207*437bfbebSnyanmisaka RK_U32 roi_en : 1; 208*437bfbebSnyanmisaka RK_U32 reserved : 18; 209*437bfbebSnyanmisaka } roi_base; 210*437bfbebSnyanmisaka 211*437bfbebSnyanmisaka /* 0x0000109c reg1063 */ 212*437bfbebSnyanmisaka union { 213*437bfbebSnyanmisaka struct { 214*437bfbebSnyanmisaka RK_U32 mdc_intra16 : 4; 215*437bfbebSnyanmisaka RK_U32 mdc_inter16 : 4; 216*437bfbebSnyanmisaka RK_U32 mdc_split16 : 4; 217*437bfbebSnyanmisaka RK_U32 mdc_res_intra16 : 4; 218*437bfbebSnyanmisaka RK_U32 mdc_res_inter16 : 4; 219*437bfbebSnyanmisaka RK_U32 mdc_res_zeromv16 : 4; 220*437bfbebSnyanmisaka RK_U32 mdc_dpth_hevc : 1; 221*437bfbebSnyanmisaka RK_U32 reserved : 7; 222*437bfbebSnyanmisaka } roi0_mdc0_hevc; 223*437bfbebSnyanmisaka 224*437bfbebSnyanmisaka struct { 225*437bfbebSnyanmisaka RK_U32 roi0_mdc_intra16 : 4; 226*437bfbebSnyanmisaka RK_U32 roi0_mdc_inter16 : 4; 227*437bfbebSnyanmisaka RK_U32 roi0_mdc_skip16 : 4; 228*437bfbebSnyanmisaka RK_U32 reserved : 20; 229*437bfbebSnyanmisaka } roi0_mdc0_h264; 230*437bfbebSnyanmisaka } reg1063; 231*437bfbebSnyanmisaka 232*437bfbebSnyanmisaka /* 0x000010a0 reg1064 */ 233*437bfbebSnyanmisaka struct { 234*437bfbebSnyanmisaka RK_U32 mdc_intra32 : 4; 235*437bfbebSnyanmisaka RK_U32 mdc_inter32 : 4; 236*437bfbebSnyanmisaka RK_U32 mdc_split32 : 4; 237*437bfbebSnyanmisaka RK_U32 mdc_res_intra32 : 4; 238*437bfbebSnyanmisaka RK_U32 mdc_res_inter32 : 4; 239*437bfbebSnyanmisaka RK_U32 mdc_res_zeromv32 : 4; 240*437bfbebSnyanmisaka RK_U32 reserved : 8; 241*437bfbebSnyanmisaka } roi_mdc_hevc; 242*437bfbebSnyanmisaka } Vepu511RoiRegion; 243*437bfbebSnyanmisaka 244*437bfbebSnyanmisaka typedef struct Vepu511RoiCfg_t { 245*437bfbebSnyanmisaka /* 0x00001080 reg1056 */ 246*437bfbebSnyanmisaka union { 247*437bfbebSnyanmisaka struct { 248*437bfbebSnyanmisaka RK_U32 fmdc_adju_intra16 : 4; 249*437bfbebSnyanmisaka RK_U32 fmdc_adju_inter16 : 4; 250*437bfbebSnyanmisaka RK_U32 fmdc_adju_split16 : 4; 251*437bfbebSnyanmisaka RK_U32 fmdc_adju_res_intra16 : 4; 252*437bfbebSnyanmisaka RK_U32 fmdc_adju_res_inter16 : 4; 253*437bfbebSnyanmisaka RK_U32 fmdc_adju_res_zeromv16 : 4; 254*437bfbebSnyanmisaka RK_U32 fmdc_adju_pri : 5; 255*437bfbebSnyanmisaka RK_U32 reserved : 3; 256*437bfbebSnyanmisaka } fmdc_adj0_hevc; 257*437bfbebSnyanmisaka 258*437bfbebSnyanmisaka struct { 259*437bfbebSnyanmisaka RK_U32 fmdc_adju_intra16 : 4; 260*437bfbebSnyanmisaka RK_U32 fmdc_adju_inter16 : 4; 261*437bfbebSnyanmisaka RK_U32 fmdc_adju_skip16 : 4; 262*437bfbebSnyanmisaka RK_U32 reserved : 12; 263*437bfbebSnyanmisaka RK_U32 fmdc_adj_pri : 5; 264*437bfbebSnyanmisaka RK_U32 reserved1 : 3; 265*437bfbebSnyanmisaka } fmdc_adj0_h264; 266*437bfbebSnyanmisaka } reg1056; 267*437bfbebSnyanmisaka 268*437bfbebSnyanmisaka /* 0x00001084 reg1057 */ 269*437bfbebSnyanmisaka struct { 270*437bfbebSnyanmisaka RK_U32 fmdc_adju_intra32 : 4; 271*437bfbebSnyanmisaka RK_U32 fmdc_adju_inter32 : 4; 272*437bfbebSnyanmisaka RK_U32 fmdc_adju_split32 : 4; 273*437bfbebSnyanmisaka RK_U32 fmdc_adju_res_intra32 : 4; 274*437bfbebSnyanmisaka RK_U32 fmdc_adju_res_inter32 : 4; 275*437bfbebSnyanmisaka RK_U32 fmdc_adju_res_zeromv32 : 4; 276*437bfbebSnyanmisaka RK_U32 fmdc_adju_split8 : 4; 277*437bfbebSnyanmisaka RK_U32 fmdc_adju_lt_ref32 : 4; 278*437bfbebSnyanmisaka } fmdc_adj1_hevc; 279*437bfbebSnyanmisaka 280*437bfbebSnyanmisaka RK_U32 reserved_1058; 281*437bfbebSnyanmisaka 282*437bfbebSnyanmisaka /* 0x0000108c reg1059 */ 283*437bfbebSnyanmisaka struct { 284*437bfbebSnyanmisaka RK_U32 bmap_en : 1; 285*437bfbebSnyanmisaka RK_U32 bmap_pri : 5; 286*437bfbebSnyanmisaka RK_U32 bmap_qpmin : 6; 287*437bfbebSnyanmisaka RK_U32 bmap_qpmax : 6; 288*437bfbebSnyanmisaka RK_U32 bmap_mdc_dpth : 1; 289*437bfbebSnyanmisaka RK_U32 reserved : 13; 290*437bfbebSnyanmisaka } bmap_cfg; 291*437bfbebSnyanmisaka 292*437bfbebSnyanmisaka /* 0x00001090 reg1060 - 0x0000112c reg1099 */ 293*437bfbebSnyanmisaka Vepu511RoiRegion regions[8]; 294*437bfbebSnyanmisaka } Vepu511RoiCfg; 295*437bfbebSnyanmisaka 296*437bfbebSnyanmisaka /* class: control/link */ 297*437bfbebSnyanmisaka /* 0x00000000 reg0 - 0x00000120 reg72 */ 298*437bfbebSnyanmisaka typedef struct Vepu511ControlCfg_t { 299*437bfbebSnyanmisaka /* 0x00000000 reg0 */ 300*437bfbebSnyanmisaka struct { 301*437bfbebSnyanmisaka RK_U32 sub_ver : 8; 302*437bfbebSnyanmisaka RK_U32 h264_cap : 1; 303*437bfbebSnyanmisaka RK_U32 hevc_cap : 1; 304*437bfbebSnyanmisaka RK_U32 reserved : 2; 305*437bfbebSnyanmisaka RK_U32 res_cap : 4; 306*437bfbebSnyanmisaka RK_U32 osd_cap : 2; 307*437bfbebSnyanmisaka RK_U32 filtr_cap : 2; 308*437bfbebSnyanmisaka RK_U32 bfrm_cap : 1; 309*437bfbebSnyanmisaka RK_U32 fbc_cap : 2; 310*437bfbebSnyanmisaka RK_U32 reserved1 : 1; 311*437bfbebSnyanmisaka RK_U32 ip_id : 8; 312*437bfbebSnyanmisaka } version; 313*437bfbebSnyanmisaka 314*437bfbebSnyanmisaka /* 0x00000004 - 0x0000000c */ 315*437bfbebSnyanmisaka RK_U32 reserved1_3[3]; 316*437bfbebSnyanmisaka 317*437bfbebSnyanmisaka /* 0x00000010 reg4 */ 318*437bfbebSnyanmisaka struct { 319*437bfbebSnyanmisaka RK_U32 lkt_num : 8; 320*437bfbebSnyanmisaka RK_U32 vepu_cmd : 3; 321*437bfbebSnyanmisaka RK_U32 reserved : 21; 322*437bfbebSnyanmisaka } enc_strt; 323*437bfbebSnyanmisaka 324*437bfbebSnyanmisaka /* 0x00000014 reg5 */ 325*437bfbebSnyanmisaka struct { 326*437bfbebSnyanmisaka RK_U32 safe_clr : 1; 327*437bfbebSnyanmisaka RK_U32 force_clr : 1; 328*437bfbebSnyanmisaka RK_U32 reserved : 30; 329*437bfbebSnyanmisaka } enc_clr; 330*437bfbebSnyanmisaka 331*437bfbebSnyanmisaka /* 0x00000018 reg6 */ 332*437bfbebSnyanmisaka struct { 333*437bfbebSnyanmisaka RK_U32 vswm_lcnt_soft : 14; 334*437bfbebSnyanmisaka RK_U32 vswm_fcnt_soft : 8; 335*437bfbebSnyanmisaka RK_U32 reserved : 2; 336*437bfbebSnyanmisaka RK_U32 dvbm_ack_soft : 1; 337*437bfbebSnyanmisaka RK_U32 dvbm_ack_sel : 1; 338*437bfbebSnyanmisaka RK_U32 dvbm_inf_sel : 1; 339*437bfbebSnyanmisaka RK_U32 reserved1 : 5; 340*437bfbebSnyanmisaka } vs_ldly; 341*437bfbebSnyanmisaka 342*437bfbebSnyanmisaka /* 0x0000001c */ 343*437bfbebSnyanmisaka RK_U32 reserved_7; 344*437bfbebSnyanmisaka 345*437bfbebSnyanmisaka /* 0x00000020 reg8 */ 346*437bfbebSnyanmisaka struct { 347*437bfbebSnyanmisaka RK_U32 enc_done_en : 1; 348*437bfbebSnyanmisaka RK_U32 lkt_node_done_en : 1; 349*437bfbebSnyanmisaka RK_U32 sclr_done_en : 1; 350*437bfbebSnyanmisaka RK_U32 vslc_done_en : 1; 351*437bfbebSnyanmisaka RK_U32 vbsf_oflw_en : 1; 352*437bfbebSnyanmisaka RK_U32 vbuf_lens_en : 1; 353*437bfbebSnyanmisaka RK_U32 enc_err_en : 1; 354*437bfbebSnyanmisaka RK_U32 vsrc_err_en : 1; 355*437bfbebSnyanmisaka RK_U32 wdg_en : 1; 356*437bfbebSnyanmisaka RK_U32 lkt_err_int_en : 1; 357*437bfbebSnyanmisaka RK_U32 lkt_err_stop_en : 1; 358*437bfbebSnyanmisaka RK_U32 lkt_force_stop_en : 1; 359*437bfbebSnyanmisaka RK_U32 jslc_done_en : 1; 360*437bfbebSnyanmisaka RK_U32 jbsf_oflw_en : 1; 361*437bfbebSnyanmisaka RK_U32 jbuf_lens_en : 1; 362*437bfbebSnyanmisaka RK_U32 dvbm_err_en : 1; 363*437bfbebSnyanmisaka RK_U32 reserved : 16; 364*437bfbebSnyanmisaka } int_en; 365*437bfbebSnyanmisaka 366*437bfbebSnyanmisaka /* 0x00000024 reg9 */ 367*437bfbebSnyanmisaka struct { 368*437bfbebSnyanmisaka RK_U32 enc_done_msk : 1; 369*437bfbebSnyanmisaka RK_U32 lkt_node_done_msk : 1; 370*437bfbebSnyanmisaka RK_U32 sclr_done_msk : 1; 371*437bfbebSnyanmisaka RK_U32 vslc_done_msk : 1; 372*437bfbebSnyanmisaka RK_U32 vbsf_oflw_msk : 1; 373*437bfbebSnyanmisaka RK_U32 vbuf_lens_msk : 1; 374*437bfbebSnyanmisaka RK_U32 enc_err_msk : 1; 375*437bfbebSnyanmisaka RK_U32 vsrc_err_msk : 1; 376*437bfbebSnyanmisaka RK_U32 wdg_msk : 1; 377*437bfbebSnyanmisaka RK_U32 lkt_err_int_msk : 1; 378*437bfbebSnyanmisaka RK_U32 lkt_err_stop_msk : 1; 379*437bfbebSnyanmisaka RK_U32 lkt_force_stop_msk : 1; 380*437bfbebSnyanmisaka RK_U32 jslc_done_msk : 1; 381*437bfbebSnyanmisaka RK_U32 jbsf_oflw_msk : 1; 382*437bfbebSnyanmisaka RK_U32 jbuf_lens_msk : 1; 383*437bfbebSnyanmisaka RK_U32 dvbm_err_msk : 1; 384*437bfbebSnyanmisaka RK_U32 reserved : 16; 385*437bfbebSnyanmisaka } int_msk; 386*437bfbebSnyanmisaka 387*437bfbebSnyanmisaka /* 0x00000028 reg10 */ 388*437bfbebSnyanmisaka struct { 389*437bfbebSnyanmisaka RK_U32 enc_done_clr : 1; 390*437bfbebSnyanmisaka RK_U32 lkt_node_done_clr : 1; 391*437bfbebSnyanmisaka RK_U32 sclr_done_clr : 1; 392*437bfbebSnyanmisaka RK_U32 vslc_done_clr : 1; 393*437bfbebSnyanmisaka RK_U32 vbsf_oflw_clr : 1; 394*437bfbebSnyanmisaka RK_U32 vbuf_lens_clr : 1; 395*437bfbebSnyanmisaka RK_U32 enc_err_clr : 1; 396*437bfbebSnyanmisaka RK_U32 vsrc_err_clr : 1; 397*437bfbebSnyanmisaka RK_U32 wdg_clr : 1; 398*437bfbebSnyanmisaka RK_U32 lkt_err_int_clr : 1; 399*437bfbebSnyanmisaka RK_U32 lkt_err_stop_clr : 1; 400*437bfbebSnyanmisaka RK_U32 lkt_force_stop_clr : 1; 401*437bfbebSnyanmisaka RK_U32 jslc_done_clr : 1; 402*437bfbebSnyanmisaka RK_U32 jbsf_oflw_clr : 1; 403*437bfbebSnyanmisaka RK_U32 jbuf_lens_clr : 1; 404*437bfbebSnyanmisaka RK_U32 dvbm_err_clr : 1; 405*437bfbebSnyanmisaka RK_U32 reserved : 16; 406*437bfbebSnyanmisaka } int_clr; 407*437bfbebSnyanmisaka 408*437bfbebSnyanmisaka /* 0x0000002c reg11 */ 409*437bfbebSnyanmisaka struct { 410*437bfbebSnyanmisaka RK_U32 enc_done_sta : 1; 411*437bfbebSnyanmisaka RK_U32 lkt_node_done_sta : 1; 412*437bfbebSnyanmisaka RK_U32 sclr_done_sta : 1; 413*437bfbebSnyanmisaka RK_U32 vslc_done_sta : 1; 414*437bfbebSnyanmisaka RK_U32 vbsf_oflw_sta : 1; 415*437bfbebSnyanmisaka RK_U32 vbuf_lens_sta : 1; 416*437bfbebSnyanmisaka RK_U32 enc_err_sta : 1; 417*437bfbebSnyanmisaka RK_U32 vsrc_err_sta : 1; 418*437bfbebSnyanmisaka RK_U32 wdg_sta : 1; 419*437bfbebSnyanmisaka RK_U32 lkt_err_int_sta : 1; 420*437bfbebSnyanmisaka RK_U32 lkt_err_stop_sta : 1; 421*437bfbebSnyanmisaka RK_U32 lkt_force_stop_sta : 1; 422*437bfbebSnyanmisaka RK_U32 jslc_done_sta : 1; 423*437bfbebSnyanmisaka RK_U32 jbsf_oflw_sta : 1; 424*437bfbebSnyanmisaka RK_U32 jbuf_lens_sta : 1; 425*437bfbebSnyanmisaka RK_U32 dvbm_err_sta : 1; 426*437bfbebSnyanmisaka RK_U32 reserved : 16; 427*437bfbebSnyanmisaka } int_sta; 428*437bfbebSnyanmisaka 429*437bfbebSnyanmisaka /* 0x00000030 reg12 */ 430*437bfbebSnyanmisaka struct { 431*437bfbebSnyanmisaka RK_U32 jpeg_bus_edin : 4; 432*437bfbebSnyanmisaka RK_U32 src_bus_edin : 4; 433*437bfbebSnyanmisaka RK_U32 meiw_bus_edin : 4; 434*437bfbebSnyanmisaka RK_U32 bsw_bus_edin : 4; 435*437bfbebSnyanmisaka RK_U32 lktr_bus_edin : 4; 436*437bfbebSnyanmisaka RK_U32 roir_bus_edin : 4; 437*437bfbebSnyanmisaka RK_U32 lktw_bus_edin : 4; 438*437bfbebSnyanmisaka RK_U32 rec_nfbc_bus_edin : 4; 439*437bfbebSnyanmisaka } dtrns_map; 440*437bfbebSnyanmisaka 441*437bfbebSnyanmisaka /* 0x00000034 reg13 */ 442*437bfbebSnyanmisaka struct { 443*437bfbebSnyanmisaka RK_U32 jsrc_bus_edin : 4; 444*437bfbebSnyanmisaka RK_U32 reserved : 12; 445*437bfbebSnyanmisaka RK_U32 axi_brsp_cke : 10; 446*437bfbebSnyanmisaka RK_U32 reserved1 : 6; 447*437bfbebSnyanmisaka } dtrns_cfg; 448*437bfbebSnyanmisaka 449*437bfbebSnyanmisaka /* 0x00000038 reg14 */ 450*437bfbebSnyanmisaka struct { 451*437bfbebSnyanmisaka RK_U32 vs_load_thd : 24; 452*437bfbebSnyanmisaka RK_U32 reserved : 8; 453*437bfbebSnyanmisaka } enc_wdg; 454*437bfbebSnyanmisaka 455*437bfbebSnyanmisaka /* 0x0000003c reg15 */ 456*437bfbebSnyanmisaka struct { 457*437bfbebSnyanmisaka RK_U32 hurry_en : 1; 458*437bfbebSnyanmisaka RK_U32 hurry_low : 3; 459*437bfbebSnyanmisaka RK_U32 hurry_mid : 3; 460*437bfbebSnyanmisaka RK_U32 hurry_high : 3; 461*437bfbebSnyanmisaka RK_U32 reserved : 6; 462*437bfbebSnyanmisaka RK_U32 qos_period : 16; 463*437bfbebSnyanmisaka } qos_cfg; 464*437bfbebSnyanmisaka 465*437bfbebSnyanmisaka /* 0x00000040 reg16 */ 466*437bfbebSnyanmisaka struct { 467*437bfbebSnyanmisaka RK_U32 qos_ar_dprt : 4; 468*437bfbebSnyanmisaka RK_U32 qos_ar_lprt : 4; 469*437bfbebSnyanmisaka RK_U32 qos_ar_mprt : 4; 470*437bfbebSnyanmisaka RK_U32 qos_ar_hprt : 4; 471*437bfbebSnyanmisaka RK_U32 qos_aw_dprt : 4; 472*437bfbebSnyanmisaka RK_U32 qos_aw_lprt : 4; 473*437bfbebSnyanmisaka RK_U32 qos_aw_mprt : 4; 474*437bfbebSnyanmisaka RK_U32 qos_aw_hprt : 4; 475*437bfbebSnyanmisaka } qos_prty; 476*437bfbebSnyanmisaka 477*437bfbebSnyanmisaka /* 0x00000044 reg17 */ 478*437bfbebSnyanmisaka RK_U32 hurry_thd_low; 479*437bfbebSnyanmisaka 480*437bfbebSnyanmisaka /* 0x00000048 reg18 */ 481*437bfbebSnyanmisaka RK_U32 hurry_thd_mid; 482*437bfbebSnyanmisaka 483*437bfbebSnyanmisaka /* 0x0000004c reg19 */ 484*437bfbebSnyanmisaka RK_U32 hurry_thd_high; 485*437bfbebSnyanmisaka 486*437bfbebSnyanmisaka /* 0x00000050 reg20 */ 487*437bfbebSnyanmisaka RK_U32 reserved_20; 488*437bfbebSnyanmisaka 489*437bfbebSnyanmisaka /* 0x00000054 reg21 */ 490*437bfbebSnyanmisaka struct { 491*437bfbebSnyanmisaka RK_U32 cke : 1; 492*437bfbebSnyanmisaka RK_U32 resetn_hw_en : 1; 493*437bfbebSnyanmisaka RK_U32 rfpr_err_e : 1; 494*437bfbebSnyanmisaka RK_U32 sram_ckg_en : 1; 495*437bfbebSnyanmisaka RK_U32 link_err_stop : 1; 496*437bfbebSnyanmisaka RK_U32 reserved : 27; 497*437bfbebSnyanmisaka } opt_strg; 498*437bfbebSnyanmisaka 499*437bfbebSnyanmisaka /* 0x00000058 reg22 */ 500*437bfbebSnyanmisaka union { 501*437bfbebSnyanmisaka struct { 502*437bfbebSnyanmisaka RK_U32 tq8_ckg : 1; 503*437bfbebSnyanmisaka RK_U32 tq4_ckg : 1; 504*437bfbebSnyanmisaka RK_U32 bits_ckg_8x8 : 1; 505*437bfbebSnyanmisaka RK_U32 bits_ckg_4x4_1 : 1; 506*437bfbebSnyanmisaka RK_U32 bits_ckg_4x4_0 : 1; 507*437bfbebSnyanmisaka RK_U32 inter_mode_ckg : 1; 508*437bfbebSnyanmisaka RK_U32 inter_ctrl_ckg : 1; 509*437bfbebSnyanmisaka RK_U32 inter_pred_ckg : 1; 510*437bfbebSnyanmisaka RK_U32 intra8_ckg : 1; 511*437bfbebSnyanmisaka RK_U32 intra4_ckg : 1; 512*437bfbebSnyanmisaka RK_U32 reserved : 22; 513*437bfbebSnyanmisaka } rdo_ckg_h264; 514*437bfbebSnyanmisaka 515*437bfbebSnyanmisaka struct { 516*437bfbebSnyanmisaka RK_U32 recon32_ckg : 1; 517*437bfbebSnyanmisaka RK_U32 iqit32_ckg : 1; 518*437bfbebSnyanmisaka RK_U32 q32_ckg : 1; 519*437bfbebSnyanmisaka RK_U32 t32_ckg : 1; 520*437bfbebSnyanmisaka RK_U32 cabac32_ckg : 1; 521*437bfbebSnyanmisaka RK_U32 recon16_ckg : 1; 522*437bfbebSnyanmisaka RK_U32 iqit16_ckg : 1; 523*437bfbebSnyanmisaka RK_U32 q16_ckg : 1; 524*437bfbebSnyanmisaka RK_U32 t16_ckg : 1; 525*437bfbebSnyanmisaka RK_U32 cabac16_ckg : 1; 526*437bfbebSnyanmisaka RK_U32 recon8_ckg : 1; 527*437bfbebSnyanmisaka RK_U32 iqit8_ckg : 1; 528*437bfbebSnyanmisaka RK_U32 q8_ckg : 1; 529*437bfbebSnyanmisaka RK_U32 t8_ckg : 1; 530*437bfbebSnyanmisaka RK_U32 cabac8_ckg : 1; 531*437bfbebSnyanmisaka RK_U32 recon4_ckg : 1; 532*437bfbebSnyanmisaka RK_U32 iqit4_ckg : 1; 533*437bfbebSnyanmisaka RK_U32 q4_ckg : 1; 534*437bfbebSnyanmisaka RK_U32 t4_ckg : 1; 535*437bfbebSnyanmisaka RK_U32 cabac4_ckg : 1; 536*437bfbebSnyanmisaka RK_U32 intra32_ckg : 1; 537*437bfbebSnyanmisaka RK_U32 intra16_ckg : 1; 538*437bfbebSnyanmisaka RK_U32 intra8_ckg : 1; 539*437bfbebSnyanmisaka RK_U32 intra4_ckg : 1; 540*437bfbebSnyanmisaka RK_U32 inter_pred_ckg : 1; 541*437bfbebSnyanmisaka RK_U32 reserved : 7; 542*437bfbebSnyanmisaka } rdo_ckg_hevc; 543*437bfbebSnyanmisaka } reg0022; 544*437bfbebSnyanmisaka 545*437bfbebSnyanmisaka /* 0x0000005c reg23 */ 546*437bfbebSnyanmisaka struct { 547*437bfbebSnyanmisaka RK_U32 core_id : 2; 548*437bfbebSnyanmisaka RK_U32 reserved : 30; 549*437bfbebSnyanmisaka } core_id; 550*437bfbebSnyanmisaka 551*437bfbebSnyanmisaka /* 0x00000060 reg24 */ 552*437bfbebSnyanmisaka struct { 553*437bfbebSnyanmisaka RK_U32 dvbm_en : 1; 554*437bfbebSnyanmisaka RK_U32 src_badr_sel : 1; 555*437bfbebSnyanmisaka RK_U32 ptr_gbck : 1; 556*437bfbebSnyanmisaka RK_U32 dvbm_vpu_fskp : 1; 557*437bfbebSnyanmisaka RK_U32 dvbm_isp_cnct : 1; 558*437bfbebSnyanmisaka RK_U32 dvbm_vepu_cnct : 1; 559*437bfbebSnyanmisaka RK_U32 vepu_expt_type : 2; 560*437bfbebSnyanmisaka RK_U32 vinf_dly_cycle : 8; 561*437bfbebSnyanmisaka RK_U32 ybuf_full_mgn : 8; 562*437bfbebSnyanmisaka RK_U32 ybuf_oflw_mgn : 8; 563*437bfbebSnyanmisaka } dvbm_cfg; 564*437bfbebSnyanmisaka 565*437bfbebSnyanmisaka /* 0x64 */ 566*437bfbebSnyanmisaka RK_U32 reserved_25; 567*437bfbebSnyanmisaka 568*437bfbebSnyanmisaka /* 0x00000068 reg26 */ 569*437bfbebSnyanmisaka struct { 570*437bfbebSnyanmisaka RK_U32 reserved : 4; 571*437bfbebSnyanmisaka RK_U32 src_y_adr_str : 28; 572*437bfbebSnyanmisaka } dvbm_y_sadr; 573*437bfbebSnyanmisaka 574*437bfbebSnyanmisaka /* 0x0000006c reg27 */ 575*437bfbebSnyanmisaka struct { 576*437bfbebSnyanmisaka RK_U32 reserved : 4; 577*437bfbebSnyanmisaka RK_U32 src_c_adr_str : 28; 578*437bfbebSnyanmisaka } dvbm_c_sadr; 579*437bfbebSnyanmisaka 580*437bfbebSnyanmisaka /* 0x00000070 reg28 */ 581*437bfbebSnyanmisaka struct { 582*437bfbebSnyanmisaka RK_U32 reserved : 4; 583*437bfbebSnyanmisaka RK_U32 dvbm_y_top : 28; 584*437bfbebSnyanmisaka } dvbm_y_top; 585*437bfbebSnyanmisaka 586*437bfbebSnyanmisaka /* 0x00000074 reg29 */ 587*437bfbebSnyanmisaka struct { 588*437bfbebSnyanmisaka RK_U32 reserved : 4; 589*437bfbebSnyanmisaka RK_U32 dvbm_c_top : 28; 590*437bfbebSnyanmisaka } dvbm_c_top; 591*437bfbebSnyanmisaka 592*437bfbebSnyanmisaka /* 0x00000078 reg30 */ 593*437bfbebSnyanmisaka struct { 594*437bfbebSnyanmisaka RK_U32 reserved : 4; 595*437bfbebSnyanmisaka RK_U32 dvbm_y_botm : 28; 596*437bfbebSnyanmisaka } dvbm_y_botm; 597*437bfbebSnyanmisaka 598*437bfbebSnyanmisaka /* 0x0000007c reg31 */ 599*437bfbebSnyanmisaka struct { 600*437bfbebSnyanmisaka RK_U32 reserved : 4; 601*437bfbebSnyanmisaka RK_U32 dvbm_c_botm : 28; 602*437bfbebSnyanmisaka } dvbm_c_botm; 603*437bfbebSnyanmisaka 604*437bfbebSnyanmisaka /* 0x00000080 reg32 */ 605*437bfbebSnyanmisaka struct { 606*437bfbebSnyanmisaka RK_U32 dvbm_y_line_strd0 : 17; 607*437bfbebSnyanmisaka RK_U32 reserved : 15; 608*437bfbebSnyanmisaka } dvbm_y_lstd0; 609*437bfbebSnyanmisaka 610*437bfbebSnyanmisaka /* 0x84 */ 611*437bfbebSnyanmisaka RK_U32 reserved_33; 612*437bfbebSnyanmisaka 613*437bfbebSnyanmisaka /* 0x00000088 reg34 */ 614*437bfbebSnyanmisaka struct { 615*437bfbebSnyanmisaka RK_U32 reserved : 4; 616*437bfbebSnyanmisaka RK_U32 dvbm_y_frm_strd0 : 28; 617*437bfbebSnyanmisaka } dvbm_y_fstd0; 618*437bfbebSnyanmisaka 619*437bfbebSnyanmisaka /* 0x0000008c reg35 */ 620*437bfbebSnyanmisaka struct { 621*437bfbebSnyanmisaka RK_U32 reserved : 4; 622*437bfbebSnyanmisaka RK_U32 dvbm_c_frm_strd0 : 28; 623*437bfbebSnyanmisaka } dvbm_c_fstd0; 624*437bfbebSnyanmisaka 625*437bfbebSnyanmisaka /* 0x00000090 reg36 */ 626*437bfbebSnyanmisaka struct { 627*437bfbebSnyanmisaka RK_U32 dvbm_y_line_strd1 : 17; 628*437bfbebSnyanmisaka RK_U32 reserved : 15; 629*437bfbebSnyanmisaka } dvbm_y_lstd1; 630*437bfbebSnyanmisaka 631*437bfbebSnyanmisaka /* 0x94 */ 632*437bfbebSnyanmisaka RK_U32 reserved_37; 633*437bfbebSnyanmisaka 634*437bfbebSnyanmisaka /* 0x00000098 reg38 */ 635*437bfbebSnyanmisaka struct { 636*437bfbebSnyanmisaka RK_U32 reserved : 4; 637*437bfbebSnyanmisaka RK_U32 dvbm_y_frm_strd1 : 28; 638*437bfbebSnyanmisaka } dvbm_y_fstd1; 639*437bfbebSnyanmisaka 640*437bfbebSnyanmisaka /* 0x0000009c reg39 */ 641*437bfbebSnyanmisaka struct { 642*437bfbebSnyanmisaka RK_U32 reserved : 4; 643*437bfbebSnyanmisaka RK_U32 dvbm_c_frm_strd1 : 28; 644*437bfbebSnyanmisaka } dvbm_c_fstd1; 645*437bfbebSnyanmisaka 646*437bfbebSnyanmisaka /* 0xa0 - 0xfc */ 647*437bfbebSnyanmisaka RK_U32 reserved40_63[24]; 648*437bfbebSnyanmisaka 649*437bfbebSnyanmisaka /* 0x00000100 reg64 */ 650*437bfbebSnyanmisaka struct { 651*437bfbebSnyanmisaka RK_U32 node_core_id : 2; 652*437bfbebSnyanmisaka RK_U32 node_int : 1; 653*437bfbebSnyanmisaka RK_U32 reserved : 1; 654*437bfbebSnyanmisaka RK_U32 task_id : 12; 655*437bfbebSnyanmisaka RK_U32 bsw_cntd : 1; 656*437bfbebSnyanmisaka RK_U32 bsw_cntd_jpeg : 1; 657*437bfbebSnyanmisaka RK_U32 reserved1 : 14; 658*437bfbebSnyanmisaka } lkt_node_cfg; 659*437bfbebSnyanmisaka 660*437bfbebSnyanmisaka /* 0x00000104 reg65 */ 661*437bfbebSnyanmisaka struct { 662*437bfbebSnyanmisaka RK_U32 pcfg_rd_en : 1; 663*437bfbebSnyanmisaka RK_U32 reserved : 3; 664*437bfbebSnyanmisaka RK_U32 lkt_addr_pcfg : 28; 665*437bfbebSnyanmisaka } lkt_addr_pcfg; 666*437bfbebSnyanmisaka 667*437bfbebSnyanmisaka /* 0x00000108 reg66 */ 668*437bfbebSnyanmisaka struct { 669*437bfbebSnyanmisaka RK_U32 rc_cfg_rd_en : 1; 670*437bfbebSnyanmisaka RK_U32 reserved : 3; 671*437bfbebSnyanmisaka RK_U32 lkt_addr_rc_cfg : 28; 672*437bfbebSnyanmisaka } lkt_addr_rc_cfg; 673*437bfbebSnyanmisaka 674*437bfbebSnyanmisaka /* 0x0000010c reg67 */ 675*437bfbebSnyanmisaka struct { 676*437bfbebSnyanmisaka RK_U32 par_cfg_rd_en : 1; 677*437bfbebSnyanmisaka RK_U32 reserved : 3; 678*437bfbebSnyanmisaka RK_U32 lkt_addr_par_cfg : 28; 679*437bfbebSnyanmisaka } lkt_addr_par_cfg; 680*437bfbebSnyanmisaka 681*437bfbebSnyanmisaka /* 0x00000110 reg68 */ 682*437bfbebSnyanmisaka struct { 683*437bfbebSnyanmisaka RK_U32 sqi_cfg_rd_en : 1; 684*437bfbebSnyanmisaka RK_U32 reserved : 3; 685*437bfbebSnyanmisaka RK_U32 lkt_addr_sqi_cfg : 28; 686*437bfbebSnyanmisaka } lkt_addr_sqi_cfg; 687*437bfbebSnyanmisaka 688*437bfbebSnyanmisaka /* 0x00000114 reg69 */ 689*437bfbebSnyanmisaka struct { 690*437bfbebSnyanmisaka RK_U32 scal_cfg_rd_en : 1; 691*437bfbebSnyanmisaka RK_U32 reserved : 3; 692*437bfbebSnyanmisaka RK_U32 lkt_addr_scal_cfg : 28; 693*437bfbebSnyanmisaka } lkt_addr_scal_cfg; 694*437bfbebSnyanmisaka 695*437bfbebSnyanmisaka /* 0x00000118 reg70 */ 696*437bfbebSnyanmisaka struct { 697*437bfbebSnyanmisaka RK_U32 pp_cfg_rd_en : 1; 698*437bfbebSnyanmisaka RK_U32 reserved : 3; 699*437bfbebSnyanmisaka RK_U32 lkt_addr_pp_cfg : 28; 700*437bfbebSnyanmisaka } lkt_addr_osd_cfg; 701*437bfbebSnyanmisaka 702*437bfbebSnyanmisaka /* 0x0000011c reg71 */ 703*437bfbebSnyanmisaka struct { 704*437bfbebSnyanmisaka RK_U32 st_rd_en : 1; 705*437bfbebSnyanmisaka RK_U32 st_wr_en : 1; 706*437bfbebSnyanmisaka RK_U32 reserved : 2; 707*437bfbebSnyanmisaka RK_U32 lkt_addr_st : 28; 708*437bfbebSnyanmisaka } lkt_addr_st; 709*437bfbebSnyanmisaka 710*437bfbebSnyanmisaka /* 0x00000120 reg72 */ 711*437bfbebSnyanmisaka struct { 712*437bfbebSnyanmisaka RK_U32 nxt_node_vld : 1; 713*437bfbebSnyanmisaka RK_U32 reserved : 3; 714*437bfbebSnyanmisaka RK_U32 lkt_addr_nxt : 28; 715*437bfbebSnyanmisaka } lkt_addr_nxt; 716*437bfbebSnyanmisaka } Vepu511ControlCfg; 717*437bfbebSnyanmisaka 718*437bfbebSnyanmisaka /* 0x00000270 reg156 - 0x0000039c reg231 */ 719*437bfbebSnyanmisaka typedef struct Vepu511FrmCommon_t { 720*437bfbebSnyanmisaka /* 0x00000270 reg156 - 0x0000027c reg159 */ 721*437bfbebSnyanmisaka vepu511_online online_addr; 722*437bfbebSnyanmisaka 723*437bfbebSnyanmisaka /* 0x00000280 reg160 */ 724*437bfbebSnyanmisaka RK_U32 adr_src0; 725*437bfbebSnyanmisaka 726*437bfbebSnyanmisaka /* 0x00000284 reg161 */ 727*437bfbebSnyanmisaka RK_U32 adr_src1; 728*437bfbebSnyanmisaka 729*437bfbebSnyanmisaka /* 0x00000288 reg162 */ 730*437bfbebSnyanmisaka RK_U32 adr_src2; 731*437bfbebSnyanmisaka 732*437bfbebSnyanmisaka /* 0x0000028c reg163 */ 733*437bfbebSnyanmisaka RK_U32 rfpw_h_addr; 734*437bfbebSnyanmisaka 735*437bfbebSnyanmisaka /* 0x00000290 reg164 */ 736*437bfbebSnyanmisaka RK_U32 rfpw_b_addr; 737*437bfbebSnyanmisaka 738*437bfbebSnyanmisaka /* 0x00000294 reg165 */ 739*437bfbebSnyanmisaka RK_U32 rfpr_h_addr; 740*437bfbebSnyanmisaka 741*437bfbebSnyanmisaka /* 0x00000298 reg166 */ 742*437bfbebSnyanmisaka RK_U32 rfpr_b_addr; 743*437bfbebSnyanmisaka 744*437bfbebSnyanmisaka /* 0x0000029c reg167 */ 745*437bfbebSnyanmisaka RK_U32 colmvw_addr; 746*437bfbebSnyanmisaka 747*437bfbebSnyanmisaka /* 0x000002a0 reg168 */ 748*437bfbebSnyanmisaka RK_U32 colmvr_addr; 749*437bfbebSnyanmisaka 750*437bfbebSnyanmisaka /* 0x000002a4 reg169 */ 751*437bfbebSnyanmisaka RK_U32 dspw_addr; 752*437bfbebSnyanmisaka 753*437bfbebSnyanmisaka /* 0x000002a8 reg170 */ 754*437bfbebSnyanmisaka RK_U32 dspr_addr; 755*437bfbebSnyanmisaka 756*437bfbebSnyanmisaka /* 0x000002ac reg171 */ 757*437bfbebSnyanmisaka RK_U32 meiw_addr; 758*437bfbebSnyanmisaka 759*437bfbebSnyanmisaka /* 0x000002b0 reg172 */ 760*437bfbebSnyanmisaka RK_U32 bsbt_addr; 761*437bfbebSnyanmisaka 762*437bfbebSnyanmisaka /* 0x000002b4 reg173 */ 763*437bfbebSnyanmisaka RK_U32 bsbb_addr; 764*437bfbebSnyanmisaka 765*437bfbebSnyanmisaka /* 0x000002b8 reg174 */ 766*437bfbebSnyanmisaka RK_U32 adr_bsbs; 767*437bfbebSnyanmisaka 768*437bfbebSnyanmisaka /* 0x000002bc reg175 */ 769*437bfbebSnyanmisaka RK_U32 bsbr_addr; 770*437bfbebSnyanmisaka 771*437bfbebSnyanmisaka /* 0x000002c0 reg176 */ 772*437bfbebSnyanmisaka RK_U32 lpfw_addr; 773*437bfbebSnyanmisaka 774*437bfbebSnyanmisaka /* 0x000002c4 reg177 */ 775*437bfbebSnyanmisaka RK_U32 lpfr_addr; 776*437bfbebSnyanmisaka 777*437bfbebSnyanmisaka /* 0x000002c8 reg178 */ 778*437bfbebSnyanmisaka RK_U32 ebuft_addr; 779*437bfbebSnyanmisaka 780*437bfbebSnyanmisaka /* 0x000002cc reg179 */ 781*437bfbebSnyanmisaka RK_U32 ebufb_addr; 782*437bfbebSnyanmisaka 783*437bfbebSnyanmisaka /* 0x000002d0 reg180 */ 784*437bfbebSnyanmisaka RK_U32 rfpt_h_addr; 785*437bfbebSnyanmisaka 786*437bfbebSnyanmisaka /* 0x000002d4 reg181 */ 787*437bfbebSnyanmisaka RK_U32 rfpb_h_addr; 788*437bfbebSnyanmisaka 789*437bfbebSnyanmisaka /* 0x000002d8 reg182 */ 790*437bfbebSnyanmisaka RK_U32 rfpt_b_addr; 791*437bfbebSnyanmisaka 792*437bfbebSnyanmisaka /* 0x000002dc reg183 */ 793*437bfbebSnyanmisaka RK_U32 adr_rfpb_b; 794*437bfbebSnyanmisaka 795*437bfbebSnyanmisaka /* 0x000002e0 reg184 */ 796*437bfbebSnyanmisaka RK_U32 adr_smear_rd; 797*437bfbebSnyanmisaka 798*437bfbebSnyanmisaka /* 0x000002e4 reg185 */ 799*437bfbebSnyanmisaka RK_U32 adr_smear_wr; 800*437bfbebSnyanmisaka 801*437bfbebSnyanmisaka /* 0x000002e8 reg186 */ 802*437bfbebSnyanmisaka RK_U32 adr_roir; 803*437bfbebSnyanmisaka 804*437bfbebSnyanmisaka /* 0x000002ec reg187 */ 805*437bfbebSnyanmisaka RK_U32 eslf_badr; 806*437bfbebSnyanmisaka 807*437bfbebSnyanmisaka /* 0x000002f0 reg188 */ 808*437bfbebSnyanmisaka RK_U32 rfp1r_h_addr; 809*437bfbebSnyanmisaka 810*437bfbebSnyanmisaka /* 0x000002f4 reg189 */ 811*437bfbebSnyanmisaka RK_U32 rfp1r_b_addr; 812*437bfbebSnyanmisaka 813*437bfbebSnyanmisaka /* 0x000002f8 reg190 */ 814*437bfbebSnyanmisaka RK_U32 dsp1r_addr; 815*437bfbebSnyanmisaka 816*437bfbebSnyanmisaka /* 0x2fc */ 817*437bfbebSnyanmisaka RK_U32 reserved_191; 818*437bfbebSnyanmisaka 819*437bfbebSnyanmisaka /* 0x00000300 reg192 */ 820*437bfbebSnyanmisaka struct { 821*437bfbebSnyanmisaka RK_U32 enc_stnd : 2; 822*437bfbebSnyanmisaka RK_U32 cur_frm_ref : 1; 823*437bfbebSnyanmisaka RK_U32 mei_stor : 1; 824*437bfbebSnyanmisaka RK_U32 bs_scp : 1; 825*437bfbebSnyanmisaka RK_U32 reserved : 3; 826*437bfbebSnyanmisaka RK_U32 pic_qp : 6; 827*437bfbebSnyanmisaka RK_U32 num_pic_tot_cur_hevc : 5; 828*437bfbebSnyanmisaka RK_U32 log2_ctu_num_hevc : 5; 829*437bfbebSnyanmisaka RK_U32 rfpr_compress_mode : 1; 830*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 831*437bfbebSnyanmisaka RK_U32 eslf_out_e_jpeg : 1; 832*437bfbebSnyanmisaka RK_U32 jpeg_slen_fifo : 1; 833*437bfbebSnyanmisaka RK_U32 eslf_out_e : 1; 834*437bfbebSnyanmisaka RK_U32 slen_fifo : 1; 835*437bfbebSnyanmisaka RK_U32 rec_fbc_dis : 1; 836*437bfbebSnyanmisaka } enc_pic; 837*437bfbebSnyanmisaka 838*437bfbebSnyanmisaka /* 0x00000304 reg193 */ 839*437bfbebSnyanmisaka struct { 840*437bfbebSnyanmisaka RK_U32 dchs_txid : 2; 841*437bfbebSnyanmisaka RK_U32 dchs_rxid : 2; 842*437bfbebSnyanmisaka RK_U32 dchs_txe : 1; 843*437bfbebSnyanmisaka RK_U32 dchs_rxe : 1; 844*437bfbebSnyanmisaka RK_U32 reserved : 2; 845*437bfbebSnyanmisaka RK_U32 dchs_dly : 8; 846*437bfbebSnyanmisaka RK_U32 dchs_ofst : 10; 847*437bfbebSnyanmisaka RK_U32 reserved1 : 6; 848*437bfbebSnyanmisaka } dual_core; 849*437bfbebSnyanmisaka 850*437bfbebSnyanmisaka /* 0x00000308 reg194 */ 851*437bfbebSnyanmisaka struct { 852*437bfbebSnyanmisaka RK_U32 frame_id : 8; 853*437bfbebSnyanmisaka RK_U32 frm_id_match : 1; 854*437bfbebSnyanmisaka RK_U32 reserved : 3; 855*437bfbebSnyanmisaka RK_U32 source_id : 1; 856*437bfbebSnyanmisaka RK_U32 src_id_match : 1; 857*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 858*437bfbebSnyanmisaka RK_U32 ch_id : 2; 859*437bfbebSnyanmisaka RK_U32 vrsp_rtn_en : 1; 860*437bfbebSnyanmisaka RK_U32 vinf_req_en : 1; 861*437bfbebSnyanmisaka RK_U32 reserved2 : 12; 862*437bfbebSnyanmisaka } enc_id; 863*437bfbebSnyanmisaka 864*437bfbebSnyanmisaka /* 0x0000030c reg195 */ 865*437bfbebSnyanmisaka RK_U32 bsp_size; 866*437bfbebSnyanmisaka 867*437bfbebSnyanmisaka /* 0x00000310 reg196 */ 868*437bfbebSnyanmisaka struct { 869*437bfbebSnyanmisaka RK_U32 pic_wd8_m1 : 11; 870*437bfbebSnyanmisaka RK_U32 reserved : 5; 871*437bfbebSnyanmisaka RK_U32 pic_hd8_m1 : 11; 872*437bfbebSnyanmisaka RK_U32 reserved1 : 5; 873*437bfbebSnyanmisaka } enc_rsl; 874*437bfbebSnyanmisaka 875*437bfbebSnyanmisaka /* 0x00000314 reg197 */ 876*437bfbebSnyanmisaka struct { 877*437bfbebSnyanmisaka RK_U32 pic_wfill : 6; 878*437bfbebSnyanmisaka RK_U32 reserved : 10; 879*437bfbebSnyanmisaka RK_U32 pic_hfill : 6; 880*437bfbebSnyanmisaka RK_U32 reserved1 : 10; 881*437bfbebSnyanmisaka } src_fill; 882*437bfbebSnyanmisaka 883*437bfbebSnyanmisaka /* 0x00000318 reg198 */ 884*437bfbebSnyanmisaka struct { 885*437bfbebSnyanmisaka RK_U32 alpha_swap : 1; 886*437bfbebSnyanmisaka RK_U32 rbuv_swap : 1; 887*437bfbebSnyanmisaka RK_U32 src_cfmt : 4; 888*437bfbebSnyanmisaka RK_U32 src_rcne : 1; 889*437bfbebSnyanmisaka RK_U32 out_fmt : 1; 890*437bfbebSnyanmisaka RK_U32 src_range_trns_en : 1; 891*437bfbebSnyanmisaka RK_U32 src_range_trns_sel : 1; 892*437bfbebSnyanmisaka RK_U32 chroma_ds_mode : 1; 893*437bfbebSnyanmisaka RK_U32 reserved : 21; 894*437bfbebSnyanmisaka } src_fmt; 895*437bfbebSnyanmisaka 896*437bfbebSnyanmisaka /* 0x0000031c reg199 */ 897*437bfbebSnyanmisaka struct { 898*437bfbebSnyanmisaka RK_U32 csc_wgt_b2y : 9; 899*437bfbebSnyanmisaka RK_U32 csc_wgt_g2y : 9; 900*437bfbebSnyanmisaka RK_U32 csc_wgt_r2y : 9; 901*437bfbebSnyanmisaka RK_U32 reserved : 5; 902*437bfbebSnyanmisaka } src_udfy; 903*437bfbebSnyanmisaka 904*437bfbebSnyanmisaka /* 0x00000320 reg200 */ 905*437bfbebSnyanmisaka struct { 906*437bfbebSnyanmisaka RK_U32 csc_wgt_b2u : 9; 907*437bfbebSnyanmisaka RK_U32 csc_wgt_g2u : 9; 908*437bfbebSnyanmisaka RK_U32 csc_wgt_r2u : 9; 909*437bfbebSnyanmisaka RK_U32 reserved : 5; 910*437bfbebSnyanmisaka } src_udfu; 911*437bfbebSnyanmisaka 912*437bfbebSnyanmisaka /* 0x00000324 reg201 */ 913*437bfbebSnyanmisaka struct { 914*437bfbebSnyanmisaka RK_U32 csc_wgt_b2v : 9; 915*437bfbebSnyanmisaka RK_U32 csc_wgt_g2v : 9; 916*437bfbebSnyanmisaka RK_U32 csc_wgt_r2v : 9; 917*437bfbebSnyanmisaka RK_U32 reserved : 5; 918*437bfbebSnyanmisaka } src_udfv; 919*437bfbebSnyanmisaka 920*437bfbebSnyanmisaka /* 0x00000328 reg202 */ 921*437bfbebSnyanmisaka struct { 922*437bfbebSnyanmisaka RK_U32 csc_ofst_v : 8; 923*437bfbebSnyanmisaka RK_U32 csc_ofst_u : 8; 924*437bfbebSnyanmisaka RK_U32 csc_ofst_y : 5; 925*437bfbebSnyanmisaka RK_U32 reserved : 11; 926*437bfbebSnyanmisaka } src_udfo; 927*437bfbebSnyanmisaka 928*437bfbebSnyanmisaka /* 0x0000032c reg203 */ 929*437bfbebSnyanmisaka struct { 930*437bfbebSnyanmisaka RK_U32 cr_force_value : 8; 931*437bfbebSnyanmisaka RK_U32 cb_force_value : 8; 932*437bfbebSnyanmisaka RK_U32 chroma_force_en : 1; 933*437bfbebSnyanmisaka RK_U32 reserved : 9; 934*437bfbebSnyanmisaka RK_U32 src_mirr : 1; 935*437bfbebSnyanmisaka RK_U32 src_rot : 2; 936*437bfbebSnyanmisaka RK_U32 tile4x4_en : 1; 937*437bfbebSnyanmisaka RK_U32 rkfbcd_en : 1; 938*437bfbebSnyanmisaka RK_U32 reserved1 : 1; 939*437bfbebSnyanmisaka } src_proc; 940*437bfbebSnyanmisaka 941*437bfbebSnyanmisaka /* 0x00000330 reg204 */ 942*437bfbebSnyanmisaka struct { 943*437bfbebSnyanmisaka RK_U32 pic_ofst_x : 14; 944*437bfbebSnyanmisaka RK_U32 reserved : 2; 945*437bfbebSnyanmisaka RK_U32 pic_ofst_y : 14; 946*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 947*437bfbebSnyanmisaka } pic_ofst; 948*437bfbebSnyanmisaka 949*437bfbebSnyanmisaka /* 0x00000334 reg205 */ 950*437bfbebSnyanmisaka struct { 951*437bfbebSnyanmisaka RK_U32 src_strd0 : 21; 952*437bfbebSnyanmisaka RK_U32 reserved : 11; 953*437bfbebSnyanmisaka } src_strd0; 954*437bfbebSnyanmisaka 955*437bfbebSnyanmisaka /* 0x00000338 reg206 */ 956*437bfbebSnyanmisaka struct { 957*437bfbebSnyanmisaka RK_U32 src_strd1 : 16; 958*437bfbebSnyanmisaka RK_U32 reserved : 16; 959*437bfbebSnyanmisaka } src_strd1; 960*437bfbebSnyanmisaka 961*437bfbebSnyanmisaka /* 0x0000033c reg207 */ 962*437bfbebSnyanmisaka struct { 963*437bfbebSnyanmisaka RK_U32 pp_corner_filter_strength : 2; 964*437bfbebSnyanmisaka RK_U32 reserved : 2; 965*437bfbebSnyanmisaka RK_U32 pp_edge_filter_strength : 2; 966*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 967*437bfbebSnyanmisaka RK_U32 pp_internal_filter_strength : 2; 968*437bfbebSnyanmisaka RK_U32 reserved2 : 22; 969*437bfbebSnyanmisaka } src_flt_cfg; 970*437bfbebSnyanmisaka 971*437bfbebSnyanmisaka /* 0x340 - 0x34c */ 972*437bfbebSnyanmisaka RK_U32 reserved208_211[4]; 973*437bfbebSnyanmisaka 974*437bfbebSnyanmisaka /* 0x00000350 reg212 */ 975*437bfbebSnyanmisaka struct { 976*437bfbebSnyanmisaka RK_U32 rc_en : 1; 977*437bfbebSnyanmisaka RK_U32 aq_en : 1; 978*437bfbebSnyanmisaka RK_U32 reserved : 10; 979*437bfbebSnyanmisaka RK_U32 rc_ctu_num : 20; 980*437bfbebSnyanmisaka } rc_cfg; 981*437bfbebSnyanmisaka 982*437bfbebSnyanmisaka /* 0x00000354 reg213 */ 983*437bfbebSnyanmisaka struct { 984*437bfbebSnyanmisaka RK_U32 reserved : 16; 985*437bfbebSnyanmisaka RK_U32 rc_qp_range : 4; 986*437bfbebSnyanmisaka RK_U32 rc_max_qp : 6; 987*437bfbebSnyanmisaka RK_U32 rc_min_qp : 6; 988*437bfbebSnyanmisaka } rc_qp; 989*437bfbebSnyanmisaka 990*437bfbebSnyanmisaka /* 0x00000358 reg214 */ 991*437bfbebSnyanmisaka struct { 992*437bfbebSnyanmisaka RK_U32 ctu_ebit : 20; 993*437bfbebSnyanmisaka RK_U32 reserved : 12; 994*437bfbebSnyanmisaka } rc_tgt; 995*437bfbebSnyanmisaka 996*437bfbebSnyanmisaka /* 0x0000035c reg215 */ 997*437bfbebSnyanmisaka struct { 998*437bfbebSnyanmisaka RK_U32 eslf_rptr : 10; 999*437bfbebSnyanmisaka RK_U32 eslf_wptr : 10; 1000*437bfbebSnyanmisaka RK_U32 eslf_blen : 10; 1001*437bfbebSnyanmisaka RK_U32 eslf_updt : 2; 1002*437bfbebSnyanmisaka } eslf_buf; 1003*437bfbebSnyanmisaka 1004*437bfbebSnyanmisaka /* 0x00000360 reg216 */ 1005*437bfbebSnyanmisaka struct { 1006*437bfbebSnyanmisaka RK_U32 sli_splt : 1; 1007*437bfbebSnyanmisaka RK_U32 sli_splt_mode : 1; 1008*437bfbebSnyanmisaka RK_U32 sli_splt_cpst : 1; 1009*437bfbebSnyanmisaka RK_U32 reserved : 12; 1010*437bfbebSnyanmisaka RK_U32 sli_flsh : 1; 1011*437bfbebSnyanmisaka RK_U32 sli_max_num_m1 : 15; 1012*437bfbebSnyanmisaka RK_U32 reserved1 : 1; 1013*437bfbebSnyanmisaka } sli_splt; 1014*437bfbebSnyanmisaka 1015*437bfbebSnyanmisaka /* 0x00000364 reg217 */ 1016*437bfbebSnyanmisaka struct { 1017*437bfbebSnyanmisaka RK_U32 sli_splt_byte : 20; 1018*437bfbebSnyanmisaka RK_U32 reserved : 12; 1019*437bfbebSnyanmisaka } sli_byte; 1020*437bfbebSnyanmisaka 1021*437bfbebSnyanmisaka /* 0x00000368 reg218 */ 1022*437bfbebSnyanmisaka struct { 1023*437bfbebSnyanmisaka RK_U32 sli_splt_cnum_m1 : 20; 1024*437bfbebSnyanmisaka RK_U32 reserved : 12; 1025*437bfbebSnyanmisaka } sli_cnum; 1026*437bfbebSnyanmisaka 1027*437bfbebSnyanmisaka /* 0x0000036c reg219 */ 1028*437bfbebSnyanmisaka struct { 1029*437bfbebSnyanmisaka RK_U32 uvc_partition0_len : 12; 1030*437bfbebSnyanmisaka RK_U32 uvc_partition_len : 12; 1031*437bfbebSnyanmisaka RK_U32 uvc_skip_len : 6; 1032*437bfbebSnyanmisaka RK_U32 reserved : 2; 1033*437bfbebSnyanmisaka } vbs_pad; 1034*437bfbebSnyanmisaka 1035*437bfbebSnyanmisaka /* 0x00000370 reg220 */ 1036*437bfbebSnyanmisaka struct { 1037*437bfbebSnyanmisaka RK_U32 cime_srch_dwnh : 4; 1038*437bfbebSnyanmisaka RK_U32 cime_srch_uph : 4; 1039*437bfbebSnyanmisaka RK_U32 cime_srch_rgtw : 4; 1040*437bfbebSnyanmisaka RK_U32 cime_srch_lftw : 4; 1041*437bfbebSnyanmisaka RK_U32 dlt_frm_num : 16; 1042*437bfbebSnyanmisaka } me_rnge; 1043*437bfbebSnyanmisaka 1044*437bfbebSnyanmisaka /* 0x00000374 reg221 */ 1045*437bfbebSnyanmisaka struct { 1046*437bfbebSnyanmisaka RK_U32 srgn_max_num : 7; 1047*437bfbebSnyanmisaka RK_U32 cime_dist_thre : 13; 1048*437bfbebSnyanmisaka RK_U32 rme_srch_h : 2; 1049*437bfbebSnyanmisaka RK_U32 rme_srch_v : 2; 1050*437bfbebSnyanmisaka RK_U32 rme_dis : 3; 1051*437bfbebSnyanmisaka RK_U32 reserved : 1; 1052*437bfbebSnyanmisaka RK_U32 fme_dis : 3; 1053*437bfbebSnyanmisaka RK_U32 reserved1 : 1; 1054*437bfbebSnyanmisaka } me_cfg; 1055*437bfbebSnyanmisaka 1056*437bfbebSnyanmisaka /* 0x00000378 reg222 */ 1057*437bfbebSnyanmisaka struct { 1058*437bfbebSnyanmisaka RK_U32 cime_zero_thre : 13; 1059*437bfbebSnyanmisaka RK_U32 reserved : 15; 1060*437bfbebSnyanmisaka RK_U32 fme_prefsu_en : 2; 1061*437bfbebSnyanmisaka RK_U32 colmv_stor_hevc : 1; 1062*437bfbebSnyanmisaka RK_U32 colmv_load_hevc : 1; 1063*437bfbebSnyanmisaka } me_cach; 1064*437bfbebSnyanmisaka 1065*437bfbebSnyanmisaka /* 0x0000037c reg223 */ 1066*437bfbebSnyanmisaka struct { 1067*437bfbebSnyanmisaka RK_U32 ref_num : 1; 1068*437bfbebSnyanmisaka RK_U32 thre_zero_sad_dep0_cme : 6; 1069*437bfbebSnyanmisaka RK_U32 thre_zero_sad_dep1_cme : 6; 1070*437bfbebSnyanmisaka RK_U32 thre_zero_diff_dep1_cme : 3; 1071*437bfbebSnyanmisaka RK_U32 thre_zero_num_dep1_cme : 3; 1072*437bfbebSnyanmisaka RK_U32 thre_num_hit_dep1_cme : 2; 1073*437bfbebSnyanmisaka RK_U32 reserved : 7; 1074*437bfbebSnyanmisaka RK_U32 rfpw_mode : 1; 1075*437bfbebSnyanmisaka RK_U32 rfpr_mode : 1; 1076*437bfbebSnyanmisaka RK_U32 rfp1r_mode : 1; 1077*437bfbebSnyanmisaka RK_U32 reserved1 : 1; 1078*437bfbebSnyanmisaka } me_ref_comb; 1079*437bfbebSnyanmisaka 1080*437bfbebSnyanmisaka /* 0x380 - 0x39c */ 1081*437bfbebSnyanmisaka RK_U32 reserved224_231[8]; 1082*437bfbebSnyanmisaka 1083*437bfbebSnyanmisaka } Vepu511FrmCommon; 1084*437bfbebSnyanmisaka 1085*437bfbebSnyanmisaka /* 0x520 reg328 - 0x538 reg334 */ 1086*437bfbebSnyanmisaka typedef struct Vepu511PpFrameCfg_t { 1087*437bfbebSnyanmisaka /* 0x00000520 reg328 */ 1088*437bfbebSnyanmisaka RK_U32 adr_md_vpp; 1089*437bfbebSnyanmisaka 1090*437bfbebSnyanmisaka /* 0x00000524 reg329 */ 1091*437bfbebSnyanmisaka RK_U32 adr_od_vpp; 1092*437bfbebSnyanmisaka 1093*437bfbebSnyanmisaka /* 0x00000528 reg330 */ 1094*437bfbebSnyanmisaka RK_U32 adr_ref_mdw; 1095*437bfbebSnyanmisaka 1096*437bfbebSnyanmisaka /* 0x0000052c reg331 */ 1097*437bfbebSnyanmisaka RK_U32 adr_ref_mdr; 1098*437bfbebSnyanmisaka 1099*437bfbebSnyanmisaka /* 0x00000530 reg332 */ 1100*437bfbebSnyanmisaka struct { 1101*437bfbebSnyanmisaka RK_U32 sto_stride_md : 8; 1102*437bfbebSnyanmisaka RK_U32 sto_stride_od : 8; 1103*437bfbebSnyanmisaka RK_U32 cur_frm_en_md : 1; 1104*437bfbebSnyanmisaka RK_U32 ref_frm_en_md : 1; 1105*437bfbebSnyanmisaka RK_U32 switch_sad_md : 2; 1106*437bfbebSnyanmisaka RK_U32 night_mode_en_md : 1; 1107*437bfbebSnyanmisaka RK_U32 flycatkin_flt_en_md : 1; 1108*437bfbebSnyanmisaka RK_U32 en_od : 1; 1109*437bfbebSnyanmisaka RK_U32 background_en_od : 1; 1110*437bfbebSnyanmisaka RK_U32 sad_comp_en_od : 1; 1111*437bfbebSnyanmisaka RK_U32 reserved : 6; 1112*437bfbebSnyanmisaka RK_U32 vepu_pp_en : 1; 1113*437bfbebSnyanmisaka } vpp_base_cfg; 1114*437bfbebSnyanmisaka 1115*437bfbebSnyanmisaka /* 0x00000534 reg333 */ 1116*437bfbebSnyanmisaka struct { 1117*437bfbebSnyanmisaka RK_U32 thres_sad_md : 12; 1118*437bfbebSnyanmisaka RK_U32 thres_move_md : 3; 1119*437bfbebSnyanmisaka RK_U32 reserved : 1; 1120*437bfbebSnyanmisaka RK_U32 thres_dust_move_md : 4; 1121*437bfbebSnyanmisaka RK_U32 thres_dust_blk_md : 3; 1122*437bfbebSnyanmisaka RK_U32 reserved1 : 1; 1123*437bfbebSnyanmisaka RK_U32 thres_dust_chng_md : 8; 1124*437bfbebSnyanmisaka } thd_md_vpp; 1125*437bfbebSnyanmisaka 1126*437bfbebSnyanmisaka /* 0x00000538 reg334 */ 1127*437bfbebSnyanmisaka struct { 1128*437bfbebSnyanmisaka RK_U32 thres_complex_od : 12; 1129*437bfbebSnyanmisaka RK_U32 thres_complex_cnt_od : 3; 1130*437bfbebSnyanmisaka RK_U32 thres_sad_od : 14; 1131*437bfbebSnyanmisaka RK_U32 reserved : 3; 1132*437bfbebSnyanmisaka } thd_od_vpp; 1133*437bfbebSnyanmisaka } Vepu511PpFrameCfg; 1134*437bfbebSnyanmisaka 1135*437bfbebSnyanmisaka /* class: rc/roi/aq/klut */ 1136*437bfbebSnyanmisaka /* 0x00001000 reg1024 - 0x00001160 reg1112 */ 1137*437bfbebSnyanmisaka typedef struct Vepu511RcRoi_t { 1138*437bfbebSnyanmisaka /* 0x00001000 reg1024 */ 1139*437bfbebSnyanmisaka struct { 1140*437bfbebSnyanmisaka RK_U32 qp_adj0 : 5; 1141*437bfbebSnyanmisaka RK_U32 qp_adj1 : 5; 1142*437bfbebSnyanmisaka RK_U32 qp_adj2 : 5; 1143*437bfbebSnyanmisaka RK_U32 qp_adj3 : 5; 1144*437bfbebSnyanmisaka RK_U32 qp_adj4 : 5; 1145*437bfbebSnyanmisaka RK_U32 reserved : 7; 1146*437bfbebSnyanmisaka } rc_adj0; 1147*437bfbebSnyanmisaka 1148*437bfbebSnyanmisaka /* 0x00001004 reg1025 */ 1149*437bfbebSnyanmisaka struct { 1150*437bfbebSnyanmisaka RK_U32 qp_adj5 : 5; 1151*437bfbebSnyanmisaka RK_U32 qp_adj6 : 5; 1152*437bfbebSnyanmisaka RK_U32 qp_adj7 : 5; 1153*437bfbebSnyanmisaka RK_U32 qp_adj8 : 5; 1154*437bfbebSnyanmisaka RK_U32 reserved : 12; 1155*437bfbebSnyanmisaka } rc_adj1; 1156*437bfbebSnyanmisaka 1157*437bfbebSnyanmisaka /* 0x00001008 reg1026 - 0x00001028 reg1034 */ 1158*437bfbebSnyanmisaka RK_U32 rc_dthd_0_8[9]; 1159*437bfbebSnyanmisaka 1160*437bfbebSnyanmisaka /* 0x102c */ 1161*437bfbebSnyanmisaka RK_U32 reserved_1035; 1162*437bfbebSnyanmisaka 1163*437bfbebSnyanmisaka /* 0x00001030 reg1036 */ 1164*437bfbebSnyanmisaka struct { 1165*437bfbebSnyanmisaka RK_U32 qpmin_area0 : 6; 1166*437bfbebSnyanmisaka RK_U32 qpmax_area0 : 6; 1167*437bfbebSnyanmisaka RK_U32 qpmin_area1 : 6; 1168*437bfbebSnyanmisaka RK_U32 qpmax_area1 : 6; 1169*437bfbebSnyanmisaka RK_U32 qpmin_area2 : 6; 1170*437bfbebSnyanmisaka RK_U32 reserved : 2; 1171*437bfbebSnyanmisaka } roi_qthd0; 1172*437bfbebSnyanmisaka 1173*437bfbebSnyanmisaka /* 0x00001034 reg1037 */ 1174*437bfbebSnyanmisaka struct { 1175*437bfbebSnyanmisaka RK_U32 qpmax_area2 : 6; 1176*437bfbebSnyanmisaka RK_U32 qpmin_area3 : 6; 1177*437bfbebSnyanmisaka RK_U32 qpmax_area3 : 6; 1178*437bfbebSnyanmisaka RK_U32 qpmin_area4 : 6; 1179*437bfbebSnyanmisaka RK_U32 qpmax_area4 : 6; 1180*437bfbebSnyanmisaka RK_U32 reserved : 2; 1181*437bfbebSnyanmisaka } roi_qthd1; 1182*437bfbebSnyanmisaka 1183*437bfbebSnyanmisaka /* 0x00001038 reg1038 */ 1184*437bfbebSnyanmisaka struct { 1185*437bfbebSnyanmisaka RK_U32 qpmin_area5 : 6; 1186*437bfbebSnyanmisaka RK_U32 qpmax_area5 : 6; 1187*437bfbebSnyanmisaka RK_U32 qpmin_area6 : 6; 1188*437bfbebSnyanmisaka RK_U32 qpmax_area6 : 6; 1189*437bfbebSnyanmisaka RK_U32 qpmin_area7 : 6; 1190*437bfbebSnyanmisaka RK_U32 reserved : 2; 1191*437bfbebSnyanmisaka } roi_qthd2; 1192*437bfbebSnyanmisaka 1193*437bfbebSnyanmisaka /* 0x0000103c reg1039 */ 1194*437bfbebSnyanmisaka struct { 1195*437bfbebSnyanmisaka RK_U32 qpmax_area7 : 6; 1196*437bfbebSnyanmisaka RK_U32 reserved : 26; 1197*437bfbebSnyanmisaka } roi_qthd3; 1198*437bfbebSnyanmisaka 1199*437bfbebSnyanmisaka /* 0x00001040 reg1040 */ 1200*437bfbebSnyanmisaka RK_U32 reserved_1040; 1201*437bfbebSnyanmisaka 1202*437bfbebSnyanmisaka /* 0x00001044 reg1041 - 0x00001050 reg1044 */ 1203*437bfbebSnyanmisaka RK_U8 aq_tthd[16]; 1204*437bfbebSnyanmisaka 1205*437bfbebSnyanmisaka /* 0x00001054 reg1045 */ 1206*437bfbebSnyanmisaka struct { 1207*437bfbebSnyanmisaka RK_S32 aq_stp_s0 : 5; 1208*437bfbebSnyanmisaka RK_S32 aq_stp_0t1 : 5; 1209*437bfbebSnyanmisaka RK_S32 aq_stp_1t2 : 5; 1210*437bfbebSnyanmisaka RK_S32 aq_stp_2t3 : 5; 1211*437bfbebSnyanmisaka RK_S32 aq_stp_3t4 : 5; 1212*437bfbebSnyanmisaka RK_S32 aq_stp_4t5 : 5; 1213*437bfbebSnyanmisaka RK_S32 reserved : 2; 1214*437bfbebSnyanmisaka } aq_stp0; 1215*437bfbebSnyanmisaka 1216*437bfbebSnyanmisaka /* 0x00001058 reg1046 */ 1217*437bfbebSnyanmisaka struct { 1218*437bfbebSnyanmisaka RK_S32 aq_stp_5t6 : 5; 1219*437bfbebSnyanmisaka RK_S32 aq_stp_6t7 : 5; 1220*437bfbebSnyanmisaka RK_S32 aq_stp_7t8 : 5; 1221*437bfbebSnyanmisaka RK_S32 aq_stp_8t9 : 5; 1222*437bfbebSnyanmisaka RK_S32 aq_stp_9t10 : 5; 1223*437bfbebSnyanmisaka RK_S32 aq_stp_10t11 : 5; 1224*437bfbebSnyanmisaka RK_S32 reserved : 2; 1225*437bfbebSnyanmisaka } aq_stp1; 1226*437bfbebSnyanmisaka 1227*437bfbebSnyanmisaka /* 0x0000105c reg1047 */ 1228*437bfbebSnyanmisaka struct { 1229*437bfbebSnyanmisaka RK_S32 aq_stp_11t12 : 5; 1230*437bfbebSnyanmisaka RK_S32 aq_stp_12t13 : 5; 1231*437bfbebSnyanmisaka RK_S32 aq_stp_13t14 : 5; 1232*437bfbebSnyanmisaka RK_S32 aq_stp_14t15 : 5; 1233*437bfbebSnyanmisaka RK_S32 aq_stp_b15 : 5; 1234*437bfbebSnyanmisaka RK_U32 reserved : 7; 1235*437bfbebSnyanmisaka } aq_stp2; 1236*437bfbebSnyanmisaka 1237*437bfbebSnyanmisaka /* 0x00001060 reg1048 */ 1238*437bfbebSnyanmisaka struct { 1239*437bfbebSnyanmisaka RK_U32 aq16_rnge : 4; 1240*437bfbebSnyanmisaka RK_U32 aq32_rnge : 4; 1241*437bfbebSnyanmisaka RK_U32 aq8_rnge : 5; 1242*437bfbebSnyanmisaka RK_U32 aq16_dif0 : 5; 1243*437bfbebSnyanmisaka RK_U32 aq16_dif1 : 5; 1244*437bfbebSnyanmisaka RK_U32 reserved : 1; 1245*437bfbebSnyanmisaka RK_U32 aq_cme_en : 1; 1246*437bfbebSnyanmisaka RK_U32 aq_subj_cme_en : 1; 1247*437bfbebSnyanmisaka RK_U32 aq_rme_en : 1; 1248*437bfbebSnyanmisaka RK_U32 aq_subj_rme_en : 1; 1249*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 1250*437bfbebSnyanmisaka } aq_clip; 1251*437bfbebSnyanmisaka 1252*437bfbebSnyanmisaka /* 0x00001064 reg1049 */ 1253*437bfbebSnyanmisaka struct { 1254*437bfbebSnyanmisaka RK_U32 madi_th0 : 8; 1255*437bfbebSnyanmisaka RK_U32 madi_th1 : 8; 1256*437bfbebSnyanmisaka RK_U32 madi_th2 : 8; 1257*437bfbebSnyanmisaka RK_U32 reserved : 8; 1258*437bfbebSnyanmisaka } madi_st_thd; 1259*437bfbebSnyanmisaka 1260*437bfbebSnyanmisaka /* 0x00001068 reg1050 */ 1261*437bfbebSnyanmisaka struct { 1262*437bfbebSnyanmisaka RK_U32 madp_th0 : 12; 1263*437bfbebSnyanmisaka RK_U32 reserved : 4; 1264*437bfbebSnyanmisaka RK_U32 madp_th1 : 12; 1265*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 1266*437bfbebSnyanmisaka } madp_st_thd0; 1267*437bfbebSnyanmisaka 1268*437bfbebSnyanmisaka /* 0x0000106c reg1051 */ 1269*437bfbebSnyanmisaka struct { 1270*437bfbebSnyanmisaka RK_U32 madp_th2 : 12; 1271*437bfbebSnyanmisaka RK_U32 reserved : 20; 1272*437bfbebSnyanmisaka } madp_st_thd1; 1273*437bfbebSnyanmisaka 1274*437bfbebSnyanmisaka /* 0x1070 - 0x1078 */ 1275*437bfbebSnyanmisaka RK_U32 reserved1052_1054[3]; 1276*437bfbebSnyanmisaka 1277*437bfbebSnyanmisaka /* 0x0000107c reg1055 */ 1278*437bfbebSnyanmisaka struct { 1279*437bfbebSnyanmisaka RK_U32 chrm_klut_ofst : 4; 1280*437bfbebSnyanmisaka RK_U32 reserved : 28; 1281*437bfbebSnyanmisaka } klut_ofst; 1282*437bfbebSnyanmisaka 1283*437bfbebSnyanmisaka /*0x00001080 reg1056 - 0x0000112c reg1099 */ 1284*437bfbebSnyanmisaka Vepu511RoiCfg roi_cfg; 1285*437bfbebSnyanmisaka 1286*437bfbebSnyanmisaka /* 0x00001130 reg1100 */ 1287*437bfbebSnyanmisaka struct { 1288*437bfbebSnyanmisaka RK_U32 base_thre_rough_mad32_intra : 4; 1289*437bfbebSnyanmisaka RK_U32 delta0_thre_rough_mad32_intra : 4; 1290*437bfbebSnyanmisaka RK_U32 delta1_thre_rough_mad32_intra : 6; 1291*437bfbebSnyanmisaka RK_U32 delta2_thre_rough_mad32_intra : 6; 1292*437bfbebSnyanmisaka RK_U32 delta3_thre_rough_mad32_intra : 7; 1293*437bfbebSnyanmisaka RK_U32 delta4_thre_rough_mad32_intra_low5 : 5; 1294*437bfbebSnyanmisaka } cudecis_thd0; 1295*437bfbebSnyanmisaka 1296*437bfbebSnyanmisaka /* 0x00001134 reg1101 */ 1297*437bfbebSnyanmisaka struct { 1298*437bfbebSnyanmisaka RK_U32 delta4_thre_rough_mad32_intra_high2 : 2; 1299*437bfbebSnyanmisaka RK_U32 delta5_thre_rough_mad32_intra : 7; 1300*437bfbebSnyanmisaka RK_U32 delta6_thre_rough_mad32_intra : 7; 1301*437bfbebSnyanmisaka RK_U32 base_thre_fine_mad32_intra : 4; 1302*437bfbebSnyanmisaka RK_U32 delta0_thre_fine_mad32_intra : 4; 1303*437bfbebSnyanmisaka RK_U32 delta1_thre_fine_mad32_intra : 5; 1304*437bfbebSnyanmisaka RK_U32 delta2_thre_fine_mad32_intra_low3 : 3; 1305*437bfbebSnyanmisaka } cudecis_thd1; 1306*437bfbebSnyanmisaka 1307*437bfbebSnyanmisaka /* 0x00001138 reg1102 */ 1308*437bfbebSnyanmisaka struct { 1309*437bfbebSnyanmisaka RK_U32 delta2_thre_fine_mad32_intra_high2 : 2; 1310*437bfbebSnyanmisaka RK_U32 delta3_thre_fine_mad32_intra : 5; 1311*437bfbebSnyanmisaka RK_U32 delta4_thre_fine_mad32_intra : 5; 1312*437bfbebSnyanmisaka RK_U32 delta5_thre_fine_mad32_intra : 6; 1313*437bfbebSnyanmisaka RK_U32 delta6_thre_fine_mad32_intra : 6; 1314*437bfbebSnyanmisaka RK_U32 base_thre_str_edge_mad32_intra : 3; 1315*437bfbebSnyanmisaka RK_U32 delta0_thre_str_edge_mad32_intra : 2; 1316*437bfbebSnyanmisaka RK_U32 delta1_thre_str_edge_mad32_intra : 3; 1317*437bfbebSnyanmisaka } cudecis_thd2; 1318*437bfbebSnyanmisaka 1319*437bfbebSnyanmisaka /* 0x0000113c reg1103 */ 1320*437bfbebSnyanmisaka struct { 1321*437bfbebSnyanmisaka RK_U32 delta2_thre_str_edge_mad32_intra : 3; 1322*437bfbebSnyanmisaka RK_U32 delta3_thre_str_edge_mad32_intra : 4; 1323*437bfbebSnyanmisaka RK_U32 base_thre_str_edge_bgrad32_intra : 5; 1324*437bfbebSnyanmisaka RK_U32 delta0_thre_str_edge_bgrad32_intra : 2; 1325*437bfbebSnyanmisaka RK_U32 delta1_thre_str_edge_bgrad32_intra : 3; 1326*437bfbebSnyanmisaka RK_U32 delta2_thre_str_edge_bgrad32_intra : 4; 1327*437bfbebSnyanmisaka RK_U32 delta3_thre_str_edge_bgrad32_intra : 5; 1328*437bfbebSnyanmisaka RK_U32 base_thre_mad16_intra : 3; 1329*437bfbebSnyanmisaka RK_U32 delta0_thre_mad16_intra : 3; 1330*437bfbebSnyanmisaka } cudecis_thd3; 1331*437bfbebSnyanmisaka 1332*437bfbebSnyanmisaka /* 0x00001140 reg1104 */ 1333*437bfbebSnyanmisaka struct { 1334*437bfbebSnyanmisaka RK_U32 delta1_thre_mad16_intra : 3; 1335*437bfbebSnyanmisaka RK_U32 delta2_thre_mad16_intra : 4; 1336*437bfbebSnyanmisaka RK_U32 delta3_thre_mad16_intra : 5; 1337*437bfbebSnyanmisaka RK_U32 delta4_thre_mad16_intra : 5; 1338*437bfbebSnyanmisaka RK_U32 delta5_thre_mad16_intra : 6; 1339*437bfbebSnyanmisaka RK_U32 delta6_thre_mad16_intra : 6; 1340*437bfbebSnyanmisaka RK_U32 delta0_thre_mad16_ratio_intra : 3; 1341*437bfbebSnyanmisaka } cudecis_thd4; 1342*437bfbebSnyanmisaka 1343*437bfbebSnyanmisaka /* 0x00001144 reg1105 */ 1344*437bfbebSnyanmisaka struct { 1345*437bfbebSnyanmisaka RK_U32 delta1_thre_mad16_ratio_intra : 3; 1346*437bfbebSnyanmisaka RK_U32 delta2_thre_mad16_ratio_intra : 3; 1347*437bfbebSnyanmisaka RK_U32 delta3_thre_mad16_ratio_intra : 3; 1348*437bfbebSnyanmisaka RK_U32 delta4_thre_mad16_ratio_intra : 3; 1349*437bfbebSnyanmisaka RK_U32 delta5_thre_mad16_ratio_intra : 3; 1350*437bfbebSnyanmisaka RK_U32 delta6_thre_mad16_ratio_intra : 3; 1351*437bfbebSnyanmisaka RK_U32 delta7_thre_mad16_ratio_intra : 3; 1352*437bfbebSnyanmisaka RK_U32 delta0_thre_rough_bgrad32_intra : 3; 1353*437bfbebSnyanmisaka RK_U32 delta1_thre_rough_bgrad32_intra : 4; 1354*437bfbebSnyanmisaka RK_U32 delta2_thre_rough_bgrad32_intra_low4 : 4; 1355*437bfbebSnyanmisaka } cudecis_thd5; 1356*437bfbebSnyanmisaka 1357*437bfbebSnyanmisaka /* 0x00001148 reg1106 */ 1358*437bfbebSnyanmisaka struct { 1359*437bfbebSnyanmisaka RK_U32 delta2_thre_rough_bgrad32_intra_high2 : 2; 1360*437bfbebSnyanmisaka RK_U32 delta3_thre_rough_bgrad32_intra : 10; 1361*437bfbebSnyanmisaka RK_U32 delta4_thre_rough_bgrad32_intra : 10; 1362*437bfbebSnyanmisaka RK_U32 delta5_thre_rough_bgrad32_intra_low10 : 10; 1363*437bfbebSnyanmisaka } cudecis_thd6; 1364*437bfbebSnyanmisaka 1365*437bfbebSnyanmisaka /* 0x0000114c reg1107 */ 1366*437bfbebSnyanmisaka struct { 1367*437bfbebSnyanmisaka RK_U32 delta5_thre_rough_bgrad32_intra_high1 : 1; 1368*437bfbebSnyanmisaka RK_U32 delta6_thre_rough_bgrad32_intra : 12; 1369*437bfbebSnyanmisaka RK_U32 delta7_thre_rough_bgrad32_intra : 13; 1370*437bfbebSnyanmisaka RK_U32 delta0_thre_bgrad16_ratio_intra : 4; 1371*437bfbebSnyanmisaka RK_U32 delta1_thre_bgrad16_ratio_intra_low2 : 2; 1372*437bfbebSnyanmisaka } cudecis_thd7; 1373*437bfbebSnyanmisaka 1374*437bfbebSnyanmisaka /* 0x00001150 reg1108 */ 1375*437bfbebSnyanmisaka struct { 1376*437bfbebSnyanmisaka RK_U32 delta1_thre_bgrad16_ratio_intra_high2 : 2; 1377*437bfbebSnyanmisaka RK_U32 delta2_thre_bgrad16_ratio_intra : 4; 1378*437bfbebSnyanmisaka RK_U32 delta3_thre_bgrad16_ratio_intra : 4; 1379*437bfbebSnyanmisaka RK_U32 delta4_thre_bgrad16_ratio_intra : 4; 1380*437bfbebSnyanmisaka RK_U32 delta5_thre_bgrad16_ratio_intra : 4; 1381*437bfbebSnyanmisaka RK_U32 delta6_thre_bgrad16_ratio_intra : 4; 1382*437bfbebSnyanmisaka RK_U32 delta7_thre_bgrad16_ratio_intra : 4; 1383*437bfbebSnyanmisaka RK_U32 delta0_thre_fme_ratio_inter : 3; 1384*437bfbebSnyanmisaka RK_U32 delta1_thre_fme_ratio_inter : 3; 1385*437bfbebSnyanmisaka } cudecis_thd8; 1386*437bfbebSnyanmisaka 1387*437bfbebSnyanmisaka /* 0x00001154 reg1109 */ 1388*437bfbebSnyanmisaka struct { 1389*437bfbebSnyanmisaka RK_U32 delta2_thre_fme_ratio_inter : 3; 1390*437bfbebSnyanmisaka RK_U32 delta3_thre_fme_ratio_inter : 3; 1391*437bfbebSnyanmisaka RK_U32 delta4_thre_fme_ratio_inter : 3; 1392*437bfbebSnyanmisaka RK_U32 delta5_thre_fme_ratio_inter : 3; 1393*437bfbebSnyanmisaka RK_U32 delta6_thre_fme_ratio_inter : 3; 1394*437bfbebSnyanmisaka RK_U32 delta7_thre_fme_ratio_inter : 3; 1395*437bfbebSnyanmisaka RK_U32 base_thre_fme32_inter : 3; 1396*437bfbebSnyanmisaka RK_U32 delta0_thre_fme32_inter : 3; 1397*437bfbebSnyanmisaka RK_U32 delta1_thre_fme32_inter : 4; 1398*437bfbebSnyanmisaka RK_U32 delta2_thre_fme32_inter : 4; 1399*437bfbebSnyanmisaka } cudecis_thd9; 1400*437bfbebSnyanmisaka 1401*437bfbebSnyanmisaka /* 0x00001158 reg1110 */ 1402*437bfbebSnyanmisaka struct { 1403*437bfbebSnyanmisaka RK_U32 delta3_thre_fme32_inter : 5; 1404*437bfbebSnyanmisaka RK_U32 delta4_thre_fme32_inter : 6; 1405*437bfbebSnyanmisaka RK_U32 delta5_thre_fme32_inter : 7; 1406*437bfbebSnyanmisaka RK_U32 delta6_thre_fme32_inter : 8; 1407*437bfbebSnyanmisaka RK_U32 thre_cme32_inter : 6; 1408*437bfbebSnyanmisaka } cudecis_thd10; 1409*437bfbebSnyanmisaka 1410*437bfbebSnyanmisaka /* 0x0000115c reg1111 */ 1411*437bfbebSnyanmisaka struct { 1412*437bfbebSnyanmisaka RK_U32 delta0_thre_mad_fme_ratio_inter : 4; 1413*437bfbebSnyanmisaka RK_U32 delta1_thre_mad_fme_ratio_inter : 4; 1414*437bfbebSnyanmisaka RK_U32 delta2_thre_mad_fme_ratio_inter : 4; 1415*437bfbebSnyanmisaka RK_U32 delta3_thre_mad_fme_ratio_inter : 4; 1416*437bfbebSnyanmisaka RK_U32 delta4_thre_mad_fme_ratio_inter : 4; 1417*437bfbebSnyanmisaka RK_U32 delta5_thre_mad_fme_ratio_inter : 4; 1418*437bfbebSnyanmisaka RK_U32 delta6_thre_mad_fme_ratio_inter : 4; 1419*437bfbebSnyanmisaka RK_U32 delta7_thre_mad_fme_ratio_inter : 4; 1420*437bfbebSnyanmisaka } cudecis_thd11; 1421*437bfbebSnyanmisaka 1422*437bfbebSnyanmisaka /* 0x00001160 reg1112 */ 1423*437bfbebSnyanmisaka struct { 1424*437bfbebSnyanmisaka RK_U32 delta0_thre_mad_fme_ratio_inter : 4; 1425*437bfbebSnyanmisaka RK_U32 delta1_thre_mad_fme_ratio_inter : 4; 1426*437bfbebSnyanmisaka RK_U32 delta2_thre_mad_fme_ratio_inter : 4; 1427*437bfbebSnyanmisaka RK_U32 delta3_thre_mad_fme_ratio_inter : 4; 1428*437bfbebSnyanmisaka RK_U32 delta4_thre_mad_fme_ratio_inter : 4; 1429*437bfbebSnyanmisaka RK_U32 delta5_thre_mad_fme_ratio_inter : 4; 1430*437bfbebSnyanmisaka RK_U32 delta6_thre_mad_fme_ratio_inter : 4; 1431*437bfbebSnyanmisaka RK_U32 delta7_thre_mad_fme_ratio_inter : 4; 1432*437bfbebSnyanmisaka } cudecis_thd12; 1433*437bfbebSnyanmisaka } Vepu511RcRoi; 1434*437bfbebSnyanmisaka 1435*437bfbebSnyanmisaka typedef struct Vepu511OsdRegion_t { 1436*437bfbebSnyanmisaka struct { 1437*437bfbebSnyanmisaka RK_U32 osd_en : 1; 1438*437bfbebSnyanmisaka RK_U32 reserved : 4; 1439*437bfbebSnyanmisaka RK_U32 osd_qp_adj_en : 1; 1440*437bfbebSnyanmisaka RK_U32 osd_range_trns_en : 1; 1441*437bfbebSnyanmisaka RK_U32 osd_range_trns_sel : 1; 1442*437bfbebSnyanmisaka RK_U32 osd_fmt : 4; 1443*437bfbebSnyanmisaka RK_U32 osd_alpha_swap : 1; 1444*437bfbebSnyanmisaka RK_U32 osd_rbuv_swap : 1; 1445*437bfbebSnyanmisaka RK_U32 reserved1 : 8; 1446*437bfbebSnyanmisaka RK_U32 osd_fg_alpha : 8; 1447*437bfbebSnyanmisaka RK_U32 osd_fg_alpha_sel : 2; 1448*437bfbebSnyanmisaka } cfg0; 1449*437bfbebSnyanmisaka 1450*437bfbebSnyanmisaka struct { 1451*437bfbebSnyanmisaka RK_U32 osd_lt_xcrd : 14; 1452*437bfbebSnyanmisaka RK_U32 osd_lt_ycrd : 14; 1453*437bfbebSnyanmisaka RK_U32 osd_endn : 4; 1454*437bfbebSnyanmisaka } cfg1; 1455*437bfbebSnyanmisaka 1456*437bfbebSnyanmisaka struct { 1457*437bfbebSnyanmisaka RK_U32 osd_rb_xcrd : 14; 1458*437bfbebSnyanmisaka RK_U32 osd_rb_ycrd : 14; 1459*437bfbebSnyanmisaka RK_U32 reserved : 4; 1460*437bfbebSnyanmisaka } cfg2; 1461*437bfbebSnyanmisaka 1462*437bfbebSnyanmisaka RK_U32 osd_st_addr; 1463*437bfbebSnyanmisaka 1464*437bfbebSnyanmisaka RK_U32 reserved; 1465*437bfbebSnyanmisaka 1466*437bfbebSnyanmisaka struct { 1467*437bfbebSnyanmisaka RK_U32 osd_stride : 17; 1468*437bfbebSnyanmisaka RK_U32 reserved : 8; 1469*437bfbebSnyanmisaka RK_U32 osd_ch_ds_mode : 1; 1470*437bfbebSnyanmisaka RK_U32 reserved1 : 6; 1471*437bfbebSnyanmisaka } cfg5; 1472*437bfbebSnyanmisaka 1473*437bfbebSnyanmisaka RK_U8 lut[8]; 1474*437bfbebSnyanmisaka 1475*437bfbebSnyanmisaka /* only for h.264/h.h265, jpeg no use */ 1476*437bfbebSnyanmisaka struct { 1477*437bfbebSnyanmisaka RK_U32 osd_qp_adj_sel : 1; 1478*437bfbebSnyanmisaka RK_U32 osd_qp : 7; 1479*437bfbebSnyanmisaka RK_U32 osd_qp_max : 6; 1480*437bfbebSnyanmisaka RK_U32 osd_qp_min : 6; 1481*437bfbebSnyanmisaka RK_U32 osd_qp_prj : 5; 1482*437bfbebSnyanmisaka RK_U32 reserved : 7; 1483*437bfbebSnyanmisaka } cfg8; 1484*437bfbebSnyanmisaka } Vepu511OsdRegion; 1485*437bfbebSnyanmisaka 1486*437bfbebSnyanmisaka /* class: osd */ 1487*437bfbebSnyanmisaka /* 0x00003000 reg3072 - 0x00003134 reg3149 */ 1488*437bfbebSnyanmisaka typedef struct Vepu511Osd_t { 1489*437bfbebSnyanmisaka /* 0x00003000 reg3072 - 0x0000311c reg3143*/ 1490*437bfbebSnyanmisaka Vepu511OsdRegion osd_regions[8]; 1491*437bfbebSnyanmisaka 1492*437bfbebSnyanmisaka /* 0x00003120 reg3144 */ 1493*437bfbebSnyanmisaka struct { 1494*437bfbebSnyanmisaka RK_U32 osd_csc_yr : 9; 1495*437bfbebSnyanmisaka RK_U32 osd_csc_yg : 9; 1496*437bfbebSnyanmisaka RK_U32 osd_csc_yb : 9; 1497*437bfbebSnyanmisaka RK_U32 reserved : 5; 1498*437bfbebSnyanmisaka } osd_whi_cfg0; 1499*437bfbebSnyanmisaka 1500*437bfbebSnyanmisaka /* 0x00003124 reg3145 */ 1501*437bfbebSnyanmisaka struct { 1502*437bfbebSnyanmisaka RK_U32 osd_csc_ur : 9; 1503*437bfbebSnyanmisaka RK_U32 osd_csc_ug : 9; 1504*437bfbebSnyanmisaka RK_U32 osd_csc_ub : 9; 1505*437bfbebSnyanmisaka RK_U32 reserved : 5; 1506*437bfbebSnyanmisaka } osd_whi_cfg1; 1507*437bfbebSnyanmisaka 1508*437bfbebSnyanmisaka /* 0x00003128 reg3146 */ 1509*437bfbebSnyanmisaka struct { 1510*437bfbebSnyanmisaka RK_U32 osd_csc_vr : 9; 1511*437bfbebSnyanmisaka RK_U32 osd_csc_vg : 9; 1512*437bfbebSnyanmisaka RK_U32 osd_csc_vb : 9; 1513*437bfbebSnyanmisaka RK_U32 reserved : 5; 1514*437bfbebSnyanmisaka } osd_whi_cfg2; 1515*437bfbebSnyanmisaka 1516*437bfbebSnyanmisaka /* 0x0000312c reg3147 */ 1517*437bfbebSnyanmisaka struct { 1518*437bfbebSnyanmisaka RK_U32 osd_csc_ofst_y : 8; 1519*437bfbebSnyanmisaka RK_U32 osd_csc_ofst_u : 8; 1520*437bfbebSnyanmisaka RK_U32 osd_csc_ofst_v : 8; 1521*437bfbebSnyanmisaka RK_U32 reserved : 8; 1522*437bfbebSnyanmisaka } osd_whi_cfg3; 1523*437bfbebSnyanmisaka } Vepu511Osd; 1524*437bfbebSnyanmisaka 1525*437bfbebSnyanmisaka /* class: osd */ 1526*437bfbebSnyanmisaka /*0x00003000 reg3072 - 0x00003264 reg3225 */ 1527*437bfbebSnyanmisaka typedef struct Vepu511OsdRegs_t { 1528*437bfbebSnyanmisaka /*0x00003000 reg3072 - 0x0000312c reg3147 */ 1529*437bfbebSnyanmisaka Vepu511Osd osd_comb_cfg; 1530*437bfbebSnyanmisaka 1531*437bfbebSnyanmisaka /* 0x00003130 reg3148 - 0x00003134 reg3149 */ 1532*437bfbebSnyanmisaka RK_U32 reserve[2]; 1533*437bfbebSnyanmisaka 1534*437bfbebSnyanmisaka /*0x00003138 reg3150 - 0x00003264 reg3225 */ 1535*437bfbebSnyanmisaka Vepu511Osd osd_jpeg_cfg; 1536*437bfbebSnyanmisaka } Vepu511OsdRegs; 1537*437bfbebSnyanmisaka 1538*437bfbebSnyanmisaka /* class: st */ 1539*437bfbebSnyanmisaka /* 0x00004000 reg4096 - 0x0000424c reg4243*/ 1540*437bfbebSnyanmisaka typedef struct Vepu511Status_t { 1541*437bfbebSnyanmisaka /* 0x00004000 reg4096 */ 1542*437bfbebSnyanmisaka RK_U32 bs_lgth_l32; 1543*437bfbebSnyanmisaka 1544*437bfbebSnyanmisaka /* 0x00004004 reg4097 */ 1545*437bfbebSnyanmisaka struct { 1546*437bfbebSnyanmisaka RK_U32 bs_lgth_h8 : 8; 1547*437bfbebSnyanmisaka RK_U32 st_rc_lst_dqp : 6; 1548*437bfbebSnyanmisaka RK_U32 reserved : 2; 1549*437bfbebSnyanmisaka RK_U32 sse_l16 : 16; 1550*437bfbebSnyanmisaka } st_sse_bsl; 1551*437bfbebSnyanmisaka 1552*437bfbebSnyanmisaka /* 0x00004008 reg4098 */ 1553*437bfbebSnyanmisaka RK_U32 sse_h32; 1554*437bfbebSnyanmisaka 1555*437bfbebSnyanmisaka /* 0x0000400c reg4099 */ 1556*437bfbebSnyanmisaka RK_U32 qp_sum; 1557*437bfbebSnyanmisaka 1558*437bfbebSnyanmisaka /* 0x00004010 reg4100 */ 1559*437bfbebSnyanmisaka struct { 1560*437bfbebSnyanmisaka RK_U32 sao_cnum : 16; 1561*437bfbebSnyanmisaka RK_U32 sao_ynum : 16; 1562*437bfbebSnyanmisaka } st_sao; 1563*437bfbebSnyanmisaka 1564*437bfbebSnyanmisaka /* 0x00004014 reg4101 */ 1565*437bfbebSnyanmisaka RK_U32 rdo_head_bits; 1566*437bfbebSnyanmisaka 1567*437bfbebSnyanmisaka /* 0x00004018 reg4102 */ 1568*437bfbebSnyanmisaka struct { 1569*437bfbebSnyanmisaka RK_U32 rdo_head_bits_h8 : 8; 1570*437bfbebSnyanmisaka RK_U32 reserved : 8; 1571*437bfbebSnyanmisaka RK_U32 rdo_res_bits_l16 : 16; 1572*437bfbebSnyanmisaka } st_head_res_bl; 1573*437bfbebSnyanmisaka 1574*437bfbebSnyanmisaka /* 0x0000401c reg4103 */ 1575*437bfbebSnyanmisaka RK_U32 rdo_res_bits_h24; 1576*437bfbebSnyanmisaka 1577*437bfbebSnyanmisaka /* 0x00004020 reg4104 */ 1578*437bfbebSnyanmisaka struct { 1579*437bfbebSnyanmisaka RK_U32 st_enc : 2; 1580*437bfbebSnyanmisaka RK_U32 st_sclr : 1; 1581*437bfbebSnyanmisaka RK_U32 vepu_fbd_err : 5; 1582*437bfbebSnyanmisaka RK_U32 isp_src_oflw : 1; 1583*437bfbebSnyanmisaka RK_U32 vepu_src_oflw : 1; 1584*437bfbebSnyanmisaka RK_U32 vepu_sid_nmch : 1; 1585*437bfbebSnyanmisaka RK_U32 vepu_fcnt_nmch : 1; 1586*437bfbebSnyanmisaka RK_U32 reserved : 4; 1587*437bfbebSnyanmisaka RK_U32 dvbm_finf_wful : 1; 1588*437bfbebSnyanmisaka RK_U32 dvbm_linf_wful : 1; 1589*437bfbebSnyanmisaka RK_U32 dvbm_fsid_nmch : 1; 1590*437bfbebSnyanmisaka RK_U32 dvbm_fcnt_early : 1; 1591*437bfbebSnyanmisaka RK_U32 dvbm_fcnt_late : 1; 1592*437bfbebSnyanmisaka RK_U32 dvbm_isp_oflw : 1; 1593*437bfbebSnyanmisaka RK_U32 dvbm_vepu_oflw : 1; 1594*437bfbebSnyanmisaka RK_U32 isp_time_out : 1; 1595*437bfbebSnyanmisaka RK_U32 dvbm_vsrc_fcnt : 8; 1596*437bfbebSnyanmisaka } st_enc; 1597*437bfbebSnyanmisaka 1598*437bfbebSnyanmisaka /* 0x00004024 reg4105 */ 1599*437bfbebSnyanmisaka struct { 1600*437bfbebSnyanmisaka RK_U32 fnum_cfg_done : 8; 1601*437bfbebSnyanmisaka RK_U32 fnum_cfg : 8; 1602*437bfbebSnyanmisaka RK_U32 fnum_int : 8; 1603*437bfbebSnyanmisaka RK_U32 fnum_enc_done : 8; 1604*437bfbebSnyanmisaka } st_lkt; 1605*437bfbebSnyanmisaka 1606*437bfbebSnyanmisaka /* 0x00004028 reg4106 */ 1607*437bfbebSnyanmisaka struct { 1608*437bfbebSnyanmisaka RK_U32 reserved : 4; 1609*437bfbebSnyanmisaka RK_U32 node_addr : 28; 1610*437bfbebSnyanmisaka } st_nadr; 1611*437bfbebSnyanmisaka 1612*437bfbebSnyanmisaka /* 0x0000402c reg4107 */ 1613*437bfbebSnyanmisaka RK_U32 vbsbw_addr; 1614*437bfbebSnyanmisaka 1615*437bfbebSnyanmisaka /* 0x00004030 reg4108 */ 1616*437bfbebSnyanmisaka struct { 1617*437bfbebSnyanmisaka RK_U32 axib_idl : 8; 1618*437bfbebSnyanmisaka RK_U32 axib_ovfl : 8; 1619*437bfbebSnyanmisaka RK_U32 axib_err : 8; 1620*437bfbebSnyanmisaka RK_U32 axir_err : 8; 1621*437bfbebSnyanmisaka } st_bus; 1622*437bfbebSnyanmisaka 1623*437bfbebSnyanmisaka /* 0x00004034 reg4109 */ 1624*437bfbebSnyanmisaka struct { 1625*437bfbebSnyanmisaka RK_U32 sli_num_video : 8; 1626*437bfbebSnyanmisaka RK_U32 sli_num_jpeg : 8; 1627*437bfbebSnyanmisaka RK_U32 bpkt_num_video : 7; 1628*437bfbebSnyanmisaka RK_U32 bpkt_lst_video : 1; 1629*437bfbebSnyanmisaka RK_U32 bpkt_num_jpeg : 7; 1630*437bfbebSnyanmisaka RK_U32 bpkt_lst_jpeg : 1; 1631*437bfbebSnyanmisaka } st_snum; 1632*437bfbebSnyanmisaka 1633*437bfbebSnyanmisaka /* 0x00004038 reg4110 */ 1634*437bfbebSnyanmisaka struct { 1635*437bfbebSnyanmisaka RK_U32 sli_len : 30; 1636*437bfbebSnyanmisaka RK_U32 sli_lst : 1; 1637*437bfbebSnyanmisaka RK_U32 sli_sid : 1; 1638*437bfbebSnyanmisaka } st_slen; 1639*437bfbebSnyanmisaka 1640*437bfbebSnyanmisaka /* 0x0000403c reg4111 */ 1641*437bfbebSnyanmisaka struct { 1642*437bfbebSnyanmisaka RK_U32 task_id_proc : 12; 1643*437bfbebSnyanmisaka RK_U32 task_id_done : 12; 1644*437bfbebSnyanmisaka RK_U32 task_done : 1; 1645*437bfbebSnyanmisaka RK_U32 task_lkt_err : 3; 1646*437bfbebSnyanmisaka RK_U32 reserved : 4; 1647*437bfbebSnyanmisaka } st_link_task; 1648*437bfbebSnyanmisaka 1649*437bfbebSnyanmisaka /* 0x00004040 reg4112 */ 1650*437bfbebSnyanmisaka struct { 1651*437bfbebSnyanmisaka RK_U32 eslf_nptr : 10; 1652*437bfbebSnyanmisaka RK_U32 eslf_empty : 1; 1653*437bfbebSnyanmisaka RK_U32 eslf_full : 1; 1654*437bfbebSnyanmisaka RK_U32 eslf_sid : 1; 1655*437bfbebSnyanmisaka RK_U32 reserved : 19; 1656*437bfbebSnyanmisaka } st_eslf_nptr; 1657*437bfbebSnyanmisaka 1658*437bfbebSnyanmisaka /* 0x00004044 reg4113 */ 1659*437bfbebSnyanmisaka struct { 1660*437bfbebSnyanmisaka RK_U32 vsrd_posy : 10; 1661*437bfbebSnyanmisaka RK_U32 reserved : 5; 1662*437bfbebSnyanmisaka RK_U32 vsrd_fend : 1; 1663*437bfbebSnyanmisaka RK_U32 vsrd_posy_jpeg : 10; 1664*437bfbebSnyanmisaka RK_U32 reserved1 : 5; 1665*437bfbebSnyanmisaka RK_U32 vsrd_fend_jpeg : 1; 1666*437bfbebSnyanmisaka } st_vlsd_rlvl; 1667*437bfbebSnyanmisaka 1668*437bfbebSnyanmisaka /* 0x00004048 reg4114 */ 1669*437bfbebSnyanmisaka struct { 1670*437bfbebSnyanmisaka RK_U32 eslf_nptr_jpeg : 10; 1671*437bfbebSnyanmisaka RK_U32 eslf_empty_jpeg : 1; 1672*437bfbebSnyanmisaka RK_U32 eslf_full_jpeg : 1; 1673*437bfbebSnyanmisaka RK_U32 eslf_sid_jpeg : 1; 1674*437bfbebSnyanmisaka RK_U32 reserved : 19; 1675*437bfbebSnyanmisaka } st_eslf_nptr_jpeg; 1676*437bfbebSnyanmisaka 1677*437bfbebSnyanmisaka /* 0x404c - 0x405c */ 1678*437bfbebSnyanmisaka RK_U32 reserved4115_4119[5]; 1679*437bfbebSnyanmisaka 1680*437bfbebSnyanmisaka /* 0x00004060 reg4120 */ 1681*437bfbebSnyanmisaka struct { 1682*437bfbebSnyanmisaka RK_U32 sli_len_jpeg : 30; 1683*437bfbebSnyanmisaka RK_U32 sli_lst_jpeg : 1; 1684*437bfbebSnyanmisaka RK_U32 sli_sid_jpeg : 1; 1685*437bfbebSnyanmisaka } st_slen_jpeg; 1686*437bfbebSnyanmisaka 1687*437bfbebSnyanmisaka /* 0x00004064 reg4121 */ 1688*437bfbebSnyanmisaka RK_U32 jpeg_head_bits_l32; 1689*437bfbebSnyanmisaka 1690*437bfbebSnyanmisaka /* 0x00004068 reg4122 */ 1691*437bfbebSnyanmisaka struct { 1692*437bfbebSnyanmisaka RK_U32 jpeg_head_bits_h8 : 1; 1693*437bfbebSnyanmisaka RK_U32 reserved : 31; 1694*437bfbebSnyanmisaka } st_bsl_h8_jpeg; 1695*437bfbebSnyanmisaka 1696*437bfbebSnyanmisaka /* 0x0000406c reg4123 */ 1697*437bfbebSnyanmisaka RK_U32 jbsbw_addr; 1698*437bfbebSnyanmisaka 1699*437bfbebSnyanmisaka /* 0x00004070 reg4124 */ 1700*437bfbebSnyanmisaka RK_U32 luma_pix_sum_od; 1701*437bfbebSnyanmisaka 1702*437bfbebSnyanmisaka /* 0x4074 - 0x407c */ 1703*437bfbebSnyanmisaka RK_U32 reserved4125_4127[3]; 1704*437bfbebSnyanmisaka 1705*437bfbebSnyanmisaka /* 0x00004080 reg4128 */ 1706*437bfbebSnyanmisaka struct { 1707*437bfbebSnyanmisaka RK_U32 pnum_p64 : 17; 1708*437bfbebSnyanmisaka RK_U32 reserved : 15; 1709*437bfbebSnyanmisaka } st_pnum_p64; 1710*437bfbebSnyanmisaka 1711*437bfbebSnyanmisaka /* 0x00004084 reg4129 */ 1712*437bfbebSnyanmisaka struct { 1713*437bfbebSnyanmisaka RK_U32 pnum_p32 : 19; 1714*437bfbebSnyanmisaka RK_U32 reserved : 13; 1715*437bfbebSnyanmisaka } st_pnum_p32; 1716*437bfbebSnyanmisaka 1717*437bfbebSnyanmisaka /* 0x00004088 reg4130 */ 1718*437bfbebSnyanmisaka struct { 1719*437bfbebSnyanmisaka RK_U32 pnum_p16 : 21; 1720*437bfbebSnyanmisaka RK_U32 reserved : 11; 1721*437bfbebSnyanmisaka } st_pnum_p16; 1722*437bfbebSnyanmisaka 1723*437bfbebSnyanmisaka /* 0x0000408c reg4131 */ 1724*437bfbebSnyanmisaka struct { 1725*437bfbebSnyanmisaka RK_U32 pnum_p8 : 23; 1726*437bfbebSnyanmisaka RK_U32 reserved : 9; 1727*437bfbebSnyanmisaka } st_pnum_p8; 1728*437bfbebSnyanmisaka 1729*437bfbebSnyanmisaka /* 0x00004090 reg4132 */ 1730*437bfbebSnyanmisaka struct { 1731*437bfbebSnyanmisaka RK_U32 pnum_i32 : 19; 1732*437bfbebSnyanmisaka RK_U32 reserved : 13; 1733*437bfbebSnyanmisaka } st_pnum_i32; 1734*437bfbebSnyanmisaka 1735*437bfbebSnyanmisaka /* 0x00004094 reg4133 */ 1736*437bfbebSnyanmisaka struct { 1737*437bfbebSnyanmisaka RK_U32 pnum_i16 : 21; 1738*437bfbebSnyanmisaka RK_U32 reserved : 11; 1739*437bfbebSnyanmisaka } st_pnum_i16; 1740*437bfbebSnyanmisaka 1741*437bfbebSnyanmisaka /* 0x00004098 reg4134 */ 1742*437bfbebSnyanmisaka struct { 1743*437bfbebSnyanmisaka RK_U32 pnum_i8 : 23; 1744*437bfbebSnyanmisaka RK_U32 reserved : 9; 1745*437bfbebSnyanmisaka } st_pnum_i8; 1746*437bfbebSnyanmisaka 1747*437bfbebSnyanmisaka /* 0x0000409c reg4135 */ 1748*437bfbebSnyanmisaka struct { 1749*437bfbebSnyanmisaka RK_U32 pnum_i4 : 23; 1750*437bfbebSnyanmisaka RK_U32 reserved : 9; 1751*437bfbebSnyanmisaka } st_pnum_i4; 1752*437bfbebSnyanmisaka 1753*437bfbebSnyanmisaka /* 0x000040a0 reg4136 */ 1754*437bfbebSnyanmisaka struct { 1755*437bfbebSnyanmisaka RK_U32 num_b16 : 23; 1756*437bfbebSnyanmisaka RK_U32 reserved : 9; 1757*437bfbebSnyanmisaka } st_bnum_b16; 1758*437bfbebSnyanmisaka 1759*437bfbebSnyanmisaka /* 0x40a4 */ 1760*437bfbebSnyanmisaka RK_U32 reserved_4137; 1761*437bfbebSnyanmisaka 1762*437bfbebSnyanmisaka /* 0x000040a8 reg4138 */ 1763*437bfbebSnyanmisaka RK_U32 madi16_sum; 1764*437bfbebSnyanmisaka 1765*437bfbebSnyanmisaka /* 0x000040ac reg4139 */ 1766*437bfbebSnyanmisaka RK_U32 madi32_sum; 1767*437bfbebSnyanmisaka 1768*437bfbebSnyanmisaka /* 0x000040b0 reg4140 */ 1769*437bfbebSnyanmisaka RK_U32 madp16_sum; 1770*437bfbebSnyanmisaka 1771*437bfbebSnyanmisaka /* 0x000040b4 reg4141 */ 1772*437bfbebSnyanmisaka struct { 1773*437bfbebSnyanmisaka RK_U32 rdo_smear_cnt0 : 10; 1774*437bfbebSnyanmisaka RK_U32 reserved : 6; 1775*437bfbebSnyanmisaka RK_U32 rdo_smear_cnt1 : 10; 1776*437bfbebSnyanmisaka RK_U32 reserved1 : 6; 1777*437bfbebSnyanmisaka } st_smear_cnt0; 1778*437bfbebSnyanmisaka 1779*437bfbebSnyanmisaka /* 0x000040b8 reg4142 */ 1780*437bfbebSnyanmisaka struct { 1781*437bfbebSnyanmisaka RK_U32 rdo_smear_cnt2 : 10; 1782*437bfbebSnyanmisaka RK_U32 reserved : 6; 1783*437bfbebSnyanmisaka RK_U32 rdo_smear_cnt3 : 10; 1784*437bfbebSnyanmisaka RK_U32 reserved1 : 6; 1785*437bfbebSnyanmisaka } st_smear_cnt1; 1786*437bfbebSnyanmisaka 1787*437bfbebSnyanmisaka /* 0x40bc */ 1788*437bfbebSnyanmisaka RK_U32 reserved_4143; 1789*437bfbebSnyanmisaka 1790*437bfbebSnyanmisaka /* 0x000040c0 reg4144 */ 1791*437bfbebSnyanmisaka struct { 1792*437bfbebSnyanmisaka RK_U32 madi_th_lt_cnt0 : 16; 1793*437bfbebSnyanmisaka RK_U32 madi_th_lt_cnt1 : 16; 1794*437bfbebSnyanmisaka } st_madi_lt_num0; 1795*437bfbebSnyanmisaka 1796*437bfbebSnyanmisaka /* 0x000040c4 reg4145 */ 1797*437bfbebSnyanmisaka struct { 1798*437bfbebSnyanmisaka RK_U32 madi_th_lt_cnt2 : 16; 1799*437bfbebSnyanmisaka RK_U32 madi_th_lt_cnt3 : 16; 1800*437bfbebSnyanmisaka } st_madi_lt_num1; 1801*437bfbebSnyanmisaka 1802*437bfbebSnyanmisaka /* 0x000040c8 reg4146 */ 1803*437bfbebSnyanmisaka struct { 1804*437bfbebSnyanmisaka RK_U32 madi_th_rt_cnt0 : 16; 1805*437bfbebSnyanmisaka RK_U32 madi_th_rt_cnt1 : 16; 1806*437bfbebSnyanmisaka } st_madi_rt_num0; 1807*437bfbebSnyanmisaka 1808*437bfbebSnyanmisaka /* 0x000040cc reg4147 */ 1809*437bfbebSnyanmisaka struct { 1810*437bfbebSnyanmisaka RK_U32 madi_th_rt_cnt2 : 16; 1811*437bfbebSnyanmisaka RK_U32 madi_th_rt_cnt3 : 16; 1812*437bfbebSnyanmisaka } st_madi_rt_num1; 1813*437bfbebSnyanmisaka 1814*437bfbebSnyanmisaka /* 0x000040d0 reg4148 */ 1815*437bfbebSnyanmisaka struct { 1816*437bfbebSnyanmisaka RK_U32 madi_th_lb_cnt0 : 16; 1817*437bfbebSnyanmisaka RK_U32 madi_th_lb_cnt1 : 16; 1818*437bfbebSnyanmisaka } st_madi_lb_num0; 1819*437bfbebSnyanmisaka 1820*437bfbebSnyanmisaka /* 0x000040d4 reg4149 */ 1821*437bfbebSnyanmisaka struct { 1822*437bfbebSnyanmisaka RK_U32 madi_th_lb_cnt2 : 16; 1823*437bfbebSnyanmisaka RK_U32 madi_th_lb_cnt3 : 16; 1824*437bfbebSnyanmisaka } st_madi_lb_num1; 1825*437bfbebSnyanmisaka 1826*437bfbebSnyanmisaka /* 0x000040d8 reg4150 */ 1827*437bfbebSnyanmisaka struct { 1828*437bfbebSnyanmisaka RK_U32 madi_th_rb_cnt0 : 16; 1829*437bfbebSnyanmisaka RK_U32 madi_th_rb_cnt1 : 16; 1830*437bfbebSnyanmisaka } st_madi_rb_num0; 1831*437bfbebSnyanmisaka 1832*437bfbebSnyanmisaka /* 0x000040dc reg4151 */ 1833*437bfbebSnyanmisaka struct { 1834*437bfbebSnyanmisaka RK_U32 madi_th_rb_cnt2 : 16; 1835*437bfbebSnyanmisaka RK_U32 madi_th_rb_cnt3 : 16; 1836*437bfbebSnyanmisaka } st_madi_rb_num1; 1837*437bfbebSnyanmisaka 1838*437bfbebSnyanmisaka /* 0x000040e0 reg4152 */ 1839*437bfbebSnyanmisaka struct { 1840*437bfbebSnyanmisaka RK_U32 madp_th_lt_cnt0 : 16; 1841*437bfbebSnyanmisaka RK_U32 madp_th_lt_cnt1 : 16; 1842*437bfbebSnyanmisaka } st_madp_lt_num0; 1843*437bfbebSnyanmisaka 1844*437bfbebSnyanmisaka /* 0x000040e4 reg4153 */ 1845*437bfbebSnyanmisaka struct { 1846*437bfbebSnyanmisaka RK_U32 madp_th_lt_cnt2 : 16; 1847*437bfbebSnyanmisaka RK_U32 madp_th_lt_cnt3 : 16; 1848*437bfbebSnyanmisaka } st_madp_lt_num1; 1849*437bfbebSnyanmisaka 1850*437bfbebSnyanmisaka /* 0x000040e8 reg4154 */ 1851*437bfbebSnyanmisaka struct { 1852*437bfbebSnyanmisaka RK_U32 madp_th_rt_cnt0 : 16; 1853*437bfbebSnyanmisaka RK_U32 madp_th_rt_cnt1 : 16; 1854*437bfbebSnyanmisaka } st_madp_rt_num0; 1855*437bfbebSnyanmisaka 1856*437bfbebSnyanmisaka /* 0x000040ec reg4155 */ 1857*437bfbebSnyanmisaka struct { 1858*437bfbebSnyanmisaka RK_U32 madp_th_rt_cnt2 : 16; 1859*437bfbebSnyanmisaka RK_U32 madp_th_rt_cnt3 : 16; 1860*437bfbebSnyanmisaka } st_madp_rt_num1; 1861*437bfbebSnyanmisaka 1862*437bfbebSnyanmisaka /* 0x000040f0 reg4156 */ 1863*437bfbebSnyanmisaka struct { 1864*437bfbebSnyanmisaka RK_U32 madp_th_lb_cnt0 : 16; 1865*437bfbebSnyanmisaka RK_U32 madp_th_lb_cnt1 : 16; 1866*437bfbebSnyanmisaka } st_madp_lb_num0; 1867*437bfbebSnyanmisaka 1868*437bfbebSnyanmisaka /* 0x000040f4 reg4157 */ 1869*437bfbebSnyanmisaka struct { 1870*437bfbebSnyanmisaka RK_U32 madp_th_lb_cnt2 : 16; 1871*437bfbebSnyanmisaka RK_U32 madp_th_lb_cnt3 : 16; 1872*437bfbebSnyanmisaka } st_madp_lb_num1; 1873*437bfbebSnyanmisaka 1874*437bfbebSnyanmisaka /* 0x000040f8 reg4158 */ 1875*437bfbebSnyanmisaka struct { 1876*437bfbebSnyanmisaka RK_U32 madp_th_rb_cnt0 : 16; 1877*437bfbebSnyanmisaka RK_U32 madp_th_rb_cnt1 : 16; 1878*437bfbebSnyanmisaka } st_madp_rb_num0; 1879*437bfbebSnyanmisaka 1880*437bfbebSnyanmisaka /* 0x000040fc reg4159 */ 1881*437bfbebSnyanmisaka struct { 1882*437bfbebSnyanmisaka RK_U32 madp_th_rb_cnt2 : 16; 1883*437bfbebSnyanmisaka RK_U32 madp_th_rb_cnt3 : 16; 1884*437bfbebSnyanmisaka } st_madp_rb_num1; 1885*437bfbebSnyanmisaka 1886*437bfbebSnyanmisaka /* 0x00004100 reg4160 */ 1887*437bfbebSnyanmisaka struct { 1888*437bfbebSnyanmisaka RK_U32 cmv_th_lt_cnt0 : 16; 1889*437bfbebSnyanmisaka RK_U32 cmv_th_lt_cnt1 : 16; 1890*437bfbebSnyanmisaka } st_cmv_lt_num0; 1891*437bfbebSnyanmisaka 1892*437bfbebSnyanmisaka /* 0x00004104 reg4161 */ 1893*437bfbebSnyanmisaka struct { 1894*437bfbebSnyanmisaka RK_U32 cmv_th_lt_cnt2 : 16; 1895*437bfbebSnyanmisaka RK_U32 cmv_th_lt_cnt3 : 16; 1896*437bfbebSnyanmisaka } st_cmv_lt_num1; 1897*437bfbebSnyanmisaka 1898*437bfbebSnyanmisaka /* 0x00004108 reg4162 */ 1899*437bfbebSnyanmisaka struct { 1900*437bfbebSnyanmisaka RK_U32 cmv_th_rt_cnt0 : 16; 1901*437bfbebSnyanmisaka RK_U32 cmv_th_rt_cnt1 : 16; 1902*437bfbebSnyanmisaka } st_cmv_rt_num0; 1903*437bfbebSnyanmisaka 1904*437bfbebSnyanmisaka /* 0x0000410c reg4163 */ 1905*437bfbebSnyanmisaka struct { 1906*437bfbebSnyanmisaka RK_U32 cmv_th_rt_cnt2 : 16; 1907*437bfbebSnyanmisaka RK_U32 cmv_th_rt_cnt3 : 16; 1908*437bfbebSnyanmisaka } st_cmv_rt_num1; 1909*437bfbebSnyanmisaka 1910*437bfbebSnyanmisaka /* 0x00004110 reg4164 */ 1911*437bfbebSnyanmisaka struct { 1912*437bfbebSnyanmisaka RK_U32 cmv_th_lb_cnt0 : 16; 1913*437bfbebSnyanmisaka RK_U32 cmv_th_lb_cnt1 : 16; 1914*437bfbebSnyanmisaka } st_cmv_lb_num0; 1915*437bfbebSnyanmisaka 1916*437bfbebSnyanmisaka /* 0x00004114 reg4165 */ 1917*437bfbebSnyanmisaka struct { 1918*437bfbebSnyanmisaka RK_U32 cmv_th_lb_cnt2 : 16; 1919*437bfbebSnyanmisaka RK_U32 cmv_th_lb_cnt3 : 16; 1920*437bfbebSnyanmisaka } st_cmv_lb_num1; 1921*437bfbebSnyanmisaka 1922*437bfbebSnyanmisaka /* 0x00004118 reg4166 */ 1923*437bfbebSnyanmisaka struct { 1924*437bfbebSnyanmisaka RK_U32 cmv_th_rb_cnt0 : 16; 1925*437bfbebSnyanmisaka RK_U32 cmv_th_rb_cnt1 : 16; 1926*437bfbebSnyanmisaka } st_cmv_rb_num0; 1927*437bfbebSnyanmisaka 1928*437bfbebSnyanmisaka /* 0x0000411c reg4167 */ 1929*437bfbebSnyanmisaka struct { 1930*437bfbebSnyanmisaka RK_U32 cmv_th_rb_cnt2 : 16; 1931*437bfbebSnyanmisaka RK_U32 cmv_th_rb_cnt3 : 16; 1932*437bfbebSnyanmisaka } st_cmv_rb_num1; 1933*437bfbebSnyanmisaka 1934*437bfbebSnyanmisaka /* 0x00004120 reg4168 */ 1935*437bfbebSnyanmisaka struct { 1936*437bfbebSnyanmisaka RK_U32 org_y_r_max_value : 8; 1937*437bfbebSnyanmisaka RK_U32 org_y_r_min_value : 8; 1938*437bfbebSnyanmisaka RK_U32 org_u_g_max_value : 8; 1939*437bfbebSnyanmisaka RK_U32 org_u_g_min_value : 8; 1940*437bfbebSnyanmisaka } st_vsp_org_value0; 1941*437bfbebSnyanmisaka 1942*437bfbebSnyanmisaka /* 0x00004124 reg4169 */ 1943*437bfbebSnyanmisaka struct { 1944*437bfbebSnyanmisaka RK_U32 org_v_b_max_value : 8; 1945*437bfbebSnyanmisaka RK_U32 org_v_b_min_value : 8; 1946*437bfbebSnyanmisaka RK_U32 reserved : 16; 1947*437bfbebSnyanmisaka } st_vsp_org_value1; 1948*437bfbebSnyanmisaka 1949*437bfbebSnyanmisaka /* 0x00004128 reg4170 */ 1950*437bfbebSnyanmisaka struct { 1951*437bfbebSnyanmisaka RK_U32 jpeg_y_r_max_value : 8; 1952*437bfbebSnyanmisaka RK_U32 jpeg_y_r_min_value : 8; 1953*437bfbebSnyanmisaka RK_U32 jpeg_u_g_max_value : 8; 1954*437bfbebSnyanmisaka RK_U32 jpeg_u_g_min_value : 8; 1955*437bfbebSnyanmisaka } st_vsp_jpeg_value0; 1956*437bfbebSnyanmisaka 1957*437bfbebSnyanmisaka /* 0x0000412c reg4171 */ 1958*437bfbebSnyanmisaka struct { 1959*437bfbebSnyanmisaka RK_U32 jpeg_v_b_max_value : 8; 1960*437bfbebSnyanmisaka RK_U32 jpeg_v_b_min_value : 8; 1961*437bfbebSnyanmisaka RK_U32 reserved : 16; 1962*437bfbebSnyanmisaka } st_vsp_jpeg_value1; 1963*437bfbebSnyanmisaka 1964*437bfbebSnyanmisaka /* 0x00004130 reg4172 */ 1965*437bfbebSnyanmisaka RK_U32 dsp_y_sum; 1966*437bfbebSnyanmisaka 1967*437bfbebSnyanmisaka /* 0x00004134 reg4173 */ 1968*437bfbebSnyanmisaka RK_U32 acc_zero_mv; 1969*437bfbebSnyanmisaka 1970*437bfbebSnyanmisaka /* 0x00004138 reg4174 */ 1971*437bfbebSnyanmisaka struct { 1972*437bfbebSnyanmisaka RK_U32 ref1_inter8_num : 23; 1973*437bfbebSnyanmisaka RK_U32 reserved : 9; 1974*437bfbebSnyanmisaka } st_ref1_inter8; 1975*437bfbebSnyanmisaka 1976*437bfbebSnyanmisaka /* 0x0000413c reg4175 */ 1977*437bfbebSnyanmisaka struct { 1978*437bfbebSnyanmisaka RK_U32 acc_block_num : 18; 1979*437bfbebSnyanmisaka RK_U32 reserved : 14; 1980*437bfbebSnyanmisaka } st_blk_avb_sum; 1981*437bfbebSnyanmisaka 1982*437bfbebSnyanmisaka /* 0x00004140 reg4176 */ 1983*437bfbebSnyanmisaka struct { 1984*437bfbebSnyanmisaka RK_U32 num0_point_skin : 15; 1985*437bfbebSnyanmisaka RK_U32 acc_cmplx_num : 17; 1986*437bfbebSnyanmisaka } st_skin_sum0; 1987*437bfbebSnyanmisaka 1988*437bfbebSnyanmisaka /* 0x00004144 reg4177 */ 1989*437bfbebSnyanmisaka struct { 1990*437bfbebSnyanmisaka RK_U32 num1_point_skin : 15; 1991*437bfbebSnyanmisaka RK_U32 acc_cover16_num : 17; 1992*437bfbebSnyanmisaka } st_skin_sum1; 1993*437bfbebSnyanmisaka 1994*437bfbebSnyanmisaka /* 0x00004148 reg4178 */ 1995*437bfbebSnyanmisaka struct { 1996*437bfbebSnyanmisaka RK_U32 num2_point_skin : 15; 1997*437bfbebSnyanmisaka RK_U32 acc_bndry16_num : 17; 1998*437bfbebSnyanmisaka } st_skin_sum2; 1999*437bfbebSnyanmisaka 2000*437bfbebSnyanmisaka /* 0x0000414c reg4179 */ 2001*437bfbebSnyanmisaka RK_U32 num0_grdnt_point_dep0; 2002*437bfbebSnyanmisaka 2003*437bfbebSnyanmisaka /* 0x00004150 reg4180 */ 2004*437bfbebSnyanmisaka RK_U32 num1_grdnt_point_dep0; 2005*437bfbebSnyanmisaka 2006*437bfbebSnyanmisaka /* 0x00004154 reg4181 */ 2007*437bfbebSnyanmisaka RK_U32 num2_grdnt_point_dep0; 2008*437bfbebSnyanmisaka 2009*437bfbebSnyanmisaka /* 0x00004158 reg4182 */ 2010*437bfbebSnyanmisaka struct { 2011*437bfbebSnyanmisaka RK_U32 ref1_inter32_num : 19; 2012*437bfbebSnyanmisaka RK_U32 reserved : 13; 2013*437bfbebSnyanmisaka } st_ref1_inter32; 2014*437bfbebSnyanmisaka 2015*437bfbebSnyanmisaka /* 0x0000415c reg4183 */ 2016*437bfbebSnyanmisaka struct { 2017*437bfbebSnyanmisaka RK_U32 ref1_inter16_num : 21; 2018*437bfbebSnyanmisaka RK_U32 reserved : 11; 2019*437bfbebSnyanmisaka } st_ref1_inter16; 2020*437bfbebSnyanmisaka 2021*437bfbebSnyanmisaka /* 0x4160 - 0x417c */ 2022*437bfbebSnyanmisaka RK_U32 reserved4184_4191[8]; 2023*437bfbebSnyanmisaka 2024*437bfbebSnyanmisaka /* 0x00004180 reg4192 - 0x0000424c reg4243*/ 2025*437bfbebSnyanmisaka RK_U32 st_b8_qp[52]; 2026*437bfbebSnyanmisaka } Vepu511Status; 2027*437bfbebSnyanmisaka 2028*437bfbebSnyanmisaka /* class: dbg/st/axipn */ 2029*437bfbebSnyanmisaka /* 0x00005000 reg5120 - 0x0000523c reg5263 */ 2030*437bfbebSnyanmisaka typedef struct Vepu511Dbg_t { 2031*437bfbebSnyanmisaka /* 0x00005000 reg5120 */ 2032*437bfbebSnyanmisaka struct { 2033*437bfbebSnyanmisaka RK_U32 vsp0_pos_x : 16; 2034*437bfbebSnyanmisaka RK_U32 vsp0_pos_y : 16; 2035*437bfbebSnyanmisaka } st_ppl_pos_vsp0; 2036*437bfbebSnyanmisaka 2037*437bfbebSnyanmisaka /* 0x00005004 reg5121 */ 2038*437bfbebSnyanmisaka struct { 2039*437bfbebSnyanmisaka RK_U32 vsp1_pos_x : 16; 2040*437bfbebSnyanmisaka RK_U32 vsp1_pos_y : 16; 2041*437bfbebSnyanmisaka } st_ppl_pos_vsp1; 2042*437bfbebSnyanmisaka 2043*437bfbebSnyanmisaka /* 0x00005008 reg5122 */ 2044*437bfbebSnyanmisaka struct { 2045*437bfbebSnyanmisaka RK_U32 vsp2_pos_x : 16; 2046*437bfbebSnyanmisaka RK_U32 vsp2_pos_y : 16; 2047*437bfbebSnyanmisaka } st_ppl_pos_vsp2; 2048*437bfbebSnyanmisaka 2049*437bfbebSnyanmisaka /* 0x0000500c reg5123 */ 2050*437bfbebSnyanmisaka struct { 2051*437bfbebSnyanmisaka RK_U32 cme_pos_x : 16; 2052*437bfbebSnyanmisaka RK_U32 cme_pos_y : 16; 2053*437bfbebSnyanmisaka } st_ppl_pos_cme; 2054*437bfbebSnyanmisaka 2055*437bfbebSnyanmisaka /* 0x00005010 reg5124 */ 2056*437bfbebSnyanmisaka struct { 2057*437bfbebSnyanmisaka RK_U32 swin_cmd_x : 16; 2058*437bfbebSnyanmisaka RK_U32 swin_cmd_y : 16; 2059*437bfbebSnyanmisaka } st_ppl_cmd_swin; 2060*437bfbebSnyanmisaka 2061*437bfbebSnyanmisaka /* 0x00005014 reg5125 */ 2062*437bfbebSnyanmisaka struct { 2063*437bfbebSnyanmisaka RK_U32 swin_pos_x : 16; 2064*437bfbebSnyanmisaka RK_U32 swin_pos_y : 16; 2065*437bfbebSnyanmisaka } st_ppl_pos_swin; 2066*437bfbebSnyanmisaka /* 0x00005018 reg5126 */ 2067*437bfbebSnyanmisaka struct { 2068*437bfbebSnyanmisaka RK_U32 pren_pos_x : 16; 2069*437bfbebSnyanmisaka RK_U32 pren_pos_y : 16; 2070*437bfbebSnyanmisaka } st_ppl_pos_pren; 2071*437bfbebSnyanmisaka 2072*437bfbebSnyanmisaka /* 0x0000501c reg5127 */ 2073*437bfbebSnyanmisaka struct { 2074*437bfbebSnyanmisaka RK_U32 rfme_pos_x : 16; 2075*437bfbebSnyanmisaka RK_U32 rfme_pos_y : 16; 2076*437bfbebSnyanmisaka } st_ppl_pos_rfme; 2077*437bfbebSnyanmisaka 2078*437bfbebSnyanmisaka /* 0x00005020 reg5128 */ 2079*437bfbebSnyanmisaka struct { 2080*437bfbebSnyanmisaka RK_U32 rdo_pos_x : 16; 2081*437bfbebSnyanmisaka RK_U32 rdo_pos_y : 16; 2082*437bfbebSnyanmisaka } st_ppl_pos_rdo; 2083*437bfbebSnyanmisaka 2084*437bfbebSnyanmisaka /* 0x00005024 reg5129 */ 2085*437bfbebSnyanmisaka struct { 2086*437bfbebSnyanmisaka RK_U32 lpf_pos_x : 16; 2087*437bfbebSnyanmisaka RK_U32 lpf_pos_y : 16; 2088*437bfbebSnyanmisaka } st_ppl_pos_lpf; 2089*437bfbebSnyanmisaka 2090*437bfbebSnyanmisaka /* 0x00005028 reg5130 */ 2091*437bfbebSnyanmisaka struct { 2092*437bfbebSnyanmisaka RK_U32 etpy_pos_x : 16; 2093*437bfbebSnyanmisaka RK_U32 etpy_pos_y : 16; 2094*437bfbebSnyanmisaka } st_ppl_pos_etpy; 2095*437bfbebSnyanmisaka 2096*437bfbebSnyanmisaka /* 0x0000502c reg5131 */ 2097*437bfbebSnyanmisaka struct { 2098*437bfbebSnyanmisaka RK_U32 jsp0_pos_x : 16; 2099*437bfbebSnyanmisaka RK_U32 jsp0_pos_y : 16; 2100*437bfbebSnyanmisaka } st_ppl_pos_jsp0; 2101*437bfbebSnyanmisaka 2102*437bfbebSnyanmisaka /* 0x00005030 reg5132 */ 2103*437bfbebSnyanmisaka struct { 2104*437bfbebSnyanmisaka RK_U32 jsp1_pos_x : 16; 2105*437bfbebSnyanmisaka RK_U32 jsp1_pos_y : 16; 2106*437bfbebSnyanmisaka } st_ppl_pos_jsp1; 2107*437bfbebSnyanmisaka 2108*437bfbebSnyanmisaka /* 0x00005034 reg5133 */ 2109*437bfbebSnyanmisaka struct { 2110*437bfbebSnyanmisaka RK_U32 jsp2_pos_x : 16; 2111*437bfbebSnyanmisaka RK_U32 jsp2_pos_y : 16; 2112*437bfbebSnyanmisaka } st_ppl_pos_jsp2; 2113*437bfbebSnyanmisaka 2114*437bfbebSnyanmisaka /* 0x00005038 reg5134 */ 2115*437bfbebSnyanmisaka struct { 2116*437bfbebSnyanmisaka RK_U32 jpeg_pos_x : 16; 2117*437bfbebSnyanmisaka RK_U32 jpeg_pos_y : 16; 2118*437bfbebSnyanmisaka } st_ppl_pos_jpeg; 2119*437bfbebSnyanmisaka 2120*437bfbebSnyanmisaka /* 0x0000503c reg5135 */ 2121*437bfbebSnyanmisaka struct { 2122*437bfbebSnyanmisaka RK_U32 vhdr_pos_y : 16; 2123*437bfbebSnyanmisaka RK_U32 jhdr_pos_y : 16; 2124*437bfbebSnyanmisaka } dbg_pos_pp_hdr; 2125*437bfbebSnyanmisaka 2126*437bfbebSnyanmisaka /* 0x00005040 reg5136 */ 2127*437bfbebSnyanmisaka struct { 2128*437bfbebSnyanmisaka RK_U32 reserved : 7; 2129*437bfbebSnyanmisaka RK_U32 vsp0_cmd_flst : 1; 2130*437bfbebSnyanmisaka RK_U32 reserved1 : 24; 2131*437bfbebSnyanmisaka } dbg_ctrl_vsp0; 2132*437bfbebSnyanmisaka 2133*437bfbebSnyanmisaka /* 0x00005044 reg5137 - 0x00005048 reg5138*/ 2134*437bfbebSnyanmisaka RK_U32 reserved[2]; 2135*437bfbebSnyanmisaka 2136*437bfbebSnyanmisaka /* 0x0000504c reg5139 */ 2137*437bfbebSnyanmisaka struct { 2138*437bfbebSnyanmisaka RK_U32 cme_madp_vld : 1; 2139*437bfbebSnyanmisaka RK_U32 cme_madp_rdy0 : 1; 2140*437bfbebSnyanmisaka RK_U32 cme_madp_rdy1 : 1; 2141*437bfbebSnyanmisaka RK_U32 reserved : 1; 2142*437bfbebSnyanmisaka RK_U32 cme_mv16_vld : 1; 2143*437bfbebSnyanmisaka RK_U32 cme_mv16_rdy : 1; 2144*437bfbebSnyanmisaka RK_U32 cme_st_vld : 1; 2145*437bfbebSnyanmisaka RK_U32 cme_st_rdy : 1; 2146*437bfbebSnyanmisaka RK_U32 cme_stat_vld : 1; 2147*437bfbebSnyanmisaka RK_U32 cme_stat_rdy : 1; 2148*437bfbebSnyanmisaka RK_U32 cme_diff_vld : 1; 2149*437bfbebSnyanmisaka RK_U32 cme_diff_rdy : 1; 2150*437bfbebSnyanmisaka RK_U32 cme_cmmv_vld : 1; 2151*437bfbebSnyanmisaka RK_U32 cme_cmmv_rdy : 1; 2152*437bfbebSnyanmisaka RK_U32 cme_smvp_vld : 1; 2153*437bfbebSnyanmisaka RK_U32 cme_smvp_rdy : 1; 2154*437bfbebSnyanmisaka RK_U32 rdo_tmvp_rvld : 1; 2155*437bfbebSnyanmisaka RK_U32 rdo_tmvp_rrdy : 1; 2156*437bfbebSnyanmisaka RK_U32 rdo_tmvp_wvld : 1; 2157*437bfbebSnyanmisaka RK_U32 rdo_tmvp_wrdy : 1; 2158*437bfbebSnyanmisaka RK_U32 rdo_lbf_wvld : 1; 2159*437bfbebSnyanmisaka RK_U32 rdo_lbf_wrdy : 1; 2160*437bfbebSnyanmisaka RK_U32 rdo_lbf_rvld : 1; 2161*437bfbebSnyanmisaka RK_U32 rdo_lbf_rrdy : 1; 2162*437bfbebSnyanmisaka RK_U32 rdo_rfmv_rvld : 1; 2163*437bfbebSnyanmisaka RK_U32 rdo_rfmv_rrdy : 1; 2164*437bfbebSnyanmisaka RK_U32 rdo_hevc_qp_vld : 1; 2165*437bfbebSnyanmisaka RK_U32 rdo_hevc_qp_rdy : 1; 2166*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 2167*437bfbebSnyanmisaka } dbg_hs_ppl; 2168*437bfbebSnyanmisaka 2169*437bfbebSnyanmisaka /* 0x00005050 reg5140 */ 2170*437bfbebSnyanmisaka struct { 2171*437bfbebSnyanmisaka RK_U32 swin_org_err : 1; 2172*437bfbebSnyanmisaka RK_U32 swin_ref_err : 1; 2173*437bfbebSnyanmisaka RK_U32 reserved : 10; 2174*437bfbebSnyanmisaka RK_U32 swin_cmd_vld : 1; 2175*437bfbebSnyanmisaka RK_U32 swin_cmd_rdy : 1; 2176*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 2177*437bfbebSnyanmisaka RK_U32 swin_buff_ptr : 2; 2178*437bfbebSnyanmisaka RK_U32 swin_buff_num0 : 2; 2179*437bfbebSnyanmisaka RK_U32 swin_buff_num1 : 2; 2180*437bfbebSnyanmisaka RK_U32 swin_buff_num2 : 2; 2181*437bfbebSnyanmisaka RK_U32 reserved2 : 4; 2182*437bfbebSnyanmisaka RK_U32 swin_wrk : 1; 2183*437bfbebSnyanmisaka RK_U32 swin_tout : 1; 2184*437bfbebSnyanmisaka RK_U32 reserved3 : 2; 2185*437bfbebSnyanmisaka } dbg_ctrl_swin; 2186*437bfbebSnyanmisaka 2187*437bfbebSnyanmisaka /* 0x00005054 reg5141 */ 2188*437bfbebSnyanmisaka struct { 2189*437bfbebSnyanmisaka RK_U32 pnra_org_err : 1; 2190*437bfbebSnyanmisaka RK_U32 pnra_qp_err : 1; 2191*437bfbebSnyanmisaka RK_U32 pnra_rfme_err : 1; 2192*437bfbebSnyanmisaka RK_U32 reserved : 9; 2193*437bfbebSnyanmisaka RK_U32 pnra_olm_vld : 1; 2194*437bfbebSnyanmisaka RK_U32 pnra_olm_rdy : 1; 2195*437bfbebSnyanmisaka RK_U32 pnra_subj_vld : 1; 2196*437bfbebSnyanmisaka RK_U32 pnra_subj_rdy : 1; 2197*437bfbebSnyanmisaka RK_U32 reserved1 : 8; 2198*437bfbebSnyanmisaka RK_U32 pnra_wrk_ena : 1; 2199*437bfbebSnyanmisaka RK_U32 reserved2 : 3; 2200*437bfbebSnyanmisaka RK_U32 pnra_wrk : 1; 2201*437bfbebSnyanmisaka RK_U32 pnra_tout : 1; 2202*437bfbebSnyanmisaka RK_U32 reserved3 : 2; 2203*437bfbebSnyanmisaka } dbg_ctrl_pren; 2204*437bfbebSnyanmisaka 2205*437bfbebSnyanmisaka /* 0x00005058 reg5142 */ 2206*437bfbebSnyanmisaka struct { 2207*437bfbebSnyanmisaka RK_U32 rfme_org_err : 1; 2208*437bfbebSnyanmisaka RK_U32 rfme_ref_err : 1; 2209*437bfbebSnyanmisaka RK_U32 rfme_cmmv_err : 1; 2210*437bfbebSnyanmisaka RK_U32 rfme_rfmv_err : 1; 2211*437bfbebSnyanmisaka RK_U32 rfme_tmvp_err : 1; 2212*437bfbebSnyanmisaka RK_U32 rfme_qp_err : 1; 2213*437bfbebSnyanmisaka RK_U32 rfme_pnra_err : 1; 2214*437bfbebSnyanmisaka RK_U32 reserved : 5; 2215*437bfbebSnyanmisaka RK_U32 rfme_tmvp_vld : 1; 2216*437bfbebSnyanmisaka RK_U32 rfme_tmvp_rdy : 1; 2217*437bfbebSnyanmisaka RK_U32 rfme_smvp_vld : 1; 2218*437bfbebSnyanmisaka RK_U32 rfme_smvp_rdy : 1; 2219*437bfbebSnyanmisaka RK_U32 rfme_cmmv_vld : 1; 2220*437bfbebSnyanmisaka RK_U32 rfme_cmmv_rdy : 1; 2221*437bfbebSnyanmisaka RK_U32 rfme_rfmv_vld : 1; 2222*437bfbebSnyanmisaka RK_U32 rfme_rfmv_rdy : 1; 2223*437bfbebSnyanmisaka RK_U32 reserved1 : 8; 2224*437bfbebSnyanmisaka RK_U32 rfme_wrk : 1; 2225*437bfbebSnyanmisaka RK_U32 rfme_tout : 1; 2226*437bfbebSnyanmisaka RK_U32 reserved2 : 2; 2227*437bfbebSnyanmisaka } dbg_ctrl_rfme; 2228*437bfbebSnyanmisaka 2229*437bfbebSnyanmisaka /* 0x0000505c reg5143 */ 2230*437bfbebSnyanmisaka struct { 2231*437bfbebSnyanmisaka RK_U32 rdo_org_err : 1; 2232*437bfbebSnyanmisaka RK_U32 rdo_ref_err : 1; 2233*437bfbebSnyanmisaka RK_U32 rdo_inf_err : 1; 2234*437bfbebSnyanmisaka RK_U32 rdo_coef_err : 1; 2235*437bfbebSnyanmisaka RK_U32 rdo_lbfr_err : 1; 2236*437bfbebSnyanmisaka RK_U32 rdo_lbfw_err : 1; 2237*437bfbebSnyanmisaka RK_U32 rdo_madi_lbf_err : 1; 2238*437bfbebSnyanmisaka RK_U32 rdo_tmvp_wr_err : 1; 2239*437bfbebSnyanmisaka RK_U32 rdo_smear_err : 1; 2240*437bfbebSnyanmisaka RK_U32 rdo_mbqp_err : 1; 2241*437bfbebSnyanmisaka RK_U32 rdo_rc_err : 1; 2242*437bfbebSnyanmisaka RK_U32 rdo_ent_err : 1; 2243*437bfbebSnyanmisaka RK_U32 rdo_lpf_err : 1; 2244*437bfbebSnyanmisaka RK_U32 rdo_st_err : 1; 2245*437bfbebSnyanmisaka RK_U32 rdo_tmvp_rd_err : 1; 2246*437bfbebSnyanmisaka RK_U32 rdo_rfmv_err : 1; 2247*437bfbebSnyanmisaka RK_U32 reserved : 12; 2248*437bfbebSnyanmisaka RK_U32 rdo_wrk : 1; 2249*437bfbebSnyanmisaka RK_U32 rdo_tout : 1; 2250*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 2251*437bfbebSnyanmisaka } dbg_ctrl_rdo; 2252*437bfbebSnyanmisaka 2253*437bfbebSnyanmisaka /* 0x00005060 reg5144 */ 2254*437bfbebSnyanmisaka struct { 2255*437bfbebSnyanmisaka RK_U32 lpf_org_err : 1; 2256*437bfbebSnyanmisaka RK_U32 lpf_rdo_err : 1; 2257*437bfbebSnyanmisaka RK_U32 reserved : 10; 2258*437bfbebSnyanmisaka RK_U32 lpf_rcol_vld : 1; 2259*437bfbebSnyanmisaka RK_U32 lpf_rcol_rdy : 1; 2260*437bfbebSnyanmisaka RK_U32 lpf_lbf_wvld : 1; 2261*437bfbebSnyanmisaka RK_U32 lpf_lbf_wrdy : 1; 2262*437bfbebSnyanmisaka RK_U32 lpf_lbf_rvld : 1; 2263*437bfbebSnyanmisaka RK_U32 lpf_lbf_rrdy : 1; 2264*437bfbebSnyanmisaka RK_U32 reserved1 : 6; 2265*437bfbebSnyanmisaka RK_U32 lpf_wrk_ena : 1; 2266*437bfbebSnyanmisaka RK_U32 reserved2 : 3; 2267*437bfbebSnyanmisaka RK_U32 lpf_wrk : 1; 2268*437bfbebSnyanmisaka RK_U32 lpf_tout : 1; 2269*437bfbebSnyanmisaka RK_U32 reserved3 : 2; 2270*437bfbebSnyanmisaka } dbg_ctrl_lpf; 2271*437bfbebSnyanmisaka 2272*437bfbebSnyanmisaka /* 0x00005064 reg5145 */ 2273*437bfbebSnyanmisaka struct { 2274*437bfbebSnyanmisaka RK_U32 reserved : 12; 2275*437bfbebSnyanmisaka RK_U32 etpy_slf_full : 1; 2276*437bfbebSnyanmisaka RK_U32 etpy_bsw_vld : 1; 2277*437bfbebSnyanmisaka RK_U32 etpy_bsw_rdy : 1; 2278*437bfbebSnyanmisaka RK_U32 reserved1 : 9; 2279*437bfbebSnyanmisaka RK_U32 etpy_wrk_ena : 1; 2280*437bfbebSnyanmisaka RK_U32 reserved2 : 3; 2281*437bfbebSnyanmisaka RK_U32 etpy_wrk : 1; 2282*437bfbebSnyanmisaka RK_U32 etpy_tout : 1; 2283*437bfbebSnyanmisaka RK_U32 reserved3 : 2; 2284*437bfbebSnyanmisaka } dbg_ctrl_etpy; 2285*437bfbebSnyanmisaka 2286*437bfbebSnyanmisaka /* 0x00005068 reg5146 */ 2287*437bfbebSnyanmisaka struct { 2288*437bfbebSnyanmisaka RK_U32 jhdr_src_err : 1; 2289*437bfbebSnyanmisaka RK_U32 jhdr_cmd_flst : 1; 2290*437bfbebSnyanmisaka RK_U32 reserved : 2; 2291*437bfbebSnyanmisaka RK_U32 jsp0_org_err : 1; 2292*437bfbebSnyanmisaka RK_U32 jsp0_pp2_err : 1; 2293*437bfbebSnyanmisaka RK_U32 jsp0_paral_err : 1; 2294*437bfbebSnyanmisaka RK_U32 jsp0_cmd_flst : 1; 2295*437bfbebSnyanmisaka RK_U32 jhdr_vld : 1; 2296*437bfbebSnyanmisaka RK_U32 jhdr_rdy : 1; 2297*437bfbebSnyanmisaka RK_U32 jsp0_cmd_vld : 1; 2298*437bfbebSnyanmisaka RK_U32 jsp0_cmd_rdy : 1; 2299*437bfbebSnyanmisaka RK_U32 reserved1 : 12; 2300*437bfbebSnyanmisaka RK_U32 jsp0_wrk_ena : 1; 2301*437bfbebSnyanmisaka RK_U32 reserved2 : 3; 2302*437bfbebSnyanmisaka RK_U32 jsp0_wrk : 1; 2303*437bfbebSnyanmisaka RK_U32 jsp0_tout : 1; 2304*437bfbebSnyanmisaka RK_U32 reserved3 : 2; 2305*437bfbebSnyanmisaka } dbg_ctrl_jsp0; 2306*437bfbebSnyanmisaka 2307*437bfbebSnyanmisaka /* 0x0000506c reg5147 */ 2308*437bfbebSnyanmisaka struct { 2309*437bfbebSnyanmisaka RK_U32 jsp2_org_err : 1; 2310*437bfbebSnyanmisaka RK_U32 reserved : 11; 2311*437bfbebSnyanmisaka RK_U32 jsp2_madi_vld : 1; 2312*437bfbebSnyanmisaka RK_U32 jsp2_madi_rdy : 1; 2313*437bfbebSnyanmisaka RK_U32 reserved1 : 10; 2314*437bfbebSnyanmisaka RK_U32 jsp2_wrk_ena : 1; 2315*437bfbebSnyanmisaka RK_U32 reserved2 : 3; 2316*437bfbebSnyanmisaka RK_U32 jsp2_wrk : 1; 2317*437bfbebSnyanmisaka RK_U32 jsp2_tout : 1; 2318*437bfbebSnyanmisaka RK_U32 reserved3 : 2; 2319*437bfbebSnyanmisaka } dbg_ctrl_jsp2; 2320*437bfbebSnyanmisaka 2321*437bfbebSnyanmisaka /* 0x00005070 reg5148 */ 2322*437bfbebSnyanmisaka struct { 2323*437bfbebSnyanmisaka RK_U32 jpeg_org_err : 1; 2324*437bfbebSnyanmisaka RK_U32 jpeg_st_err : 1; 2325*437bfbebSnyanmisaka RK_U32 reserved : 10; 2326*437bfbebSnyanmisaka RK_U32 jpg_slf_full : 1; 2327*437bfbebSnyanmisaka RK_U32 jpg_bsw_vld : 1; 2328*437bfbebSnyanmisaka RK_U32 jpg_bsw_rdy : 1; 2329*437bfbebSnyanmisaka RK_U32 reserved1 : 9; 2330*437bfbebSnyanmisaka RK_U32 jpeg_wrk_ena : 1; 2331*437bfbebSnyanmisaka RK_U32 reserved2 : 3; 2332*437bfbebSnyanmisaka RK_U32 jpeg_wrk : 1; 2333*437bfbebSnyanmisaka RK_U32 jpeg_tout : 1; 2334*437bfbebSnyanmisaka RK_U32 reserved3 : 2; 2335*437bfbebSnyanmisaka } dbg_ctrl_jpeg; 2336*437bfbebSnyanmisaka 2337*437bfbebSnyanmisaka /* 0x00005074 reg5149 */ 2338*437bfbebSnyanmisaka struct { 2339*437bfbebSnyanmisaka RK_U32 vsp1_org_err : 1; 2340*437bfbebSnyanmisaka RK_U32 reserved : 7; 2341*437bfbebSnyanmisaka RK_U32 vsp1_wrk_ena : 1; 2342*437bfbebSnyanmisaka RK_U32 reserved1 : 3; 2343*437bfbebSnyanmisaka RK_U32 vsp1_wrk : 1; 2344*437bfbebSnyanmisaka RK_U32 vsp1_tout : 1; 2345*437bfbebSnyanmisaka RK_U32 reserved2 : 2; 2346*437bfbebSnyanmisaka RK_U32 jsp1_org_err : 1; 2347*437bfbebSnyanmisaka RK_U32 reserved3 : 7; 2348*437bfbebSnyanmisaka RK_U32 jsp1_wrk_ena : 1; 2349*437bfbebSnyanmisaka RK_U32 reserved4 : 3; 2350*437bfbebSnyanmisaka RK_U32 jsp1_wrk : 1; 2351*437bfbebSnyanmisaka RK_U32 jsp1_tout : 1; 2352*437bfbebSnyanmisaka RK_U32 reserved5 : 2; 2353*437bfbebSnyanmisaka } dbg_ctrl_pp1; 2354*437bfbebSnyanmisaka 2355*437bfbebSnyanmisaka /* 0x00005078 reg5150 */ 2356*437bfbebSnyanmisaka struct { 2357*437bfbebSnyanmisaka RK_U32 pp2_frm_done : 1; 2358*437bfbebSnyanmisaka RK_U32 cime_frm_done : 1; 2359*437bfbebSnyanmisaka RK_U32 jpeg_frm_done : 1; 2360*437bfbebSnyanmisaka RK_U32 rdo_frm_done : 1; 2361*437bfbebSnyanmisaka RK_U32 lpf_frm_done : 1; 2362*437bfbebSnyanmisaka RK_U32 ent_frm_done : 1; 2363*437bfbebSnyanmisaka RK_U32 reserved : 2; 2364*437bfbebSnyanmisaka RK_U32 criw_frm_done : 1; 2365*437bfbebSnyanmisaka RK_U32 meiw_frm_done : 1; 2366*437bfbebSnyanmisaka RK_U32 smiw_frm_done : 1; 2367*437bfbebSnyanmisaka RK_U32 dma_frm_idle : 1; 2368*437bfbebSnyanmisaka RK_U32 reserved1 : 12; 2369*437bfbebSnyanmisaka RK_U32 video_ena : 1; 2370*437bfbebSnyanmisaka RK_U32 jpeg_ena : 1; 2371*437bfbebSnyanmisaka RK_U32 vepu_pp_ena : 1; 2372*437bfbebSnyanmisaka RK_U32 reserved2 : 1; 2373*437bfbebSnyanmisaka RK_U32 frm_wrk : 1; 2374*437bfbebSnyanmisaka RK_U32 frm_tout : 1; 2375*437bfbebSnyanmisaka RK_U32 reserved3 : 2; 2376*437bfbebSnyanmisaka } dbg_tctrl; 2377*437bfbebSnyanmisaka 2378*437bfbebSnyanmisaka /* 0x0000507c reg5151 */ 2379*437bfbebSnyanmisaka struct { 2380*437bfbebSnyanmisaka RK_U32 enc_frm_cur : 3; 2381*437bfbebSnyanmisaka RK_U32 lkt_src_paus : 1; 2382*437bfbebSnyanmisaka RK_U32 lkt_cfg_paus : 1; 2383*437bfbebSnyanmisaka RK_U32 reserved : 27; 2384*437bfbebSnyanmisaka } dbg_frm_task; 2385*437bfbebSnyanmisaka 2386*437bfbebSnyanmisaka /* 0x00005080 reg5152 */ 2387*437bfbebSnyanmisaka struct { 2388*437bfbebSnyanmisaka RK_U32 sli_num : 15; 2389*437bfbebSnyanmisaka RK_U32 reserved : 17; 2390*437bfbebSnyanmisaka } st_sli_num; 2391*437bfbebSnyanmisaka 2392*437bfbebSnyanmisaka /* 0x5084 - 0x50fc */ 2393*437bfbebSnyanmisaka RK_U32 reserved5153_5183[31]; 2394*437bfbebSnyanmisaka 2395*437bfbebSnyanmisaka /* 0x00005100 reg5184 */ 2396*437bfbebSnyanmisaka struct { 2397*437bfbebSnyanmisaka RK_U32 empty_oafifo : 1; 2398*437bfbebSnyanmisaka RK_U32 full_cmd_oafifo : 1; 2399*437bfbebSnyanmisaka RK_U32 full_data_oafifo : 1; 2400*437bfbebSnyanmisaka RK_U32 empty_iafifo : 1; 2401*437bfbebSnyanmisaka 2402*437bfbebSnyanmisaka RK_U32 full_cmd_iafifo : 1; 2403*437bfbebSnyanmisaka RK_U32 full_info_iafifo : 1; 2404*437bfbebSnyanmisaka RK_U32 fbd_brq_st : 4; 2405*437bfbebSnyanmisaka RK_U32 fbd_hdr_vld : 1; 2406*437bfbebSnyanmisaka RK_U32 fbd_bmng_end : 1; 2407*437bfbebSnyanmisaka 2408*437bfbebSnyanmisaka RK_U32 nfbd_req_st : 4; 2409*437bfbebSnyanmisaka RK_U32 acc_axi_cmd : 8; 2410*437bfbebSnyanmisaka RK_U32 reserved : 8; 2411*437bfbebSnyanmisaka } dbg_pp_st; 2412*437bfbebSnyanmisaka 2413*437bfbebSnyanmisaka /* 0x00005104 reg5185 */ 2414*437bfbebSnyanmisaka struct { 2415*437bfbebSnyanmisaka RK_U32 r_ena_lambd : 1; 2416*437bfbebSnyanmisaka RK_U32 r_fst_swinw_end : 1; 2417*437bfbebSnyanmisaka RK_U32 r_swinw_end : 1; 2418*437bfbebSnyanmisaka RK_U32 r_cnt_swinw : 1; 2419*437bfbebSnyanmisaka 2420*437bfbebSnyanmisaka RK_U32 r_dspw_end : 1; 2421*437bfbebSnyanmisaka RK_U32 r_dspw_cnt : 1; 2422*437bfbebSnyanmisaka RK_U32 i_sjgen_work : 1; 2423*437bfbebSnyanmisaka RK_U32 r_end_rspgen : 1; 2424*437bfbebSnyanmisaka 2425*437bfbebSnyanmisaka RK_U32 r_cost_gate : 1; 2426*437bfbebSnyanmisaka RK_U32 r_ds_gate : 1; 2427*437bfbebSnyanmisaka RK_U32 r_mvp_gate : 1; 2428*437bfbebSnyanmisaka RK_U32 i_smvp_arrdy : 1; 2429*437bfbebSnyanmisaka 2430*437bfbebSnyanmisaka RK_U32 i_smvp_arvld : 1; 2431*437bfbebSnyanmisaka RK_U32 i_stptr_wrdy : 1; 2432*437bfbebSnyanmisaka RK_U32 i_stptr_wvld : 1; 2433*437bfbebSnyanmisaka RK_U32 i_rdy_atf : 1; 2434*437bfbebSnyanmisaka 2435*437bfbebSnyanmisaka RK_U32 i_vld_atf : 1; 2436*437bfbebSnyanmisaka RK_U32 i_rdy_bmv16 : 1; 2437*437bfbebSnyanmisaka RK_U32 i_vld_bmv16 : 1; 2438*437bfbebSnyanmisaka RK_U32 i_wr_dsp : 1; 2439*437bfbebSnyanmisaka 2440*437bfbebSnyanmisaka RK_U32 i_rdy_dsp : 1; 2441*437bfbebSnyanmisaka RK_U32 i_vld_dsp : 1; 2442*437bfbebSnyanmisaka RK_U32 r_rdy_org : 1; 2443*437bfbebSnyanmisaka RK_U32 i_vld_org : 1; 2444*437bfbebSnyanmisaka 2445*437bfbebSnyanmisaka RK_U32 i_rdy_state : 1; 2446*437bfbebSnyanmisaka RK_U32 i_vld_state : 1; 2447*437bfbebSnyanmisaka RK_U32 i_rdy_madp : 1; 2448*437bfbebSnyanmisaka RK_U32 i_vld_madp : 1; 2449*437bfbebSnyanmisaka 2450*437bfbebSnyanmisaka RK_U32 i_rdy_diff : 1; 2451*437bfbebSnyanmisaka RK_U32 i_vld_diff : 1; 2452*437bfbebSnyanmisaka RK_U32 reserved : 2; 2453*437bfbebSnyanmisaka } dbg_cime_st; 2454*437bfbebSnyanmisaka 2455*437bfbebSnyanmisaka /* 0x00005108 reg5186 */ 2456*437bfbebSnyanmisaka RK_U32 swin_dbg_inf; 2457*437bfbebSnyanmisaka 2458*437bfbebSnyanmisaka /* 0x0000510c reg5187 */ 2459*437bfbebSnyanmisaka struct { 2460*437bfbebSnyanmisaka RK_U32 bbrq_cmps_left_len2 : 1; 2461*437bfbebSnyanmisaka RK_U32 bbrq_cmps_left_len1 : 1; 2462*437bfbebSnyanmisaka RK_U32 cmps_left_len0 : 1; 2463*437bfbebSnyanmisaka RK_U32 bbrq_rdy2 : 1; 2464*437bfbebSnyanmisaka RK_U32 dcps_vld2 : 1; 2465*437bfbebSnyanmisaka RK_U32 bbrq_rdy1 : 1; 2466*437bfbebSnyanmisaka RK_U32 dcps_vld1 : 1; 2467*437bfbebSnyanmisaka RK_U32 bbrq_rdy0 : 1; 2468*437bfbebSnyanmisaka RK_U32 dcps_vld0 : 1; 2469*437bfbebSnyanmisaka RK_U32 hb_rdy2 : 1; 2470*437bfbebSnyanmisaka RK_U32 bbrq_vld2 : 1; 2471*437bfbebSnyanmisaka RK_U32 hb_rdy1 : 1; 2472*437bfbebSnyanmisaka RK_U32 bbrq_vld1 : 1; 2473*437bfbebSnyanmisaka RK_U32 hb_rdy0 : 1; 2474*437bfbebSnyanmisaka RK_U32 bbrq_vld0 : 1; 2475*437bfbebSnyanmisaka RK_U32 idle_msb2 : 1; 2476*437bfbebSnyanmisaka RK_U32 idle_msb1 : 1; 2477*437bfbebSnyanmisaka RK_U32 idle_msb0 : 1; 2478*437bfbebSnyanmisaka RK_U32 cur_state_dcps : 1; 2479*437bfbebSnyanmisaka RK_U32 cur_state_bbrq : 1; 2480*437bfbebSnyanmisaka RK_U32 cur_state_hb : 1; 2481*437bfbebSnyanmisaka RK_U32 cke_bbrq_dcps : 1; 2482*437bfbebSnyanmisaka RK_U32 cke_dcps : 1; 2483*437bfbebSnyanmisaka RK_U32 cke_bbrq : 1; 2484*437bfbebSnyanmisaka RK_U32 rdy_lwcd_rsp : 1; 2485*437bfbebSnyanmisaka RK_U32 vld_lwcd_rsp : 1; 2486*437bfbebSnyanmisaka RK_U32 rdy_lwcd_req : 1; 2487*437bfbebSnyanmisaka RK_U32 vld_lwcd_req : 1; 2488*437bfbebSnyanmisaka RK_U32 rdy_lwrsp : 1; 2489*437bfbebSnyanmisaka RK_U32 vld_lwrsp : 1; 2490*437bfbebSnyanmisaka RK_U32 rdy_lwreq : 1; 2491*437bfbebSnyanmisaka RK_U32 vld_lwreq : 1; 2492*437bfbebSnyanmisaka } dbg_fbd_hhit0; 2493*437bfbebSnyanmisaka 2494*437bfbebSnyanmisaka /* 0x00005110 reg5188 */ 2495*437bfbebSnyanmisaka RK_U32 rfme_dbg_inf; 2496*437bfbebSnyanmisaka 2497*437bfbebSnyanmisaka /* 0x5114 */ 2498*437bfbebSnyanmisaka RK_U32 reserved_5189; 2499*437bfbebSnyanmisaka 2500*437bfbebSnyanmisaka /* 0x00005118 reg5190 */ 2501*437bfbebSnyanmisaka RK_U32 dbg0_fbd; 2502*437bfbebSnyanmisaka 2503*437bfbebSnyanmisaka /* 0x0000511c reg5191 */ 2504*437bfbebSnyanmisaka RK_U32 dbg1_fbd; 2505*437bfbebSnyanmisaka 2506*437bfbebSnyanmisaka /* 0x00005120 reg5192 */ 2507*437bfbebSnyanmisaka RK_U32 rdo_dbg0; 2508*437bfbebSnyanmisaka 2509*437bfbebSnyanmisaka /* 0x00005124 reg5193 */ 2510*437bfbebSnyanmisaka RK_U32 rdo_dbg1; 2511*437bfbebSnyanmisaka 2512*437bfbebSnyanmisaka /* 0x00005128 reg5194 */ 2513*437bfbebSnyanmisaka struct { 2514*437bfbebSnyanmisaka RK_U32 h264_sh_st_cs : 4; 2515*437bfbebSnyanmisaka RK_U32 rsd_st_cs : 4; 2516*437bfbebSnyanmisaka RK_U32 h264_sd_st_cs : 5; 2517*437bfbebSnyanmisaka RK_U32 etpy_rdy : 1; 2518*437bfbebSnyanmisaka RK_U32 reserved : 18; 2519*437bfbebSnyanmisaka } dbg_etpy; 2520*437bfbebSnyanmisaka 2521*437bfbebSnyanmisaka /* 0x0000512c reg5195 */ 2522*437bfbebSnyanmisaka struct { 2523*437bfbebSnyanmisaka RK_U32 chl_aw_vld : 10; 2524*437bfbebSnyanmisaka RK_U32 chl_aw_rdy : 10; 2525*437bfbebSnyanmisaka RK_U32 aw_vld_arb : 1; 2526*437bfbebSnyanmisaka RK_U32 aw_rdy_arb : 1; 2527*437bfbebSnyanmisaka RK_U32 aw_vld_crosclk : 1; 2528*437bfbebSnyanmisaka RK_U32 aw_rdy_crosclk : 1; 2529*437bfbebSnyanmisaka RK_U32 aw_rdy_mmu : 1; 2530*437bfbebSnyanmisaka RK_U32 aw_vld_mmu : 1; 2531*437bfbebSnyanmisaka RK_U32 aw_rdy_axi : 1; 2532*437bfbebSnyanmisaka RK_U32 aw_vld_axi : 1; 2533*437bfbebSnyanmisaka RK_U32 reserved : 4; 2534*437bfbebSnyanmisaka } dbg_dma_aw; 2535*437bfbebSnyanmisaka 2536*437bfbebSnyanmisaka /* 0x00005130 reg5196 */ 2537*437bfbebSnyanmisaka struct { 2538*437bfbebSnyanmisaka RK_U32 chl_w_vld : 10; 2539*437bfbebSnyanmisaka RK_U32 chl_w_rdy : 10; 2540*437bfbebSnyanmisaka RK_U32 w_vld_arb : 1; 2541*437bfbebSnyanmisaka RK_U32 w_rdy_arb : 1; 2542*437bfbebSnyanmisaka RK_U32 w_vld_crosclk : 1; 2543*437bfbebSnyanmisaka RK_U32 w_rdy_crosclk : 1; 2544*437bfbebSnyanmisaka RK_U32 w_rdy_mmu : 1; 2545*437bfbebSnyanmisaka RK_U32 w_vld_mmu : 1; 2546*437bfbebSnyanmisaka RK_U32 w_rdy_axi : 1; 2547*437bfbebSnyanmisaka RK_U32 w_vld_axi : 1; 2548*437bfbebSnyanmisaka RK_U32 reserved : 4; 2549*437bfbebSnyanmisaka } dbg_dma_w; 2550*437bfbebSnyanmisaka 2551*437bfbebSnyanmisaka /* 0x00005134 reg5197 */ 2552*437bfbebSnyanmisaka struct { 2553*437bfbebSnyanmisaka RK_U32 chl_ar_vld : 9; 2554*437bfbebSnyanmisaka RK_U32 chl_ar_rdy : 9; 2555*437bfbebSnyanmisaka RK_U32 reserved : 2; 2556*437bfbebSnyanmisaka RK_U32 ar_vld_arb : 1; 2557*437bfbebSnyanmisaka RK_U32 ar_rdy_arb : 1; 2558*437bfbebSnyanmisaka RK_U32 ar_vld_crosclk : 1; 2559*437bfbebSnyanmisaka RK_U32 ar_rdy_crosclk : 1; 2560*437bfbebSnyanmisaka RK_U32 ar_rdy_mmu : 1; 2561*437bfbebSnyanmisaka RK_U32 ar_vld_mmu : 1; 2562*437bfbebSnyanmisaka RK_U32 ar_rdy_axi : 1; 2563*437bfbebSnyanmisaka RK_U32 ar_vld_axi : 1; 2564*437bfbebSnyanmisaka RK_U32 reserved1 : 4; 2565*437bfbebSnyanmisaka } dbg_dma_ar; 2566*437bfbebSnyanmisaka 2567*437bfbebSnyanmisaka /* 0x00005138 reg5198 */ 2568*437bfbebSnyanmisaka struct { 2569*437bfbebSnyanmisaka RK_U32 chl_r_vld : 9; 2570*437bfbebSnyanmisaka RK_U32 chl_r_rdy : 9; 2571*437bfbebSnyanmisaka RK_U32 reserved : 2; 2572*437bfbebSnyanmisaka RK_U32 r_vld_arb : 1; 2573*437bfbebSnyanmisaka RK_U32 r_rdy_arb : 1; 2574*437bfbebSnyanmisaka RK_U32 r_vld_crosclk : 1; 2575*437bfbebSnyanmisaka RK_U32 r_rdy_crosclk : 1; 2576*437bfbebSnyanmisaka RK_U32 r_rdy_mmu : 1; 2577*437bfbebSnyanmisaka RK_U32 r_vld_mmu : 1; 2578*437bfbebSnyanmisaka RK_U32 r_rdy_axi : 1; 2579*437bfbebSnyanmisaka RK_U32 r_vld_axi : 1; 2580*437bfbebSnyanmisaka RK_U32 b_rdy_mmu : 1; 2581*437bfbebSnyanmisaka RK_U32 b_vld_mmu : 1; 2582*437bfbebSnyanmisaka RK_U32 b_rdy_axi : 1; 2583*437bfbebSnyanmisaka RK_U32 b_vld_axi : 1; 2584*437bfbebSnyanmisaka } dbg_dma_r; 2585*437bfbebSnyanmisaka 2586*437bfbebSnyanmisaka /* 0x0000513c reg5199 */ 2587*437bfbebSnyanmisaka struct { 2588*437bfbebSnyanmisaka RK_U32 dbg_sclr : 20; 2589*437bfbebSnyanmisaka RK_U32 dbg_arb : 12; 2590*437bfbebSnyanmisaka } dbg_dma_dbg0; 2591*437bfbebSnyanmisaka 2592*437bfbebSnyanmisaka /* 0x00005140 reg5200 */ 2593*437bfbebSnyanmisaka struct { 2594*437bfbebSnyanmisaka RK_U32 bsw_fsm_stus : 4; 2595*437bfbebSnyanmisaka RK_U32 bsw_aw_full : 1; 2596*437bfbebSnyanmisaka RK_U32 bsw_rdy_ent : 1; 2597*437bfbebSnyanmisaka RK_U32 bsw_vld_ent : 1; 2598*437bfbebSnyanmisaka RK_U32 jpg_bsw_stus : 4; 2599*437bfbebSnyanmisaka RK_U32 jpg_aw_full : 1; 2600*437bfbebSnyanmisaka RK_U32 jpg_bsw_rdy : 1; 2601*437bfbebSnyanmisaka RK_U32 jpg_bsw_vld : 1; 2602*437bfbebSnyanmisaka RK_U32 crpw_fsm_stus : 3; 2603*437bfbebSnyanmisaka RK_U32 hdwr_rdy : 1; 2604*437bfbebSnyanmisaka RK_U32 hdwr_vld : 1; 2605*437bfbebSnyanmisaka RK_U32 bdwr_rdy : 1; 2606*437bfbebSnyanmisaka RK_U32 bdwr_vld : 1; 2607*437bfbebSnyanmisaka RK_U32 nfbc_rdy : 1; 2608*437bfbebSnyanmisaka RK_U32 nfbc_vld : 1; 2609*437bfbebSnyanmisaka RK_U32 dsp_fsm_stus : 2; 2610*437bfbebSnyanmisaka RK_U32 dsp_wr_flg : 1; 2611*437bfbebSnyanmisaka RK_U32 dsp_rsy : 1; 2612*437bfbebSnyanmisaka RK_U32 dsp_vld : 1; 2613*437bfbebSnyanmisaka RK_U32 lpfw_fsm_stus : 3; 2614*437bfbebSnyanmisaka RK_U32 reserved : 1; 2615*437bfbebSnyanmisaka } dbg_dma_dbg1; 2616*437bfbebSnyanmisaka 2617*437bfbebSnyanmisaka /* 0x00005144 reg5201 */ 2618*437bfbebSnyanmisaka struct { 2619*437bfbebSnyanmisaka RK_U32 awvld_mdo : 1; 2620*437bfbebSnyanmisaka RK_U32 awrdy_mdo : 1; 2621*437bfbebSnyanmisaka RK_U32 wvld_mdo : 1; 2622*437bfbebSnyanmisaka RK_U32 wrdy_mdo : 1; 2623*437bfbebSnyanmisaka RK_U32 awvld_odo : 1; 2624*437bfbebSnyanmisaka RK_U32 awrdy_odo : 1; 2625*437bfbebSnyanmisaka RK_U32 wvld_odo : 1; 2626*437bfbebSnyanmisaka RK_U32 wrdy_odo : 1; 2627*437bfbebSnyanmisaka RK_U32 awvld_rfmw : 1; 2628*437bfbebSnyanmisaka RK_U32 awrdy_rfmw : 1; 2629*437bfbebSnyanmisaka RK_U32 wvld_rfmw : 1; 2630*437bfbebSnyanmisaka RK_U32 wrdy_rfmw : 1; 2631*437bfbebSnyanmisaka RK_U32 arvld_rfmr : 1; 2632*437bfbebSnyanmisaka RK_U32 arrdy_rfmr : 1; 2633*437bfbebSnyanmisaka RK_U32 rvld_rfmr : 1; 2634*437bfbebSnyanmisaka RK_U32 rrdy_rfmr : 1; 2635*437bfbebSnyanmisaka RK_U32 reserved : 16; 2636*437bfbebSnyanmisaka } dbg_dma_vpp; 2637*437bfbebSnyanmisaka 2638*437bfbebSnyanmisaka /* 0x00005148 reg5202 */ 2639*437bfbebSnyanmisaka struct { 2640*437bfbebSnyanmisaka RK_U32 rdo_st : 20; 2641*437bfbebSnyanmisaka RK_U32 reserved : 12; 2642*437bfbebSnyanmisaka } dbg_rdo_st; 2643*437bfbebSnyanmisaka 2644*437bfbebSnyanmisaka /* 0x0000514c reg5203 */ 2645*437bfbebSnyanmisaka struct { 2646*437bfbebSnyanmisaka RK_U32 lpf_work : 1; 2647*437bfbebSnyanmisaka RK_U32 rdo_par_nrdy : 1; 2648*437bfbebSnyanmisaka RK_U32 rdo_rcn_nrdy : 1; 2649*437bfbebSnyanmisaka RK_U32 lpf_rcn_rdy : 1; 2650*437bfbebSnyanmisaka RK_U32 dblk_work : 1; 2651*437bfbebSnyanmisaka RK_U32 sao_work : 1; 2652*437bfbebSnyanmisaka RK_U32 reserved : 18; 2653*437bfbebSnyanmisaka RK_U32 tile_bdry_read : 1; 2654*437bfbebSnyanmisaka RK_U32 tile_bdry_write : 1; 2655*437bfbebSnyanmisaka RK_U32 tile_bdry_rrdy : 1; 2656*437bfbebSnyanmisaka RK_U32 rdo_read_tile_bdry : 1; 2657*437bfbebSnyanmisaka RK_U32 rdo_write_tile_bdry : 1; 2658*437bfbebSnyanmisaka RK_U32 reserved1 : 3; 2659*437bfbebSnyanmisaka } dbg_lpf; 2660*437bfbebSnyanmisaka 2661*437bfbebSnyanmisaka /* 0x5150 */ 2662*437bfbebSnyanmisaka RK_U32 reserved_5204; 2663*437bfbebSnyanmisaka 2664*437bfbebSnyanmisaka /* 0x00005154 reg5205 */ 2665*437bfbebSnyanmisaka RK_U32 dbg0_cache; 2666*437bfbebSnyanmisaka 2667*437bfbebSnyanmisaka /* 0x00005158 reg5206 */ 2668*437bfbebSnyanmisaka RK_U32 dbg2_fbd; 2669*437bfbebSnyanmisaka 2670*437bfbebSnyanmisaka /* 0x515c */ 2671*437bfbebSnyanmisaka RK_U32 reserved_5207; 2672*437bfbebSnyanmisaka 2673*437bfbebSnyanmisaka /* 0x00005160 reg5208 */ 2674*437bfbebSnyanmisaka struct { 2675*437bfbebSnyanmisaka RK_U32 ebuf_diff_cmd : 8; 2676*437bfbebSnyanmisaka RK_U32 lbuf_lpf_ncnt : 7; 2677*437bfbebSnyanmisaka RK_U32 lbuf_lpf_cien : 1; 2678*437bfbebSnyanmisaka RK_U32 lbuf_rdo_ncnt : 7; 2679*437bfbebSnyanmisaka RK_U32 lbuf_rdo_cien : 1; 2680*437bfbebSnyanmisaka RK_U32 lbuf_tctrl_ncnt : 7; 2681*437bfbebSnyanmisaka RK_U32 lbuf_tctrl_cien : 1; 2682*437bfbebSnyanmisaka } dbg_lbuf0; 2683*437bfbebSnyanmisaka 2684*437bfbebSnyanmisaka /* 0x00005164 reg5209 */ 2685*437bfbebSnyanmisaka struct { 2686*437bfbebSnyanmisaka RK_U32 rvld_ebfr : 1; 2687*437bfbebSnyanmisaka RK_U32 rrdy_ebfr : 1; 2688*437bfbebSnyanmisaka RK_U32 arvld_ebfr : 1; 2689*437bfbebSnyanmisaka RK_U32 arrdy_ebfr : 1; 2690*437bfbebSnyanmisaka RK_U32 wvld_ebfw : 1; 2691*437bfbebSnyanmisaka RK_U32 wrdy_ebfw : 1; 2692*437bfbebSnyanmisaka RK_U32 awvld_ebfw : 1; 2693*437bfbebSnyanmisaka RK_U32 awrdy_ebfw : 1; 2694*437bfbebSnyanmisaka RK_U32 lpf_lbuf_rvld : 1; 2695*437bfbebSnyanmisaka RK_U32 lpf_lbuf_rrdy : 1; 2696*437bfbebSnyanmisaka RK_U32 lpf_lbuf_wvld : 1; 2697*437bfbebSnyanmisaka RK_U32 lpf_lbuf_wrdy : 1; 2698*437bfbebSnyanmisaka RK_U32 rdo_lbuf_rvld : 1; 2699*437bfbebSnyanmisaka RK_U32 rdo_lbuf_rrdy : 1; 2700*437bfbebSnyanmisaka RK_U32 rdo_lbuf_wvld : 1; 2701*437bfbebSnyanmisaka RK_U32 rdo_lbuf_wrdy : 1; 2702*437bfbebSnyanmisaka RK_U32 fme_lbuf_rvld : 1; 2703*437bfbebSnyanmisaka RK_U32 fme_lbuf_rrdy : 1; 2704*437bfbebSnyanmisaka RK_U32 cme_lbuf_rvld : 1; 2705*437bfbebSnyanmisaka RK_U32 cme_lbuf_rrdy : 1; 2706*437bfbebSnyanmisaka RK_U32 smear_lbuf_rvld : 1; 2707*437bfbebSnyanmisaka RK_U32 smear_lbuf_rrdy : 1; 2708*437bfbebSnyanmisaka RK_U32 smear_lbuf_wvld : 1; 2709*437bfbebSnyanmisaka RK_U32 smear_lbuf_wrdy : 1; 2710*437bfbebSnyanmisaka RK_U32 depth_lbuf_wvld : 1; 2711*437bfbebSnyanmisaka RK_U32 depth_lbuf_wrdy : 1; 2712*437bfbebSnyanmisaka RK_U32 rdo_lbufw_flag : 1; 2713*437bfbebSnyanmisaka RK_U32 rdo_lbufr_flag : 1; 2714*437bfbebSnyanmisaka RK_U32 cme_lbufr_flag : 1; 2715*437bfbebSnyanmisaka RK_U32 reserved : 3; 2716*437bfbebSnyanmisaka } dbg_lbuf1; 2717*437bfbebSnyanmisaka 2718*437bfbebSnyanmisaka /* 0x00005168 reg5210 */ 2719*437bfbebSnyanmisaka struct { 2720*437bfbebSnyanmisaka RK_U32 dbg_isp_fcnt : 8; 2721*437bfbebSnyanmisaka RK_U32 dbg_isp_fcyc : 24; 2722*437bfbebSnyanmisaka } dbg_dvbm_isp0; 2723*437bfbebSnyanmisaka 2724*437bfbebSnyanmisaka /* 0x0000516c reg5211 */ 2725*437bfbebSnyanmisaka struct { 2726*437bfbebSnyanmisaka RK_U32 dbg_isp_lcnt : 14; 2727*437bfbebSnyanmisaka RK_U32 reserved : 1; 2728*437bfbebSnyanmisaka RK_U32 dbg_isp_ltgl : 1; 2729*437bfbebSnyanmisaka RK_U32 dbg_isp_fcnt : 8; 2730*437bfbebSnyanmisaka RK_U32 dbg_isp_oflw : 1; 2731*437bfbebSnyanmisaka RK_U32 dbg_isp_ftgl : 1; 2732*437bfbebSnyanmisaka RK_U32 dbg_isp_full : 1; 2733*437bfbebSnyanmisaka RK_U32 dbg_isp_work : 1; 2734*437bfbebSnyanmisaka RK_U32 dbg_isp_lvld : 1; 2735*437bfbebSnyanmisaka RK_U32 dbg_isp_lrdy : 1; 2736*437bfbebSnyanmisaka RK_U32 dbg_isp_fvld : 1; 2737*437bfbebSnyanmisaka RK_U32 dbg_isp_frdy : 1; 2738*437bfbebSnyanmisaka } dbg_dvbm_isp1; 2739*437bfbebSnyanmisaka 2740*437bfbebSnyanmisaka /* 0x00005170 reg5212 */ 2741*437bfbebSnyanmisaka struct { 2742*437bfbebSnyanmisaka RK_U32 dbg_bf0_isp_lcnt : 14; 2743*437bfbebSnyanmisaka RK_U32 dbg_bf0_isp_llst : 1; 2744*437bfbebSnyanmisaka RK_U32 dbg_bf0_isp_sofw : 1; 2745*437bfbebSnyanmisaka RK_U32 dbg_bf0_isp_fcnt : 8; 2746*437bfbebSnyanmisaka RK_U32 dbg_bf0_isp_fsid : 1; 2747*437bfbebSnyanmisaka RK_U32 reserved : 5; 2748*437bfbebSnyanmisaka RK_U32 dbg_bf0_isp_pnt : 1; 2749*437bfbebSnyanmisaka RK_U32 dbg_bf0_vpu_pnt : 1; 2750*437bfbebSnyanmisaka } dbg_dvbm_buf0_inf0; 2751*437bfbebSnyanmisaka 2752*437bfbebSnyanmisaka /* 0x00005174 reg5213 */ 2753*437bfbebSnyanmisaka struct { 2754*437bfbebSnyanmisaka RK_U32 dbg_bf0_src_lcnt : 14; 2755*437bfbebSnyanmisaka RK_U32 dbg_bf0_src_llst : 1; 2756*437bfbebSnyanmisaka RK_U32 reserved : 1; 2757*437bfbebSnyanmisaka RK_U32 dbg_bf0_vpu_lcnt : 14; 2758*437bfbebSnyanmisaka RK_U32 dbg_bf0_vpu_llst : 1; 2759*437bfbebSnyanmisaka RK_U32 dbg_bf0_vpu_vofw : 1; 2760*437bfbebSnyanmisaka } dbg_dvbm_buf0_inf1; 2761*437bfbebSnyanmisaka 2762*437bfbebSnyanmisaka /* 0x00005178 reg5214 */ 2763*437bfbebSnyanmisaka struct { 2764*437bfbebSnyanmisaka RK_U32 dbg_bf1_isp_lcnt : 14; 2765*437bfbebSnyanmisaka RK_U32 dbg_bf1_isp_llst : 1; 2766*437bfbebSnyanmisaka RK_U32 dbg_bf1_isp_sofw : 1; 2767*437bfbebSnyanmisaka RK_U32 dbg_bf1_isp_fcnt : 8; 2768*437bfbebSnyanmisaka RK_U32 dbg_bf1_isp_fsid : 1; 2769*437bfbebSnyanmisaka RK_U32 reserved : 5; 2770*437bfbebSnyanmisaka RK_U32 dbg_bf1_isp_pnt : 1; 2771*437bfbebSnyanmisaka RK_U32 dbg_bf1_vpu_pnt : 1; 2772*437bfbebSnyanmisaka } dbg_dvbm_buf1_inf0; 2773*437bfbebSnyanmisaka 2774*437bfbebSnyanmisaka /* 0x0000517c reg5215 */ 2775*437bfbebSnyanmisaka struct { 2776*437bfbebSnyanmisaka RK_U32 dbg_bf1_src_lcnt : 14; 2777*437bfbebSnyanmisaka RK_U32 dbg_bf1_src_llst : 1; 2778*437bfbebSnyanmisaka RK_U32 reserved : 1; 2779*437bfbebSnyanmisaka RK_U32 dbg_bf1_vpu_lcnt : 14; 2780*437bfbebSnyanmisaka RK_U32 dbg_bf1_vpu_llst : 1; 2781*437bfbebSnyanmisaka RK_U32 dbg_bf1_vpu_vofw : 1; 2782*437bfbebSnyanmisaka } dbg_dvbm_buf1_inf1; 2783*437bfbebSnyanmisaka 2784*437bfbebSnyanmisaka /* 0x00005180 reg5216 */ 2785*437bfbebSnyanmisaka struct { 2786*437bfbebSnyanmisaka RK_U32 dbg_bf2_isp_lcnt : 14; 2787*437bfbebSnyanmisaka RK_U32 dbg_bf2_isp_llst : 1; 2788*437bfbebSnyanmisaka RK_U32 dbg_bf2_isp_sofw : 1; 2789*437bfbebSnyanmisaka RK_U32 dbg_bf2_isp_fcnt : 1; 2790*437bfbebSnyanmisaka RK_U32 dbg_bf2_isp_fsid : 1; 2791*437bfbebSnyanmisaka RK_U32 reserved : 12; 2792*437bfbebSnyanmisaka RK_U32 dbg_bf2_isp_pnt : 1; 2793*437bfbebSnyanmisaka RK_U32 dbg_bf2_vpu_pnt : 1; 2794*437bfbebSnyanmisaka } dbg_dvbm_buf2_inf0; 2795*437bfbebSnyanmisaka 2796*437bfbebSnyanmisaka /* 0x00005184 reg5217 */ 2797*437bfbebSnyanmisaka struct { 2798*437bfbebSnyanmisaka RK_U32 dbg_bf2_src_lcnt : 14; 2799*437bfbebSnyanmisaka RK_U32 dbg_bf2_src_llst : 1; 2800*437bfbebSnyanmisaka RK_U32 reserved : 1; 2801*437bfbebSnyanmisaka RK_U32 dbg_bf2_vpu_lcnt : 14; 2802*437bfbebSnyanmisaka RK_U32 dbg_bf2_vpu_llst : 1; 2803*437bfbebSnyanmisaka RK_U32 dbg_bf2_vpu_vofw : 1; 2804*437bfbebSnyanmisaka } dbg_dvbm_buf2_inf1; 2805*437bfbebSnyanmisaka 2806*437bfbebSnyanmisaka /* 0x00005188 reg5218 */ 2807*437bfbebSnyanmisaka struct { 2808*437bfbebSnyanmisaka RK_U32 dbg_bf3_isp_lcnt : 14; 2809*437bfbebSnyanmisaka RK_U32 dbg_bf3_isp_llst : 1; 2810*437bfbebSnyanmisaka RK_U32 dbg_bf3_isp_sofw : 1; 2811*437bfbebSnyanmisaka RK_U32 dbg_bf3_isp_fcnt : 1; 2812*437bfbebSnyanmisaka RK_U32 dbg_bf3_isp_fsid : 1; 2813*437bfbebSnyanmisaka RK_U32 reserved : 12; 2814*437bfbebSnyanmisaka RK_U32 dbg_bf3_isp_pnt : 1; 2815*437bfbebSnyanmisaka RK_U32 dbg_bf3_vpu_pnt : 1; 2816*437bfbebSnyanmisaka } dbg_dvbm_buf3_inf0; 2817*437bfbebSnyanmisaka 2818*437bfbebSnyanmisaka /* 0x0000518c reg5219 */ 2819*437bfbebSnyanmisaka struct { 2820*437bfbebSnyanmisaka RK_U32 dbg_bf3_src_lcnt : 14; 2821*437bfbebSnyanmisaka RK_U32 dbg_bf3_src_llst : 1; 2822*437bfbebSnyanmisaka RK_U32 reserved : 1; 2823*437bfbebSnyanmisaka RK_U32 dbg_bf3_vpu_lcnt : 14; 2824*437bfbebSnyanmisaka RK_U32 dbg_bf3_vpu_llst : 1; 2825*437bfbebSnyanmisaka RK_U32 dbg_bf3_vpu_vofw : 1; 2826*437bfbebSnyanmisaka } dbg_dvbm_buf3_inf1; 2827*437bfbebSnyanmisaka 2828*437bfbebSnyanmisaka /* 0x00005190 reg5220 */ 2829*437bfbebSnyanmisaka struct { 2830*437bfbebSnyanmisaka RK_U32 dbg_isp_fptr : 3; 2831*437bfbebSnyanmisaka RK_U32 dbg_isp_full : 1; 2832*437bfbebSnyanmisaka RK_U32 dbg_src_fptr : 3; 2833*437bfbebSnyanmisaka RK_U32 reserved : 1; 2834*437bfbebSnyanmisaka RK_U32 dbg_vpu_fptr : 3; 2835*437bfbebSnyanmisaka RK_U32 dbg_vpu_empt : 1; 2836*437bfbebSnyanmisaka RK_U32 dbg_vpu_lvld : 1; 2837*437bfbebSnyanmisaka RK_U32 dbg_vpu_lrdy : 1; 2838*437bfbebSnyanmisaka RK_U32 dbg_vpu_fvld : 1; 2839*437bfbebSnyanmisaka RK_U32 dbg_vpu_frdy : 1; 2840*437bfbebSnyanmisaka RK_U32 dbg_fcnt_misp : 4; 2841*437bfbebSnyanmisaka RK_U32 dbg_fcnt_mvpu : 4; 2842*437bfbebSnyanmisaka RK_U32 dbg_fcnt_sofw : 4; 2843*437bfbebSnyanmisaka RK_U32 dbg_fcnt_vofw : 4; 2844*437bfbebSnyanmisaka } dbg_dvbm_ctrl; 2845*437bfbebSnyanmisaka 2846*437bfbebSnyanmisaka /* 0x5194 - 0x519c */ 2847*437bfbebSnyanmisaka RK_U32 reserved5221_5223[3]; 2848*437bfbebSnyanmisaka 2849*437bfbebSnyanmisaka /* 0x000051a0 reg5224 */ 2850*437bfbebSnyanmisaka RK_U32 dbg_dvbm_buf0_yadr; 2851*437bfbebSnyanmisaka 2852*437bfbebSnyanmisaka /* 0x000051a4 reg5225 */ 2853*437bfbebSnyanmisaka RK_U32 dbg_dvbm_buf0_cadr; 2854*437bfbebSnyanmisaka 2855*437bfbebSnyanmisaka /* 0x000051a8 reg5226 */ 2856*437bfbebSnyanmisaka RK_U32 dbg_dvbm_buf1_yadr; 2857*437bfbebSnyanmisaka 2858*437bfbebSnyanmisaka /* 0x000051ac reg5227 */ 2859*437bfbebSnyanmisaka RK_U32 dbg_dvbm_buf1_cadr; 2860*437bfbebSnyanmisaka 2861*437bfbebSnyanmisaka /* 0x000051b0 reg5228 */ 2862*437bfbebSnyanmisaka RK_U32 dbg_dvbm_buf2_yadr; 2863*437bfbebSnyanmisaka 2864*437bfbebSnyanmisaka /* 0x000051b4 reg5229 */ 2865*437bfbebSnyanmisaka RK_U32 dbg_dvbm_buf2_cadr; 2866*437bfbebSnyanmisaka 2867*437bfbebSnyanmisaka /* 0x000051b8 reg5230 */ 2868*437bfbebSnyanmisaka RK_U32 dbg_dvbm_buf3_yadr; 2869*437bfbebSnyanmisaka 2870*437bfbebSnyanmisaka /* 0x000051bc reg5231 */ 2871*437bfbebSnyanmisaka RK_U32 dbg_dvbm_buf3_cadr; 2872*437bfbebSnyanmisaka 2873*437bfbebSnyanmisaka /* 0x000051c0 reg5232 */ 2874*437bfbebSnyanmisaka struct { 2875*437bfbebSnyanmisaka RK_U32 dchs_rx_cnt : 11; 2876*437bfbebSnyanmisaka RK_U32 dchs_rx_id : 2; 2877*437bfbebSnyanmisaka RK_U32 dchs_rx_en : 1; 2878*437bfbebSnyanmisaka RK_U32 dchs_rx_ack : 1; 2879*437bfbebSnyanmisaka RK_U32 dchs_rx_req : 1; 2880*437bfbebSnyanmisaka RK_U32 dchs_tx_cnt : 11; 2881*437bfbebSnyanmisaka RK_U32 dchs_tx_id : 2; 2882*437bfbebSnyanmisaka RK_U32 dchs_tx_en : 1; 2883*437bfbebSnyanmisaka RK_U32 dchs_tx_ack : 1; 2884*437bfbebSnyanmisaka RK_U32 dchs_tx_req : 1; 2885*437bfbebSnyanmisaka } dbg_dchs_intfc; 2886*437bfbebSnyanmisaka 2887*437bfbebSnyanmisaka /* 0x000051c4 reg5233 */ 2888*437bfbebSnyanmisaka struct { 2889*437bfbebSnyanmisaka RK_U32 lpfw_tx_cnt : 11; 2890*437bfbebSnyanmisaka RK_U32 lpfw_tx_en : 1; 2891*437bfbebSnyanmisaka RK_U32 crpw_tx_cnt : 11; 2892*437bfbebSnyanmisaka RK_U32 crpw_tx_en : 1; 2893*437bfbebSnyanmisaka RK_U32 dual_err_updt : 1; 2894*437bfbebSnyanmisaka RK_U32 dlyc_fifo_oflw : 1; 2895*437bfbebSnyanmisaka RK_U32 dlyc_tx_vld : 1; 2896*437bfbebSnyanmisaka RK_U32 dlyc_tx_rdy : 1; 2897*437bfbebSnyanmisaka RK_U32 dlyc_tx_empty : 1; 2898*437bfbebSnyanmisaka RK_U32 dchs_tx_idle : 1; 2899*437bfbebSnyanmisaka RK_U32 dchs_tx_asy : 1; 2900*437bfbebSnyanmisaka RK_U32 dchs_tx_syn : 1; 2901*437bfbebSnyanmisaka } dbg_dchs_tx_inf0; 2902*437bfbebSnyanmisaka 2903*437bfbebSnyanmisaka /* 0x000051c8 reg5234 */ 2904*437bfbebSnyanmisaka struct { 2905*437bfbebSnyanmisaka RK_U32 criw_tx_cnt : 11; 2906*437bfbebSnyanmisaka RK_U32 criw_tx_en : 1; 2907*437bfbebSnyanmisaka RK_U32 smrw_tx_cnt : 11; 2908*437bfbebSnyanmisaka RK_U32 smrw_tx_en : 1; 2909*437bfbebSnyanmisaka RK_U32 reserved : 8; 2910*437bfbebSnyanmisaka } dbg_dchs_tx_inf1; 2911*437bfbebSnyanmisaka 2912*437bfbebSnyanmisaka /* 0x000051cc reg5235 */ 2913*437bfbebSnyanmisaka struct { 2914*437bfbebSnyanmisaka RK_U32 dual_rx_cnt : 11; 2915*437bfbebSnyanmisaka RK_U32 dual_rx_id : 2; 2916*437bfbebSnyanmisaka RK_U32 dual_rx_en : 1; 2917*437bfbebSnyanmisaka RK_U32 dual_rx_syn : 1; 2918*437bfbebSnyanmisaka RK_U32 dual_rx_lock : 1; 2919*437bfbebSnyanmisaka RK_U32 dual_lpfr_dule : 1; 2920*437bfbebSnyanmisaka RK_U32 dual_cime_dule : 1; 2921*437bfbebSnyanmisaka RK_U32 dual_clomv_dule : 1; 2922*437bfbebSnyanmisaka RK_U32 dual_smear_dule : 1; 2923*437bfbebSnyanmisaka RK_U32 reserved : 12; 2924*437bfbebSnyanmisaka } dbg_dchs_rx_inf0; 2925*437bfbebSnyanmisaka 2926*437bfbebSnyanmisaka /* 0x51d0 - 0x51fc */ 2927*437bfbebSnyanmisaka RK_U32 reserved5236_5247[12]; 2928*437bfbebSnyanmisaka 2929*437bfbebSnyanmisaka /* 0x00005200 reg5248 */ 2930*437bfbebSnyanmisaka RK_U32 frame_cyc; 2931*437bfbebSnyanmisaka 2932*437bfbebSnyanmisaka /* 0x00005204 reg5249 */ 2933*437bfbebSnyanmisaka RK_U32 vsp0_fcyc; 2934*437bfbebSnyanmisaka 2935*437bfbebSnyanmisaka /* 0x00005208 reg5250 */ 2936*437bfbebSnyanmisaka RK_U32 vsp1_fcyc; 2937*437bfbebSnyanmisaka 2938*437bfbebSnyanmisaka /* 0x0000520c reg5251 */ 2939*437bfbebSnyanmisaka RK_U32 vsp2_fcyc; 2940*437bfbebSnyanmisaka 2941*437bfbebSnyanmisaka /* 0x00005210 reg5252 */ 2942*437bfbebSnyanmisaka RK_U32 cme_fcyc; 2943*437bfbebSnyanmisaka 2944*437bfbebSnyanmisaka /* 0x00005214 reg5253 */ 2945*437bfbebSnyanmisaka RK_U32 ldr_fcyc; 2946*437bfbebSnyanmisaka 2947*437bfbebSnyanmisaka /* 0x00005218 reg5254 */ 2948*437bfbebSnyanmisaka RK_U32 rfme_fcyc; 2949*437bfbebSnyanmisaka 2950*437bfbebSnyanmisaka /* 0x0000521c reg5255 */ 2951*437bfbebSnyanmisaka RK_U32 fme_fcyc; 2952*437bfbebSnyanmisaka 2953*437bfbebSnyanmisaka /* 0x00005220 reg5256 */ 2954*437bfbebSnyanmisaka RK_U32 rdo_fcyc; 2955*437bfbebSnyanmisaka 2956*437bfbebSnyanmisaka /* 0x00005224 reg5257 */ 2957*437bfbebSnyanmisaka RK_U32 lpf_fcyc; 2958*437bfbebSnyanmisaka 2959*437bfbebSnyanmisaka /* 0x00005228 reg5258 */ 2960*437bfbebSnyanmisaka RK_U32 etpy_fcyc; 2961*437bfbebSnyanmisaka 2962*437bfbebSnyanmisaka /* 0x522c */ 2963*437bfbebSnyanmisaka RK_U32 reserved_5259; 2964*437bfbebSnyanmisaka 2965*437bfbebSnyanmisaka /* 0x00005230 reg5260 */ 2966*437bfbebSnyanmisaka RK_U32 jsp0_fcyc; 2967*437bfbebSnyanmisaka 2968*437bfbebSnyanmisaka /* 0x00005234 reg5261 */ 2969*437bfbebSnyanmisaka RK_U32 jsp1_fcyc; 2970*437bfbebSnyanmisaka 2971*437bfbebSnyanmisaka /* 0x00005238 reg5262 */ 2972*437bfbebSnyanmisaka RK_U32 jsp2_fcyc; 2973*437bfbebSnyanmisaka 2974*437bfbebSnyanmisaka /* 0x0000523c reg5263 */ 2975*437bfbebSnyanmisaka RK_U32 jpeg_fcyc; 2976*437bfbebSnyanmisaka 2977*437bfbebSnyanmisaka } Vepu511Dbg; 2978*437bfbebSnyanmisaka 2979*437bfbebSnyanmisaka typedef struct Vepu511OsdCfg_t { 2980*437bfbebSnyanmisaka void *reg_base; 2981*437bfbebSnyanmisaka MppDev dev; 2982*437bfbebSnyanmisaka MppEncOSDData *osd_data; 2983*437bfbebSnyanmisaka MppEncOSDData3 *osd_data3; 2984*437bfbebSnyanmisaka } Vepu511OsdCfg; 2985*437bfbebSnyanmisaka 2986*437bfbebSnyanmisaka /* ROI block configuration */ 2987*437bfbebSnyanmisaka typedef struct Vepu511H264RoiBlkCfg { 2988*437bfbebSnyanmisaka RK_U32 qp_adju : 8; 2989*437bfbebSnyanmisaka RK_U32 mdc_adju_inter : 4; 2990*437bfbebSnyanmisaka RK_U32 mdc_adju_skip : 4; 2991*437bfbebSnyanmisaka RK_U32 mdc_adju_intra : 4; 2992*437bfbebSnyanmisaka RK_U32 reserved : 12; 2993*437bfbebSnyanmisaka } Vepu511H264RoiBlkCfg; 2994*437bfbebSnyanmisaka 2995*437bfbebSnyanmisaka typedef struct Vepu511H265RoiBlkCfg { 2996*437bfbebSnyanmisaka RK_U32 qp_adju : 8; 2997*437bfbebSnyanmisaka RK_U32 reserved : 12; 2998*437bfbebSnyanmisaka RK_U32 mdc_adju_inter : 4; 2999*437bfbebSnyanmisaka RK_U32 mdc_adju_skip : 4; 3000*437bfbebSnyanmisaka RK_U32 mdc_adju_intra : 4; 3001*437bfbebSnyanmisaka } Vepu511H265RoiBlkCfg; 3002*437bfbebSnyanmisaka 3003*437bfbebSnyanmisaka typedef struct Vepu511JpegCfg_t { 3004*437bfbebSnyanmisaka MppDev dev; 3005*437bfbebSnyanmisaka void *jpeg_reg_base; 3006*437bfbebSnyanmisaka void *reg_tab; 3007*437bfbebSnyanmisaka void *enc_task; 3008*437bfbebSnyanmisaka void *input_fmt; 3009*437bfbebSnyanmisaka } Vepu511JpegCfg; 3010*437bfbebSnyanmisaka 3011*437bfbebSnyanmisaka #ifdef __cplusplus 3012*437bfbebSnyanmisaka extern "C" { 3013*437bfbebSnyanmisaka #endif 3014*437bfbebSnyanmisaka 3015*437bfbebSnyanmisaka MPP_RET vepu511_set_osd(Vepu511OsdCfg * cfg, Vepu511Osd *osd); 3016*437bfbebSnyanmisaka MPP_RET vepu511_set_roi(Vepu511RoiCfg *roi_reg_base, MppEncROICfg * roi, RK_S32 w, RK_S32 h); 3017*437bfbebSnyanmisaka MPP_RET vepu511_set_jpeg_reg(Vepu511JpegCfg *cfg); 3018*437bfbebSnyanmisaka 3019*437bfbebSnyanmisaka #ifdef __cplusplus 3020*437bfbebSnyanmisaka } 3021*437bfbebSnyanmisaka #endif 3022*437bfbebSnyanmisaka 3023*437bfbebSnyanmisaka #endif /* __VEPU511_COMMON_H__ */ 3024