xref: /rockchip-linux_mpp/mpp/hal/rkdec/inc/vdpu383_h264d.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
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