1*437bfbebSnyanmisaka /* SPDX-License-Identifier: Apache-2.0 OR MIT */ 2*437bfbebSnyanmisaka /* 3*437bfbebSnyanmisaka * Copyright (c) 2024 Rockchip Electronics Co., Ltd. 4*437bfbebSnyanmisaka */ 5*437bfbebSnyanmisaka 6*437bfbebSnyanmisaka #ifndef __VDPU383_AV1D_H__ 7*437bfbebSnyanmisaka #define __VDPU383_AV1D_H__ 8*437bfbebSnyanmisaka 9*437bfbebSnyanmisaka #include "rk_type.h" 10*437bfbebSnyanmisaka #include "vdpu383_com.h" 11*437bfbebSnyanmisaka 12*437bfbebSnyanmisaka 13*437bfbebSnyanmisaka typedef struct Vdpu383RegAv1dParas_t { 14*437bfbebSnyanmisaka /* SWREG64_AV1_PARA */ 15*437bfbebSnyanmisaka RK_U32 reg64_unused_bits; 16*437bfbebSnyanmisaka 17*437bfbebSnyanmisaka /* SWREG65_STREAM_PARAM_SET */ 18*437bfbebSnyanmisaka RK_U32 reg65_strm_start_bit; 19*437bfbebSnyanmisaka 20*437bfbebSnyanmisaka /* SWREG66_STREAM_LEN */ 21*437bfbebSnyanmisaka RK_U32 reg66_stream_len; 22*437bfbebSnyanmisaka 23*437bfbebSnyanmisaka /* SWREG67_GLOBAL_LEN */ 24*437bfbebSnyanmisaka RK_U32 reg67_global_len; 25*437bfbebSnyanmisaka 26*437bfbebSnyanmisaka /* SWREG68_HOR_STRIDE */ 27*437bfbebSnyanmisaka RK_U32 reg68_hor_virstride; 28*437bfbebSnyanmisaka 29*437bfbebSnyanmisaka /* SWREG69_RASTER_UV_HOR_STRIDE */ 30*437bfbebSnyanmisaka RK_U32 reg69_raster_uv_hor_virstride; 31*437bfbebSnyanmisaka 32*437bfbebSnyanmisaka /* SWREG70_Y_STRIDE */ 33*437bfbebSnyanmisaka RK_U32 reg70_y_virstride; 34*437bfbebSnyanmisaka 35*437bfbebSnyanmisaka /* SWREG71_SCL_Y_HOR_VIRSTRIDE */ 36*437bfbebSnyanmisaka RK_U32 reg71_scl_ref_hor_virstride; 37*437bfbebSnyanmisaka 38*437bfbebSnyanmisaka /* SWREG72_SCL_UV_HOR_VIRSTRIDE */ 39*437bfbebSnyanmisaka RK_U32 reg72_scl_ref_raster_uv_hor_virstride; 40*437bfbebSnyanmisaka 41*437bfbebSnyanmisaka /* SWREG73_SCL_Y_VIRSTRIDE */ 42*437bfbebSnyanmisaka RK_U32 reg73_scl_ref_virstride; 43*437bfbebSnyanmisaka 44*437bfbebSnyanmisaka /* SWREG74_FGS_Y_HOR_VIRSTRIDE */ 45*437bfbebSnyanmisaka RK_U32 reg74_fgs_ref_hor_virstride; 46*437bfbebSnyanmisaka 47*437bfbebSnyanmisaka RK_U32 reserve_reg75_79[5]; 48*437bfbebSnyanmisaka 49*437bfbebSnyanmisaka /* SWREG80_ERROR_REF_Y_HOR_VIRSTRIDE */ 50*437bfbebSnyanmisaka RK_U32 reg80_error_ref_hor_virstride; 51*437bfbebSnyanmisaka 52*437bfbebSnyanmisaka /* SWREG81_ERROR_REF_UV_HOR_VIRSTRIDE */ 53*437bfbebSnyanmisaka RK_U32 reg81_error_ref_raster_uv_hor_virstride; 54*437bfbebSnyanmisaka 55*437bfbebSnyanmisaka /* SWREG82_ERROR_REF_Y_VIRSTRIDE */ 56*437bfbebSnyanmisaka RK_U32 reg82_error_ref_virstride; 57*437bfbebSnyanmisaka 58*437bfbebSnyanmisaka /* SWREG83_REF0_Y_HOR_VIRSTRIDE */ 59*437bfbebSnyanmisaka RK_U32 reg83_ref0_hor_virstride; 60*437bfbebSnyanmisaka 61*437bfbebSnyanmisaka /* SWREG84_REF0_UV_HOR_VIRSTRIDE */ 62*437bfbebSnyanmisaka RK_U32 reg84_ref0_raster_uv_hor_virstride; 63*437bfbebSnyanmisaka 64*437bfbebSnyanmisaka /* SWREG85_REF0_Y_VIRSTRIDE */ 65*437bfbebSnyanmisaka RK_U32 reg85_ref0_virstride; 66*437bfbebSnyanmisaka 67*437bfbebSnyanmisaka /* SWREG86_REF1_Y_HOR_VIRSTRIDE */ 68*437bfbebSnyanmisaka RK_U32 reg86_ref1_hor_virstride; 69*437bfbebSnyanmisaka 70*437bfbebSnyanmisaka /* SWREG87_REF1_UV_HOR_VIRSTRIDE */ 71*437bfbebSnyanmisaka RK_U32 reg87_ref1_raster_uv_hor_virstride; 72*437bfbebSnyanmisaka 73*437bfbebSnyanmisaka /* SWREG88_REF1_Y_VIRSTRIDE */ 74*437bfbebSnyanmisaka RK_U32 reg88_ref1_virstride; 75*437bfbebSnyanmisaka 76*437bfbebSnyanmisaka /* SWREG89_REF2_Y_HOR_VIRSTRIDE */ 77*437bfbebSnyanmisaka RK_U32 reg89_ref2_hor_virstride; 78*437bfbebSnyanmisaka 79*437bfbebSnyanmisaka /* SWREG90_REF2_UV_HOR_VIRSTRIDE */ 80*437bfbebSnyanmisaka RK_U32 reg90_ref2_raster_uv_hor_virstride; 81*437bfbebSnyanmisaka 82*437bfbebSnyanmisaka /* SWREG91_REF2_Y_VIRSTRIDE */ 83*437bfbebSnyanmisaka RK_U32 reg91_ref2_virstride; 84*437bfbebSnyanmisaka 85*437bfbebSnyanmisaka /* SWREG92_REF3_Y_HOR_VIRSTRIDE */ 86*437bfbebSnyanmisaka RK_U32 reg92_ref3_hor_virstride; 87*437bfbebSnyanmisaka 88*437bfbebSnyanmisaka /* SWREG93_REF3_UV_HOR_VIRSTRIDE */ 89*437bfbebSnyanmisaka RK_U32 reg93_ref3_raster_uv_hor_virstride; 90*437bfbebSnyanmisaka 91*437bfbebSnyanmisaka /* SWREG94_REF3_Y_VIRSTRIDE */ 92*437bfbebSnyanmisaka RK_U32 reg94_ref3_virstride; 93*437bfbebSnyanmisaka 94*437bfbebSnyanmisaka /* SWREG95_REF4_Y_HOR_VIRSTRIDE */ 95*437bfbebSnyanmisaka RK_U32 reg95_ref4_hor_virstride; 96*437bfbebSnyanmisaka 97*437bfbebSnyanmisaka /* SWREG96_REF4_UV_HOR_VIRSTRIDE */ 98*437bfbebSnyanmisaka RK_U32 reg96_ref4_raster_uv_hor_virstride; 99*437bfbebSnyanmisaka 100*437bfbebSnyanmisaka /* SWREG97_REF4_Y_VIRSTRIDE */ 101*437bfbebSnyanmisaka RK_U32 reg97_ref4_virstride; 102*437bfbebSnyanmisaka 103*437bfbebSnyanmisaka /* SWREG98_REF5_Y_HOR_VIRSTRIDE */ 104*437bfbebSnyanmisaka RK_U32 reg98_ref5_hor_virstride; 105*437bfbebSnyanmisaka 106*437bfbebSnyanmisaka /* SWREG99_REF5_UV_HOR_VIRSTRIDE */ 107*437bfbebSnyanmisaka RK_U32 reg99_ref5_raster_uv_hor_virstride; 108*437bfbebSnyanmisaka 109*437bfbebSnyanmisaka /* SWREG100_REF5_Y_VIRSTRIDE */ 110*437bfbebSnyanmisaka RK_U32 reg100_ref5_virstride; 111*437bfbebSnyanmisaka 112*437bfbebSnyanmisaka /* SWREG101_REF6_Y_HOR_VIRSTRIDE */ 113*437bfbebSnyanmisaka RK_U32 reg101_ref6_hor_virstride; 114*437bfbebSnyanmisaka 115*437bfbebSnyanmisaka /* SWREG102_REF6_UV_HOR_VIRSTRIDE */ 116*437bfbebSnyanmisaka RK_U32 reg102_ref6_raster_uv_hor_virstride; 117*437bfbebSnyanmisaka 118*437bfbebSnyanmisaka /* SWREG103_REF6_Y_VIRSTRIDE */ 119*437bfbebSnyanmisaka RK_U32 reg103_ref6_virstride; 120*437bfbebSnyanmisaka 121*437bfbebSnyanmisaka /* SWREG104_REF7_Y_HOR_VIRSTRIDE */ 122*437bfbebSnyanmisaka RK_U32 reg104_ref7_hor_virstride; 123*437bfbebSnyanmisaka 124*437bfbebSnyanmisaka /* SWREG105_REF7_UV_HOR_VIRSTRIDE */ 125*437bfbebSnyanmisaka RK_U32 reg105_ref7_raster_uv_hor_virstride; 126*437bfbebSnyanmisaka 127*437bfbebSnyanmisaka /* SWREG106_REF7_Y_VIRSTRIDE */ 128*437bfbebSnyanmisaka RK_U32 reg106_ref7_virstride; 129*437bfbebSnyanmisaka 130*437bfbebSnyanmisaka } Vdpu383RegAv1dParas; 131*437bfbebSnyanmisaka 132*437bfbebSnyanmisaka typedef struct Vdpu383RegAv1dAddr_t { 133*437bfbebSnyanmisaka /* SWREG168_DECOUT_BASE */ 134*437bfbebSnyanmisaka RK_U32 reg168_decout_base; 135*437bfbebSnyanmisaka 136*437bfbebSnyanmisaka /* SWREG169_ERROR_REF_BASE */ 137*437bfbebSnyanmisaka RK_U32 reg169_error_ref_base; 138*437bfbebSnyanmisaka 139*437bfbebSnyanmisaka /* SWREG170_REF0_BASE */ 140*437bfbebSnyanmisaka // RK_U32 reg170_refer0_base; 141*437bfbebSnyanmisaka RK_U32 reg170_av1_last_base; 142*437bfbebSnyanmisaka 143*437bfbebSnyanmisaka /* SWREG171_REF1_BASE */ 144*437bfbebSnyanmisaka // RK_U32 reg171_refer1_base; 145*437bfbebSnyanmisaka RK_U32 reg171_av1golden_base; 146*437bfbebSnyanmisaka 147*437bfbebSnyanmisaka /* SWREG172_REF2_BASE */ 148*437bfbebSnyanmisaka // RK_U32 reg172_refer2_base; 149*437bfbebSnyanmisaka RK_U32 reg172_av1alfter_base; 150*437bfbebSnyanmisaka 151*437bfbebSnyanmisaka /* SWREG173_REF3_BASE */ 152*437bfbebSnyanmisaka RK_U32 reg173_refer3_base; 153*437bfbebSnyanmisaka 154*437bfbebSnyanmisaka /* SWREG174_REF4_BASE */ 155*437bfbebSnyanmisaka RK_U32 reg174_refer4_base; 156*437bfbebSnyanmisaka 157*437bfbebSnyanmisaka /* SWREG175_REF5_BASE */ 158*437bfbebSnyanmisaka RK_U32 reg175_refer5_base; 159*437bfbebSnyanmisaka 160*437bfbebSnyanmisaka /* SWREG176_REF6_BASE */ 161*437bfbebSnyanmisaka RK_U32 reg176_refer6_base; 162*437bfbebSnyanmisaka 163*437bfbebSnyanmisaka /* SWREG177_REF7_BASE */ 164*437bfbebSnyanmisaka RK_U32 reg177_refer7_base; 165*437bfbebSnyanmisaka 166*437bfbebSnyanmisaka /* SWREG178_H26X_REF8_BASE */ 167*437bfbebSnyanmisaka // RK_U32 reg178_refer8_base; 168*437bfbebSnyanmisaka RK_U32 reg178_av1_coef_rd_base; 169*437bfbebSnyanmisaka 170*437bfbebSnyanmisaka /* SWREG179_H26X_REF9_BASE */ 171*437bfbebSnyanmisaka // RK_U32 reg179_refer9_base; 172*437bfbebSnyanmisaka RK_U32 reg179_av1_coef_wr_base; 173*437bfbebSnyanmisaka 174*437bfbebSnyanmisaka /* SWREG180_H26X_REF10_BASE */ 175*437bfbebSnyanmisaka RK_U32 reg180_refer10_base; 176*437bfbebSnyanmisaka 177*437bfbebSnyanmisaka /* SWREG181_H26X_REF11_BASE */ 178*437bfbebSnyanmisaka RK_U32 reg181_av1_rd_segid_base; 179*437bfbebSnyanmisaka 180*437bfbebSnyanmisaka /* SWREG182_H26X_REF12_BASE */ 181*437bfbebSnyanmisaka RK_U32 reg182_av1_wr_segid_base; 182*437bfbebSnyanmisaka 183*437bfbebSnyanmisaka /* SWREG183_H26X_REF13_BASE */ 184*437bfbebSnyanmisaka RK_U32 reg183_kf_prob_base; 185*437bfbebSnyanmisaka 186*437bfbebSnyanmisaka /* SWREG184_H26X_REF14_BASE */ 187*437bfbebSnyanmisaka RK_U32 reg184_av1_noncoef_rd_base; 188*437bfbebSnyanmisaka 189*437bfbebSnyanmisaka /* SWREG185_H26X_REF15_BASE */ 190*437bfbebSnyanmisaka RK_U32 reg185_av1_noncoef_wr_base; 191*437bfbebSnyanmisaka 192*437bfbebSnyanmisaka RK_U32 reserve_reg186_191[6]; 193*437bfbebSnyanmisaka 194*437bfbebSnyanmisaka /* SWREG192_PAYLOAD_ST_CUR_BASE */ 195*437bfbebSnyanmisaka RK_U32 reg192_payload_st_cur_base; 196*437bfbebSnyanmisaka 197*437bfbebSnyanmisaka /* SWREG193_FBC_PAYLOAD_OFFSET */ 198*437bfbebSnyanmisaka RK_U32 reg193_fbc_payload_offset; 199*437bfbebSnyanmisaka 200*437bfbebSnyanmisaka /* SWREG194_PAYLOAD_ST_ERROR_REF_BASE */ 201*437bfbebSnyanmisaka RK_U32 reg194_payload_st_error_ref_base; 202*437bfbebSnyanmisaka 203*437bfbebSnyanmisaka /* SWREG195_PAYLOAD_ST_REF0_BASE */ 204*437bfbebSnyanmisaka RK_U32 reg195_payload_st_ref0_base; 205*437bfbebSnyanmisaka 206*437bfbebSnyanmisaka /* SWREG196_PAYLOAD_ST_REF1_BASE */ 207*437bfbebSnyanmisaka RK_U32 reg196_payload_st_ref1_base; 208*437bfbebSnyanmisaka 209*437bfbebSnyanmisaka /* SWREG197_PAYLOAD_ST_REF2_BASE */ 210*437bfbebSnyanmisaka RK_U32 reg197_payload_st_ref2_base; 211*437bfbebSnyanmisaka 212*437bfbebSnyanmisaka /* SWREG198_PAYLOAD_ST_REF3_BASE */ 213*437bfbebSnyanmisaka RK_U32 reg198_payload_st_ref3_base; 214*437bfbebSnyanmisaka 215*437bfbebSnyanmisaka /* SWREG199_PAYLOAD_ST_REF4_BASE */ 216*437bfbebSnyanmisaka RK_U32 reg199_payload_st_ref4_base; 217*437bfbebSnyanmisaka 218*437bfbebSnyanmisaka /* SWREG200_PAYLOAD_ST_REF5_BASE */ 219*437bfbebSnyanmisaka RK_U32 reg200_payload_st_ref5_base; 220*437bfbebSnyanmisaka 221*437bfbebSnyanmisaka /* SWREG201_PAYLOAD_ST_REF6_BASE */ 222*437bfbebSnyanmisaka RK_U32 reg201_payload_st_ref6_base; 223*437bfbebSnyanmisaka 224*437bfbebSnyanmisaka /* SWREG202_PAYLOAD_ST_REF7_BASE */ 225*437bfbebSnyanmisaka RK_U32 reg202_payload_st_ref7_base; 226*437bfbebSnyanmisaka 227*437bfbebSnyanmisaka /* SWREG203_PAYLOAD_ST_REF8_BASE */ 228*437bfbebSnyanmisaka RK_U32 reg203_payload_st_ref8_base; 229*437bfbebSnyanmisaka 230*437bfbebSnyanmisaka /* SWREG204_PAYLOAD_ST_REF9_BASE */ 231*437bfbebSnyanmisaka RK_U32 reg204_payload_st_ref9_base; 232*437bfbebSnyanmisaka 233*437bfbebSnyanmisaka /* SWREG205_PAYLOAD_ST_REF10_BASE */ 234*437bfbebSnyanmisaka RK_U32 reg205_payload_st_ref10_base; 235*437bfbebSnyanmisaka 236*437bfbebSnyanmisaka /* SWREG206_PAYLOAD_ST_REF11_BASE */ 237*437bfbebSnyanmisaka RK_U32 reg206_payload_st_ref11_base; 238*437bfbebSnyanmisaka 239*437bfbebSnyanmisaka /* SWREG207_PAYLOAD_ST_REF12_BASE */ 240*437bfbebSnyanmisaka RK_U32 reg207_payload_st_ref12_base; 241*437bfbebSnyanmisaka 242*437bfbebSnyanmisaka /* SWREG208_PAYLOAD_ST_REF13_BASE */ 243*437bfbebSnyanmisaka RK_U32 reg208_payload_st_ref13_base; 244*437bfbebSnyanmisaka 245*437bfbebSnyanmisaka /* SWREG209_PAYLOAD_ST_REF14_BASE */ 246*437bfbebSnyanmisaka RK_U32 reg209_payload_st_ref14_base; 247*437bfbebSnyanmisaka 248*437bfbebSnyanmisaka /* SWREG210_PAYLOAD_ST_REF15_BASE */ 249*437bfbebSnyanmisaka RK_U32 reg210_payload_st_ref15_base; 250*437bfbebSnyanmisaka 251*437bfbebSnyanmisaka RK_U32 reserve_reg211_215[5]; 252*437bfbebSnyanmisaka 253*437bfbebSnyanmisaka /* SWREG216_COLMV_CUR_BASE */ 254*437bfbebSnyanmisaka RK_U32 reg216_colmv_cur_base; 255*437bfbebSnyanmisaka 256*437bfbebSnyanmisaka /* SWREG217_232_COLMV_REF0_BASE */ 257*437bfbebSnyanmisaka RK_U32 reg217_232_colmv_ref_base[16]; 258*437bfbebSnyanmisaka } Vdpu383RegAv1dAddr; 259*437bfbebSnyanmisaka 260*437bfbebSnyanmisaka typedef struct Vdpu383Av1dRegSet_t { 261*437bfbebSnyanmisaka Vdpu383RegVersion reg_version; 262*437bfbebSnyanmisaka Vdpu383CtrlReg ctrl_regs; /* 8-30 */ 263*437bfbebSnyanmisaka Vdpu383RegCommonAddr common_addr; /* 128-134, 140-161 */ 264*437bfbebSnyanmisaka Vdpu383RegAv1dParas av1d_paras; /* 64-106 */ 265*437bfbebSnyanmisaka Vdpu383RegAv1dAddr av1d_addrs; /* 168-185(ref) */ 266*437bfbebSnyanmisaka /* 192-210(fbc) */ 267*437bfbebSnyanmisaka /* 216-232(col mv) */ 268*437bfbebSnyanmisaka } Vdpu383Av1dRegSet; 269*437bfbebSnyanmisaka 270*437bfbebSnyanmisaka #endif /* __VDPU383_AV1D_H__ */ 271