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