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 __HAL_VDPU383_VP9D_H__ 7*437bfbebSnyanmisaka #define __HAL_VDPU383_VP9D_H__ 8*437bfbebSnyanmisaka 9*437bfbebSnyanmisaka #include "rk_type.h" 10*437bfbebSnyanmisaka #include "vdpu383_com.h" 11*437bfbebSnyanmisaka 12*437bfbebSnyanmisaka typedef struct Vdpu383RegVp9dParas_t { 13*437bfbebSnyanmisaka /* SWREG64_H26X_PARA */ 14*437bfbebSnyanmisaka RK_U32 reg64_unused_bits; 15*437bfbebSnyanmisaka 16*437bfbebSnyanmisaka /* SWREG65_STREAM_PARAM_SET */ 17*437bfbebSnyanmisaka RK_U32 reg65_strm_start_bit; 18*437bfbebSnyanmisaka 19*437bfbebSnyanmisaka /* SWREG66_STREAM_LEN */ 20*437bfbebSnyanmisaka RK_U32 reg66_stream_len; 21*437bfbebSnyanmisaka 22*437bfbebSnyanmisaka /* SWREG67_GLOBAL_LEN */ 23*437bfbebSnyanmisaka RK_U32 reg67_global_len; 24*437bfbebSnyanmisaka 25*437bfbebSnyanmisaka /* SWREG68_HOR_STRIDE */ 26*437bfbebSnyanmisaka RK_U32 reg68_hor_virstride; 27*437bfbebSnyanmisaka 28*437bfbebSnyanmisaka /* SWREG69_RASTER_UV_HOR_STRIDE */ 29*437bfbebSnyanmisaka RK_U32 reg69_raster_uv_hor_virstride; 30*437bfbebSnyanmisaka 31*437bfbebSnyanmisaka /* SWREG70_Y_STRIDE */ 32*437bfbebSnyanmisaka RK_U32 reg70_y_virstride; 33*437bfbebSnyanmisaka 34*437bfbebSnyanmisaka /* SWREG71_SCL_Y_HOR_VIRSTRIDE */ 35*437bfbebSnyanmisaka RK_U32 reg71_scl_ref_hor_virstride; 36*437bfbebSnyanmisaka 37*437bfbebSnyanmisaka /* SWREG72_SCL_UV_HOR_VIRSTRIDE */ 38*437bfbebSnyanmisaka RK_U32 reg72_scl_ref_raster_uv_hor_virstride; 39*437bfbebSnyanmisaka 40*437bfbebSnyanmisaka /* SWREG73_SCL_Y_VIRSTRIDE */ 41*437bfbebSnyanmisaka RK_U32 reg73_scl_ref_virstride; 42*437bfbebSnyanmisaka 43*437bfbebSnyanmisaka /* SWREG74_FGS_Y_HOR_VIRSTRIDE */ 44*437bfbebSnyanmisaka RK_U32 reg74_fgs_ref_hor_virstride; 45*437bfbebSnyanmisaka 46*437bfbebSnyanmisaka RK_U32 reserve_reg75_79[5]; 47*437bfbebSnyanmisaka 48*437bfbebSnyanmisaka /* SWREG80_ERROR_REF_Y_HOR_VIRSTRIDE */ 49*437bfbebSnyanmisaka RK_U32 reg80_error_ref_hor_virstride; 50*437bfbebSnyanmisaka 51*437bfbebSnyanmisaka /* SWREG81_ERROR_REF_UV_HOR_VIRSTRIDE */ 52*437bfbebSnyanmisaka RK_U32 reg81_error_ref_raster_uv_hor_virstride; 53*437bfbebSnyanmisaka 54*437bfbebSnyanmisaka /* SWREG82_ERROR_REF_Y_VIRSTRIDE */ 55*437bfbebSnyanmisaka RK_U32 reg82_error_ref_virstride; 56*437bfbebSnyanmisaka 57*437bfbebSnyanmisaka /* SWREG83_REF0_Y_HOR_VIRSTRIDE */ 58*437bfbebSnyanmisaka RK_U32 reg83_ref0_hor_virstride; 59*437bfbebSnyanmisaka 60*437bfbebSnyanmisaka /* SWREG84_REF0_UV_HOR_VIRSTRIDE */ 61*437bfbebSnyanmisaka RK_U32 reg84_ref0_raster_uv_hor_virstride; 62*437bfbebSnyanmisaka 63*437bfbebSnyanmisaka /* SWREG85_REF0_Y_VIRSTRIDE */ 64*437bfbebSnyanmisaka RK_U32 reg85_ref0_virstride; 65*437bfbebSnyanmisaka 66*437bfbebSnyanmisaka /* SWREG86_REF1_Y_HOR_VIRSTRIDE */ 67*437bfbebSnyanmisaka RK_U32 reg86_ref1_hor_virstride; 68*437bfbebSnyanmisaka 69*437bfbebSnyanmisaka /* SWREG87_REF1_UV_HOR_VIRSTRIDE */ 70*437bfbebSnyanmisaka RK_U32 reg87_ref1_raster_uv_hor_virstride; 71*437bfbebSnyanmisaka 72*437bfbebSnyanmisaka /* SWREG88_REF1_Y_VIRSTRIDE */ 73*437bfbebSnyanmisaka RK_U32 reg88_ref1_virstride; 74*437bfbebSnyanmisaka 75*437bfbebSnyanmisaka /* SWREG89_REF2_Y_HOR_VIRSTRIDE */ 76*437bfbebSnyanmisaka RK_U32 reg89_ref2_hor_virstride; 77*437bfbebSnyanmisaka 78*437bfbebSnyanmisaka /* SWREG90_REF2_UV_HOR_VIRSTRIDE */ 79*437bfbebSnyanmisaka RK_U32 reg90_ref2_raster_uv_hor_virstride; 80*437bfbebSnyanmisaka 81*437bfbebSnyanmisaka /* SWREG91_REF2_Y_VIRSTRIDE */ 82*437bfbebSnyanmisaka RK_U32 reg91_ref2_virstride; 83*437bfbebSnyanmisaka 84*437bfbebSnyanmisaka /* SWREG92_REF3_Y_HOR_VIRSTRIDE */ 85*437bfbebSnyanmisaka RK_U32 reg92_ref3_hor_virstride; 86*437bfbebSnyanmisaka 87*437bfbebSnyanmisaka /* SWREG93_REF3_UV_HOR_VIRSTRIDE */ 88*437bfbebSnyanmisaka RK_U32 reg93_ref3_raster_uv_hor_virstride; 89*437bfbebSnyanmisaka 90*437bfbebSnyanmisaka /* SWREG94_REF3_Y_VIRSTRIDE */ 91*437bfbebSnyanmisaka RK_U32 reg94_ref3_virstride; 92*437bfbebSnyanmisaka 93*437bfbebSnyanmisaka /* SWREG95_REF4_Y_HOR_VIRSTRIDE */ 94*437bfbebSnyanmisaka RK_U32 reg95_ref4_hor_virstride; 95*437bfbebSnyanmisaka 96*437bfbebSnyanmisaka /* SWREG96_REF4_UV_HOR_VIRSTRIDE */ 97*437bfbebSnyanmisaka RK_U32 reg96_ref4_raster_uv_hor_virstride; 98*437bfbebSnyanmisaka 99*437bfbebSnyanmisaka /* SWREG97_REF4_Y_VIRSTRIDE */ 100*437bfbebSnyanmisaka RK_U32 reg97_ref4_virstride; 101*437bfbebSnyanmisaka 102*437bfbebSnyanmisaka /* SWREG98_REF5_Y_HOR_VIRSTRIDE */ 103*437bfbebSnyanmisaka RK_U32 reg98_ref5_hor_virstride; 104*437bfbebSnyanmisaka 105*437bfbebSnyanmisaka /* SWREG99_REF5_UV_HOR_VIRSTRIDE */ 106*437bfbebSnyanmisaka RK_U32 reg99_ref5_raster_uv_hor_virstride; 107*437bfbebSnyanmisaka 108*437bfbebSnyanmisaka /* SWREG100_REF5_Y_VIRSTRIDE */ 109*437bfbebSnyanmisaka RK_U32 reg100_ref5_virstride; 110*437bfbebSnyanmisaka 111*437bfbebSnyanmisaka /* SWREG101_REF6_Y_HOR_VIRSTRIDE */ 112*437bfbebSnyanmisaka RK_U32 reg101_ref6_hor_virstride; 113*437bfbebSnyanmisaka 114*437bfbebSnyanmisaka /* SWREG102_REF6_UV_HOR_VIRSTRIDE */ 115*437bfbebSnyanmisaka RK_U32 reg102_ref6_raster_uv_hor_virstride; 116*437bfbebSnyanmisaka 117*437bfbebSnyanmisaka /* SWREG103_REF6_Y_VIRSTRIDE */ 118*437bfbebSnyanmisaka RK_U32 reg103_ref6_virstride; 119*437bfbebSnyanmisaka 120*437bfbebSnyanmisaka /* SWREG104_REF7_Y_HOR_VIRSTRIDE */ 121*437bfbebSnyanmisaka RK_U32 reg104_ref7_hor_virstride; 122*437bfbebSnyanmisaka 123*437bfbebSnyanmisaka /* SWREG105_REF7_UV_HOR_VIRSTRIDE */ 124*437bfbebSnyanmisaka RK_U32 reg105_ref7_raster_uv_hor_virstride; 125*437bfbebSnyanmisaka 126*437bfbebSnyanmisaka /* SWREG106_REF7_Y_VIRSTRIDE */ 127*437bfbebSnyanmisaka RK_U32 reg106_ref7_virstride; 128*437bfbebSnyanmisaka 129*437bfbebSnyanmisaka } Vdpu383RegVp9dParas; 130*437bfbebSnyanmisaka 131*437bfbebSnyanmisaka 132*437bfbebSnyanmisaka typedef struct Vdpu383RegVp9dAddr_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_185_REF0_BASE */ 140*437bfbebSnyanmisaka union { 141*437bfbebSnyanmisaka RK_U32 reg170_185_ref_base[16]; 142*437bfbebSnyanmisaka struct { 143*437bfbebSnyanmisaka RK_U32 reg170_180[11]; 144*437bfbebSnyanmisaka RK_U32 reg181_segidlast_base; 145*437bfbebSnyanmisaka RK_U32 reg182_segidcur_base; 146*437bfbebSnyanmisaka RK_U32 reg183_kfprob_base; 147*437bfbebSnyanmisaka RK_U32 reg184_lastprob_base; 148*437bfbebSnyanmisaka RK_U32 reg185_updateprob_base; 149*437bfbebSnyanmisaka }; 150*437bfbebSnyanmisaka }; 151*437bfbebSnyanmisaka 152*437bfbebSnyanmisaka RK_U32 reserve_reg186_191[6]; 153*437bfbebSnyanmisaka 154*437bfbebSnyanmisaka /* SWREG192_PAYLOAD_ST_CUR_BASE */ 155*437bfbebSnyanmisaka RK_U32 reg192_payload_st_cur_base; 156*437bfbebSnyanmisaka 157*437bfbebSnyanmisaka /* SWREG193_FBC_PAYLOAD_OFFSET */ 158*437bfbebSnyanmisaka RK_U32 reg193_fbc_payload_offset; 159*437bfbebSnyanmisaka 160*437bfbebSnyanmisaka /* SWREG194_PAYLOAD_ST_ERROR_REF_BASE */ 161*437bfbebSnyanmisaka RK_U32 reg194_payload_st_error_ref_base; 162*437bfbebSnyanmisaka 163*437bfbebSnyanmisaka /* SWREG195_210_PAYLOAD_ST_REF0_BASE */ 164*437bfbebSnyanmisaka RK_U32 reg195_210_payload_st_ref_base[16]; 165*437bfbebSnyanmisaka 166*437bfbebSnyanmisaka RK_U32 reserve_reg211_215[5]; 167*437bfbebSnyanmisaka 168*437bfbebSnyanmisaka /* SWREG216_COLMV_CUR_BASE */ 169*437bfbebSnyanmisaka RK_U32 reg216_colmv_cur_base; 170*437bfbebSnyanmisaka 171*437bfbebSnyanmisaka /* SWREG217_232_COLMV_REF0_BASE */ 172*437bfbebSnyanmisaka RK_U32 reg217_232_colmv_ref_base[16]; 173*437bfbebSnyanmisaka 174*437bfbebSnyanmisaka } Vdpu383RegVp9dAddr; 175*437bfbebSnyanmisaka 176*437bfbebSnyanmisaka typedef struct Vdpu383Vp9dRegSet_t { 177*437bfbebSnyanmisaka Vdpu383RegVersion reg_version; /* 0 */ 178*437bfbebSnyanmisaka Vdpu383CtrlReg ctrl_regs; /* 8-30 */ 179*437bfbebSnyanmisaka Vdpu383RegCommonAddr common_addr; /* 128-134, 140-161 */ 180*437bfbebSnyanmisaka Vdpu383RegVp9dParas vp9d_paras; /* 64-74, 80-106 */ 181*437bfbebSnyanmisaka Vdpu383RegVp9dAddr vp9d_addrs; /* 168-185, 192-210, 216-232 */ 182*437bfbebSnyanmisaka } Vdpu383Vp9dRegSet; 183*437bfbebSnyanmisaka 184*437bfbebSnyanmisaka #endif /* __HAL_VDPU383_VP9D_H__ */