xref: /rockchip-linux_mpp/mpp/hal/rkdec/inc/vdpu383_av1d.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_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