xref: /rockchip-linux_mpp/mpp/hal/rkdec/h264d/hal_h264d_vdpu2_reg.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1*437bfbebSnyanmisaka /*
2*437bfbebSnyanmisaka  * Copyright 2015 Rockchip Electronics Co. LTD
3*437bfbebSnyanmisaka  *
4*437bfbebSnyanmisaka  * Licensed under the Apache License, Version 2.0 (the "License");
5*437bfbebSnyanmisaka  * you may not use this file except in compliance with the License.
6*437bfbebSnyanmisaka  * You may obtain a copy of the License at
7*437bfbebSnyanmisaka  *
8*437bfbebSnyanmisaka  *      http://www.apache.org/licenses/LICENSE-2.0
9*437bfbebSnyanmisaka  *
10*437bfbebSnyanmisaka  * Unless required by applicable law or agreed to in writing, software
11*437bfbebSnyanmisaka  * distributed under the License is distributed on an "AS IS" BASIS,
12*437bfbebSnyanmisaka  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*437bfbebSnyanmisaka  * See the License for the specific language governing permissions and
14*437bfbebSnyanmisaka  * limitations under the License.
15*437bfbebSnyanmisaka  */
16*437bfbebSnyanmisaka 
17*437bfbebSnyanmisaka #ifndef __HAL_H264D_VDPU2_REG_TBL_H__
18*437bfbebSnyanmisaka #define __HAL_H264D_VDPU2_REG_TBL_H__
19*437bfbebSnyanmisaka 
20*437bfbebSnyanmisaka #include "rk_type.h"
21*437bfbebSnyanmisaka 
22*437bfbebSnyanmisaka /* Number registers for the decoder */
23*437bfbebSnyanmisaka #define DEC_VDPU_REGISTERS          159
24*437bfbebSnyanmisaka 
25*437bfbebSnyanmisaka typedef struct {
26*437bfbebSnyanmisaka     RK_U32 sw00_49[50];
27*437bfbebSnyanmisaka     struct {
28*437bfbebSnyanmisaka         RK_U32 dec_tiled_msb : 1;
29*437bfbebSnyanmisaka         RK_U32 adtion_latency : 6;
30*437bfbebSnyanmisaka         RK_U32 dec_fixed_quant : 1;
31*437bfbebSnyanmisaka         RK_U32 dblk_flt_dis : 1;
32*437bfbebSnyanmisaka         RK_U32 skip_sel : 1;
33*437bfbebSnyanmisaka         RK_U32 dec_ascmd0_dis : 1;
34*437bfbebSnyanmisaka         RK_U32 adv_pref_dis : 1;
35*437bfbebSnyanmisaka         RK_U32 dec_tiled_lsb : 1;
36*437bfbebSnyanmisaka         RK_U32 refbuf_thrd : 12;
37*437bfbebSnyanmisaka         RK_U32 refbuf_pid : 5;
38*437bfbebSnyanmisaka         RK_U32 reverse0 : 2;
39*437bfbebSnyanmisaka     } sw50;
40*437bfbebSnyanmisaka     struct {
41*437bfbebSnyanmisaka         RK_U32 stream_len : 24;
42*437bfbebSnyanmisaka         RK_U32 stream_len_ext : 1;
43*437bfbebSnyanmisaka         RK_U32 qp_init_val : 6;
44*437bfbebSnyanmisaka         RK_U32 reverse0 : 1;
45*437bfbebSnyanmisaka     } sw51;
46*437bfbebSnyanmisaka     struct {
47*437bfbebSnyanmisaka         RK_U32 ydim_mbst : 8;
48*437bfbebSnyanmisaka         RK_U32 xdim_mbst : 9;
49*437bfbebSnyanmisaka         RK_U32 adv_pref_thrd : 14;
50*437bfbebSnyanmisaka         RK_U32 reverse0 : 1;
51*437bfbebSnyanmisaka     } sw52;
52*437bfbebSnyanmisaka     struct {
53*437bfbebSnyanmisaka         RK_U32 dec_fmt_sel : 4;
54*437bfbebSnyanmisaka         RK_U32 reverse0 : 28;
55*437bfbebSnyanmisaka     } sw53;
56*437bfbebSnyanmisaka     struct {
57*437bfbebSnyanmisaka         RK_U32 dec_in_endian : 1;
58*437bfbebSnyanmisaka         RK_U32 dec_out_endian : 1;
59*437bfbebSnyanmisaka         RK_U32 dec_in_wordsp : 1;
60*437bfbebSnyanmisaka         RK_U32 dec_out_wordsp : 1;
61*437bfbebSnyanmisaka         RK_U32 dec_strm_wordsp : 1;
62*437bfbebSnyanmisaka         RK_U32 dec_strendian_e : 1;
63*437bfbebSnyanmisaka         RK_U32 reverse0 : 26;
64*437bfbebSnyanmisaka     } sw54;
65*437bfbebSnyanmisaka     struct {
66*437bfbebSnyanmisaka         RK_U32 dec_irq : 1;
67*437bfbebSnyanmisaka         RK_U32 dec_irq_dis : 1;
68*437bfbebSnyanmisaka         RK_U32 reverse0 : 2;
69*437bfbebSnyanmisaka         RK_U32 dec_rdy_sts : 1;
70*437bfbebSnyanmisaka         RK_U32 pp_bus_sts : 1;
71*437bfbebSnyanmisaka         RK_U32 buf_emt_sts : 1;
72*437bfbebSnyanmisaka         RK_U32 reverse1 : 1;
73*437bfbebSnyanmisaka         RK_U32 aso_det_sts : 1;
74*437bfbebSnyanmisaka         RK_U32 slice_det_sts : 1;
75*437bfbebSnyanmisaka         RK_U32 bslice_det_sts : 1;
76*437bfbebSnyanmisaka         RK_U32 reverse2 : 1;
77*437bfbebSnyanmisaka         RK_U32 error_det_sts : 1;
78*437bfbebSnyanmisaka         RK_U32 timeout_det_sts : 1;
79*437bfbebSnyanmisaka         RK_U32 reverse3 : 18;
80*437bfbebSnyanmisaka     } sw55;
81*437bfbebSnyanmisaka     struct {
82*437bfbebSnyanmisaka         RK_U32 dec_axi_id_rd : 8;
83*437bfbebSnyanmisaka         RK_U32 dec_axi_id_wr : 8;
84*437bfbebSnyanmisaka         RK_U32 dec_max_burlen : 5;
85*437bfbebSnyanmisaka         RK_U32 bus_pos_sel : 1;
86*437bfbebSnyanmisaka         RK_U32 dec_data_discd_en : 1;
87*437bfbebSnyanmisaka         RK_U32 axi_sel : 1;
88*437bfbebSnyanmisaka         RK_U32 reverse0 : 8;
89*437bfbebSnyanmisaka     } sw56;
90*437bfbebSnyanmisaka     struct {
91*437bfbebSnyanmisaka         RK_U32 dec_st_work : 1;
92*437bfbebSnyanmisaka         RK_U32 refpic_buf2_en : 1;
93*437bfbebSnyanmisaka         RK_U32 dec_wr_extmen_dis : 1;
94*437bfbebSnyanmisaka         RK_U32 reverse0 : 1;
95*437bfbebSnyanmisaka         RK_U32 dec_clkgate_en : 1;
96*437bfbebSnyanmisaka         RK_U32 timeout_sts_en : 1;
97*437bfbebSnyanmisaka         RK_U32 rd_cnt_tab_en : 1;
98*437bfbebSnyanmisaka         RK_U32 sequ_mbaff_en : 1;
99*437bfbebSnyanmisaka         RK_U32 first_reftop_en : 1;
100*437bfbebSnyanmisaka         RK_U32 reftop_en : 1;
101*437bfbebSnyanmisaka         RK_U32 dmmv_wr_en : 1;
102*437bfbebSnyanmisaka         RK_U32 sorspa_en : 1;
103*437bfbebSnyanmisaka         RK_U32 fwd_refpic_mode_sel : 1;
104*437bfbebSnyanmisaka         RK_U32 pic_decfield_sel : 1;
105*437bfbebSnyanmisaka         RK_U32 pic_type_sel0 : 1;
106*437bfbebSnyanmisaka         RK_U32 pic_type_sel1 : 1;
107*437bfbebSnyanmisaka         RK_U32 curpic_stru_sel : 1;
108*437bfbebSnyanmisaka         RK_U32 curpic_code_sel : 1;
109*437bfbebSnyanmisaka         RK_U32 prog_jpeg_en : 1;
110*437bfbebSnyanmisaka         RK_U32 divx3_en : 1;
111*437bfbebSnyanmisaka         RK_U32 rlc_mode_en : 1;
112*437bfbebSnyanmisaka         RK_U32 addit_ch_fmt_wen : 1;
113*437bfbebSnyanmisaka         RK_U32 st_code_exit : 1;
114*437bfbebSnyanmisaka         RK_U32 reverse1 : 2;
115*437bfbebSnyanmisaka         RK_U32 inter_dblspeed : 1;
116*437bfbebSnyanmisaka         RK_U32 intra_dblspeed : 1;
117*437bfbebSnyanmisaka         RK_U32 intra_dbl3t : 1;
118*437bfbebSnyanmisaka         RK_U32 pref_sigchan : 1;
119*437bfbebSnyanmisaka         RK_U32 cache_en : 1;
120*437bfbebSnyanmisaka         RK_U32 reverse2 : 1;
121*437bfbebSnyanmisaka         RK_U32 dec_timeout_mode : 1;
122*437bfbebSnyanmisaka     } sw57;
123*437bfbebSnyanmisaka     struct {
124*437bfbebSnyanmisaka         RK_U32 soft_rst : 1;
125*437bfbebSnyanmisaka         RK_U32 reverse0 : 31;
126*437bfbebSnyanmisaka     } sw58;
127*437bfbebSnyanmisaka     struct {
128*437bfbebSnyanmisaka         RK_U32 reverse0 : 2;
129*437bfbebSnyanmisaka         RK_U32 pflt_set0_tap2 : 10;
130*437bfbebSnyanmisaka         RK_U32 pflt_set0_tap1 : 10;
131*437bfbebSnyanmisaka         RK_U32 pflt_set0_tap0 : 10;
132*437bfbebSnyanmisaka     } sw59;
133*437bfbebSnyanmisaka     struct {
134*437bfbebSnyanmisaka         RK_U32 addit_ch_st_adr : 32;
135*437bfbebSnyanmisaka     } sw60;
136*437bfbebSnyanmisaka     struct {
137*437bfbebSnyanmisaka         RK_U32 qtable_st_adr : 32;
138*437bfbebSnyanmisaka     } sw61;
139*437bfbebSnyanmisaka     struct {
140*437bfbebSnyanmisaka         RK_U32 dmmv_st_adr : 32;
141*437bfbebSnyanmisaka     } sw62;
142*437bfbebSnyanmisaka     struct {
143*437bfbebSnyanmisaka         RK_U32 dec_out_st_adr : 32;
144*437bfbebSnyanmisaka     } sw63;
145*437bfbebSnyanmisaka     struct {
146*437bfbebSnyanmisaka         RK_U32 rlc_vlc_st_adr : 32;
147*437bfbebSnyanmisaka     } sw64;
148*437bfbebSnyanmisaka     struct {
149*437bfbebSnyanmisaka         RK_U32 refbuf_y_offset : 9;
150*437bfbebSnyanmisaka         RK_U32 reserve0 : 3;
151*437bfbebSnyanmisaka         RK_U32 refbuf_fildpar_mode_e : 1;
152*437bfbebSnyanmisaka         RK_U32 refbuf_idcal_e : 1;
153*437bfbebSnyanmisaka         RK_U32 refbuf_picid : 5;
154*437bfbebSnyanmisaka         RK_U32 refbuf_thr_level : 12;
155*437bfbebSnyanmisaka         RK_U32 refbuf_e : 1;
156*437bfbebSnyanmisaka     } sw65;
157*437bfbebSnyanmisaka     RK_U32 sw66;
158*437bfbebSnyanmisaka     RK_U32 sw67;
159*437bfbebSnyanmisaka     struct {
160*437bfbebSnyanmisaka         RK_U32 refbuf_sum_bot : 16;
161*437bfbebSnyanmisaka         RK_U32 refbuf_sum_top : 16;
162*437bfbebSnyanmisaka     } sw68;
163*437bfbebSnyanmisaka     struct {
164*437bfbebSnyanmisaka         RK_U32 luma_sum_intra : 16;
165*437bfbebSnyanmisaka         RK_U32 refbuf_sum_hit : 16;
166*437bfbebSnyanmisaka     } sw69;
167*437bfbebSnyanmisaka     struct {
168*437bfbebSnyanmisaka         RK_U32 ycomp_mv_sum : 22;
169*437bfbebSnyanmisaka         RK_U32 reserve0 : 10;
170*437bfbebSnyanmisaka     } sw70;
171*437bfbebSnyanmisaka     RK_U32 sw71;
172*437bfbebSnyanmisaka     RK_U32 sw72;
173*437bfbebSnyanmisaka     RK_U32 sw73;
174*437bfbebSnyanmisaka     struct {
175*437bfbebSnyanmisaka         RK_U32 init_reflist_pf4 : 5;
176*437bfbebSnyanmisaka         RK_U32 init_reflist_pf5 : 5;
177*437bfbebSnyanmisaka         RK_U32 init_reflist_pf6 : 5;
178*437bfbebSnyanmisaka         RK_U32 init_reflist_pf7 : 5;
179*437bfbebSnyanmisaka         RK_U32 init_reflist_pf8 : 5;
180*437bfbebSnyanmisaka         RK_U32 init_reflist_pf9 : 5;
181*437bfbebSnyanmisaka         RK_U32 reverse0 : 2;
182*437bfbebSnyanmisaka     } sw74;
183*437bfbebSnyanmisaka     struct {
184*437bfbebSnyanmisaka         RK_U32 init_reflist_pf10 : 5;
185*437bfbebSnyanmisaka         RK_U32 init_reflist_pf11 : 5;
186*437bfbebSnyanmisaka         RK_U32 init_reflist_pf12 : 5;
187*437bfbebSnyanmisaka         RK_U32 init_reflist_pf13 : 5;
188*437bfbebSnyanmisaka         RK_U32 init_reflist_pf14 : 5;
189*437bfbebSnyanmisaka         RK_U32 init_reflist_pf15 : 5;
190*437bfbebSnyanmisaka         RK_U32 reverse0 : 2;
191*437bfbebSnyanmisaka     } sw75;
192*437bfbebSnyanmisaka     struct {
193*437bfbebSnyanmisaka         RK_U32 num_ref_idx0 : 16;
194*437bfbebSnyanmisaka         RK_U32 num_ref_idx1 : 16;
195*437bfbebSnyanmisaka     } sw76;
196*437bfbebSnyanmisaka     struct {
197*437bfbebSnyanmisaka         RK_U32 num_ref_idx2 : 16;
198*437bfbebSnyanmisaka         RK_U32 num_ref_idx3 : 16;
199*437bfbebSnyanmisaka     } sw77;
200*437bfbebSnyanmisaka     struct {
201*437bfbebSnyanmisaka         RK_U32 num_ref_idx4 : 16;
202*437bfbebSnyanmisaka         RK_U32 num_ref_idx5 : 16;
203*437bfbebSnyanmisaka     } sw78;
204*437bfbebSnyanmisaka     struct {
205*437bfbebSnyanmisaka         RK_U32 num_ref_idx6 : 16;
206*437bfbebSnyanmisaka         RK_U32 num_ref_idx7 : 16;
207*437bfbebSnyanmisaka     } sw79;
208*437bfbebSnyanmisaka     struct {
209*437bfbebSnyanmisaka         RK_U32 num_ref_idx8 : 16;
210*437bfbebSnyanmisaka         RK_U32 num_ref_idx9 : 16;
211*437bfbebSnyanmisaka     } sw80;
212*437bfbebSnyanmisaka     struct {
213*437bfbebSnyanmisaka         RK_U32 num_ref_idx10 : 16;
214*437bfbebSnyanmisaka         RK_U32 num_ref_idx11 : 16;
215*437bfbebSnyanmisaka     } sw81;
216*437bfbebSnyanmisaka     struct {
217*437bfbebSnyanmisaka         RK_U32 num_ref_idx12 : 16;
218*437bfbebSnyanmisaka         RK_U32 num_ref_idx13 : 16;
219*437bfbebSnyanmisaka     } sw82;
220*437bfbebSnyanmisaka     struct {
221*437bfbebSnyanmisaka         RK_U32 num_ref_idx14 : 16;
222*437bfbebSnyanmisaka         RK_U32 num_ref_idx15 : 16;
223*437bfbebSnyanmisaka     } sw83;
224*437bfbebSnyanmisaka     union {
225*437bfbebSnyanmisaka         RK_U32 ref0_st_addr;
226*437bfbebSnyanmisaka         struct {
227*437bfbebSnyanmisaka             RK_U32 ref0_closer_sel : 1;
228*437bfbebSnyanmisaka             RK_U32 ref0_field_en : 1;
229*437bfbebSnyanmisaka             RK_U32 reverse0 : 30;
230*437bfbebSnyanmisaka         };
231*437bfbebSnyanmisaka     } sw84;
232*437bfbebSnyanmisaka     union {
233*437bfbebSnyanmisaka         RK_U32 ref1_st_addr;
234*437bfbebSnyanmisaka         struct {
235*437bfbebSnyanmisaka             RK_U32 ref1_closer_sel : 1;
236*437bfbebSnyanmisaka             RK_U32 ref1_field_en : 1;
237*437bfbebSnyanmisaka             RK_U32 reverse0 : 30;
238*437bfbebSnyanmisaka         };
239*437bfbebSnyanmisaka     } sw85;
240*437bfbebSnyanmisaka     union {
241*437bfbebSnyanmisaka         RK_U32 ref2_st_addr;
242*437bfbebSnyanmisaka         struct {
243*437bfbebSnyanmisaka             RK_U32 ref2_closer_sel : 1;
244*437bfbebSnyanmisaka             RK_U32 ref2_field_en : 1;
245*437bfbebSnyanmisaka             RK_U32 reverse0 : 30;
246*437bfbebSnyanmisaka         };
247*437bfbebSnyanmisaka     } sw86;
248*437bfbebSnyanmisaka     union {
249*437bfbebSnyanmisaka         RK_U32 ref3_st_addr;
250*437bfbebSnyanmisaka         struct {
251*437bfbebSnyanmisaka             RK_U32 ref3_closer_sel : 1;
252*437bfbebSnyanmisaka             RK_U32 ref3_field_en : 1;
253*437bfbebSnyanmisaka             RK_U32 reverse0 : 30;
254*437bfbebSnyanmisaka         };
255*437bfbebSnyanmisaka     } sw87;
256*437bfbebSnyanmisaka     union {
257*437bfbebSnyanmisaka         RK_U32 ref4_st_addr;
258*437bfbebSnyanmisaka         struct {
259*437bfbebSnyanmisaka             RK_U32 ref4_closer_sel : 1;
260*437bfbebSnyanmisaka             RK_U32 ref4_field_en : 1;
261*437bfbebSnyanmisaka             RK_U32 reverse0 : 30;
262*437bfbebSnyanmisaka         };
263*437bfbebSnyanmisaka     } sw88;
264*437bfbebSnyanmisaka     union {
265*437bfbebSnyanmisaka         RK_U32 ref5_st_addr;
266*437bfbebSnyanmisaka         struct {
267*437bfbebSnyanmisaka             RK_U32 ref5_closer_sel : 1;
268*437bfbebSnyanmisaka             RK_U32 ref5_field_en : 1;
269*437bfbebSnyanmisaka             RK_U32 reverse0 : 30;
270*437bfbebSnyanmisaka         };
271*437bfbebSnyanmisaka     } sw89;
272*437bfbebSnyanmisaka     union {
273*437bfbebSnyanmisaka         RK_U32 ref6_st_addr;
274*437bfbebSnyanmisaka         struct {
275*437bfbebSnyanmisaka             RK_U32 ref6_closer_sel : 1;
276*437bfbebSnyanmisaka             RK_U32 ref6_field_en : 1;
277*437bfbebSnyanmisaka             RK_U32 reverse0 : 30;
278*437bfbebSnyanmisaka         };
279*437bfbebSnyanmisaka     } sw90;
280*437bfbebSnyanmisaka     union {
281*437bfbebSnyanmisaka         RK_U32 ref7_st_addr;
282*437bfbebSnyanmisaka         struct {
283*437bfbebSnyanmisaka             RK_U32 ref7_closer_sel : 1;
284*437bfbebSnyanmisaka             RK_U32 ref7_field_en : 1;
285*437bfbebSnyanmisaka             RK_U32 reverse0 : 30;
286*437bfbebSnyanmisaka         };
287*437bfbebSnyanmisaka     } sw91;
288*437bfbebSnyanmisaka     union {
289*437bfbebSnyanmisaka         RK_U32 ref8_st_addr;
290*437bfbebSnyanmisaka         struct {
291*437bfbebSnyanmisaka             RK_U32 ref8_closer_sel : 1;
292*437bfbebSnyanmisaka             RK_U32 ref8_field_en : 1;
293*437bfbebSnyanmisaka             RK_U32 reverse0 : 30;
294*437bfbebSnyanmisaka         };
295*437bfbebSnyanmisaka     } sw92;
296*437bfbebSnyanmisaka     union {
297*437bfbebSnyanmisaka         RK_U32 ref9_st_addr;
298*437bfbebSnyanmisaka         struct {
299*437bfbebSnyanmisaka             RK_U32 ref9_closer_sel : 1;
300*437bfbebSnyanmisaka             RK_U32 ref9_field_en : 1;
301*437bfbebSnyanmisaka             RK_U32 reverse0 : 30;
302*437bfbebSnyanmisaka         };
303*437bfbebSnyanmisaka     } sw93;
304*437bfbebSnyanmisaka     union {
305*437bfbebSnyanmisaka         RK_U32 ref10_st_addr;
306*437bfbebSnyanmisaka         struct {
307*437bfbebSnyanmisaka             RK_U32 ref10_closer_sel : 1;
308*437bfbebSnyanmisaka             RK_U32 ref10_field_en : 1;
309*437bfbebSnyanmisaka             RK_U32 reverse0 : 30;
310*437bfbebSnyanmisaka         };
311*437bfbebSnyanmisaka     } sw94;
312*437bfbebSnyanmisaka     union {
313*437bfbebSnyanmisaka         RK_U32 ref11_st_addr;
314*437bfbebSnyanmisaka         struct {
315*437bfbebSnyanmisaka             RK_U32 ref11_closer_sel : 1;
316*437bfbebSnyanmisaka             RK_U32 ref11_field_en : 1;
317*437bfbebSnyanmisaka             RK_U32 reverse0 : 30;
318*437bfbebSnyanmisaka         };
319*437bfbebSnyanmisaka     } sw95;
320*437bfbebSnyanmisaka     union {
321*437bfbebSnyanmisaka         RK_U32 ref12_st_addr;
322*437bfbebSnyanmisaka         struct {
323*437bfbebSnyanmisaka             RK_U32 ref12_closer_sel : 1;
324*437bfbebSnyanmisaka             RK_U32 ref12_field_en : 1;
325*437bfbebSnyanmisaka             RK_U32 reverse0 : 30;
326*437bfbebSnyanmisaka         };
327*437bfbebSnyanmisaka     } sw96;
328*437bfbebSnyanmisaka     union {
329*437bfbebSnyanmisaka         RK_U32 ref13_st_addr;
330*437bfbebSnyanmisaka         struct {
331*437bfbebSnyanmisaka             RK_U32 ref13_closer_sel : 1;
332*437bfbebSnyanmisaka             RK_U32 ref13_field_en : 1;
333*437bfbebSnyanmisaka             RK_U32 reverse0 : 30;
334*437bfbebSnyanmisaka         };
335*437bfbebSnyanmisaka     } sw97;
336*437bfbebSnyanmisaka     union {
337*437bfbebSnyanmisaka         RK_U32 ref14_st_addr;
338*437bfbebSnyanmisaka         struct {
339*437bfbebSnyanmisaka             RK_U32 ref14_closer_sel : 1;
340*437bfbebSnyanmisaka             RK_U32 ref14_field_en : 1;
341*437bfbebSnyanmisaka             RK_U32 reverse0 : 30;
342*437bfbebSnyanmisaka         };
343*437bfbebSnyanmisaka     } sw98;
344*437bfbebSnyanmisaka     union {
345*437bfbebSnyanmisaka         RK_U32 ref15_st_addr;
346*437bfbebSnyanmisaka         struct {
347*437bfbebSnyanmisaka             RK_U32 ref15_closer_sel : 1;
348*437bfbebSnyanmisaka             RK_U32 ref15_field_en : 1;
349*437bfbebSnyanmisaka             RK_U32 reverse0 : 30;
350*437bfbebSnyanmisaka         };
351*437bfbebSnyanmisaka     } sw99;
352*437bfbebSnyanmisaka     struct {
353*437bfbebSnyanmisaka         RK_U32 init_reflist_df0 : 5;
354*437bfbebSnyanmisaka         RK_U32 init_reflist_df1 : 5;
355*437bfbebSnyanmisaka         RK_U32 init_reflist_df2 : 5;
356*437bfbebSnyanmisaka         RK_U32 init_reflist_df3 : 5;
357*437bfbebSnyanmisaka         RK_U32 init_reflist_df4 : 5;
358*437bfbebSnyanmisaka         RK_U32 init_reflist_df5 : 5;
359*437bfbebSnyanmisaka         RK_U32 reverse0 : 2;
360*437bfbebSnyanmisaka     } sw100;
361*437bfbebSnyanmisaka     struct {
362*437bfbebSnyanmisaka         RK_U32 init_reflist_df6 : 5;
363*437bfbebSnyanmisaka         RK_U32 init_reflist_df7 : 5;
364*437bfbebSnyanmisaka         RK_U32 init_reflist_df8 : 5;
365*437bfbebSnyanmisaka         RK_U32 init_reflist_df9 : 5;
366*437bfbebSnyanmisaka         RK_U32 init_reflist_df10 : 5;
367*437bfbebSnyanmisaka         RK_U32 init_reflist_df11 : 5;
368*437bfbebSnyanmisaka         RK_U32 reverse0 : 2;
369*437bfbebSnyanmisaka     } sw101;
370*437bfbebSnyanmisaka     struct {
371*437bfbebSnyanmisaka         RK_U32 init_reflist_df12 : 5;
372*437bfbebSnyanmisaka         RK_U32 init_reflist_df13 : 5;
373*437bfbebSnyanmisaka         RK_U32 init_reflist_df14 : 5;
374*437bfbebSnyanmisaka         RK_U32 init_reflist_df15 : 5;
375*437bfbebSnyanmisaka         RK_U32 reverse0 : 12;
376*437bfbebSnyanmisaka     } sw102;
377*437bfbebSnyanmisaka     struct {
378*437bfbebSnyanmisaka         RK_U32 init_reflist_db0 : 5;
379*437bfbebSnyanmisaka         RK_U32 init_reflist_db1 : 5;
380*437bfbebSnyanmisaka         RK_U32 init_reflist_db2 : 5;
381*437bfbebSnyanmisaka         RK_U32 init_reflist_db3 : 5;
382*437bfbebSnyanmisaka         RK_U32 init_reflist_db4 : 5;
383*437bfbebSnyanmisaka         RK_U32 init_reflist_db5 : 5;
384*437bfbebSnyanmisaka         RK_U32 reverse0 : 2;
385*437bfbebSnyanmisaka     } sw103;
386*437bfbebSnyanmisaka     struct {
387*437bfbebSnyanmisaka         RK_U32 init_reflist_db6 : 5;
388*437bfbebSnyanmisaka         RK_U32 init_reflist_db7 : 5;
389*437bfbebSnyanmisaka         RK_U32 init_reflist_db8 : 5;
390*437bfbebSnyanmisaka         RK_U32 init_reflist_db9 : 5;
391*437bfbebSnyanmisaka         RK_U32 init_reflist_db10 : 5;
392*437bfbebSnyanmisaka         RK_U32 init_reflist_db11 : 5;
393*437bfbebSnyanmisaka         RK_U32 reverse0 : 2;
394*437bfbebSnyanmisaka     } sw104;
395*437bfbebSnyanmisaka     struct {
396*437bfbebSnyanmisaka         RK_U32 init_reflist_db12 : 5;
397*437bfbebSnyanmisaka         RK_U32 init_reflist_db13 : 5;
398*437bfbebSnyanmisaka         RK_U32 init_reflist_db14 : 5;
399*437bfbebSnyanmisaka         RK_U32 init_reflist_db15 : 5;
400*437bfbebSnyanmisaka         RK_U32 reverse0 : 12;
401*437bfbebSnyanmisaka     } sw105;
402*437bfbebSnyanmisaka     struct {
403*437bfbebSnyanmisaka         RK_U32 init_reflist_pf0 : 5;
404*437bfbebSnyanmisaka         RK_U32 init_reflist_pf1 : 5;
405*437bfbebSnyanmisaka         RK_U32 init_reflist_pf2 : 5;
406*437bfbebSnyanmisaka         RK_U32 init_reflist_pf3 : 5;
407*437bfbebSnyanmisaka         RK_U32 reverse0 : 12;
408*437bfbebSnyanmisaka     } sw106;
409*437bfbebSnyanmisaka     struct {
410*437bfbebSnyanmisaka         RK_U32 refpic_term_flag : 32;
411*437bfbebSnyanmisaka     } sw107;
412*437bfbebSnyanmisaka     struct {
413*437bfbebSnyanmisaka         RK_U32 refpic_valid_flag : 32;
414*437bfbebSnyanmisaka     } sw108;
415*437bfbebSnyanmisaka     struct {
416*437bfbebSnyanmisaka         RK_U32 strm_start_bit : 6;
417*437bfbebSnyanmisaka         RK_U32 reverse0 : 26;
418*437bfbebSnyanmisaka     } sw109;
419*437bfbebSnyanmisaka     struct {
420*437bfbebSnyanmisaka         RK_U32 pic_mb_w : 9;
421*437bfbebSnyanmisaka         RK_U32 pic_mb_h : 8;
422*437bfbebSnyanmisaka         RK_U32 flt_offset_cb_qp : 5;
423*437bfbebSnyanmisaka         RK_U32 flt_offset_cr_qp : 5;
424*437bfbebSnyanmisaka         RK_U32 reverse0 : 5;
425*437bfbebSnyanmisaka     } sw110;
426*437bfbebSnyanmisaka     struct {
427*437bfbebSnyanmisaka         RK_U32 max_refnum : 5;
428*437bfbebSnyanmisaka         RK_U32 reverse0 : 11;
429*437bfbebSnyanmisaka         RK_U32 wp_bslice_sel : 2;
430*437bfbebSnyanmisaka         RK_U32 reverse1 : 14;
431*437bfbebSnyanmisaka     } sw111;
432*437bfbebSnyanmisaka     struct {
433*437bfbebSnyanmisaka         RK_U32 curfrm_num : 16;
434*437bfbebSnyanmisaka         RK_U32 cur_frm_len : 5;
435*437bfbebSnyanmisaka         RK_U32 reverse0 : 9;
436*437bfbebSnyanmisaka         RK_U32 rpcp_flag : 1;
437*437bfbebSnyanmisaka         RK_U32 dblk_ctrl_flag : 1;
438*437bfbebSnyanmisaka     } sw112;
439*437bfbebSnyanmisaka     struct {
440*437bfbebSnyanmisaka         RK_U32 idr_pic_id : 16;
441*437bfbebSnyanmisaka         RK_U32 refpic_mk_len : 11;
442*437bfbebSnyanmisaka         RK_U32 reverse0 : 5;
443*437bfbebSnyanmisaka     } sw113;
444*437bfbebSnyanmisaka     struct {
445*437bfbebSnyanmisaka         RK_U32 poc_field_len : 8;
446*437bfbebSnyanmisaka         RK_U32 reverse0 : 6;
447*437bfbebSnyanmisaka         RK_U32 max_refidx0 : 5;
448*437bfbebSnyanmisaka         RK_U32 max_refidx1 : 5;
449*437bfbebSnyanmisaka         RK_U32 pps_id : 8;
450*437bfbebSnyanmisaka     } sw114;
451*437bfbebSnyanmisaka     struct {
452*437bfbebSnyanmisaka         RK_U32 fieldpic_flag_exist : 1;
453*437bfbebSnyanmisaka         RK_U32 scl_matrix_en : 1;
454*437bfbebSnyanmisaka         RK_U32 tranf_8x8_flag_en : 1;
455*437bfbebSnyanmisaka         RK_U32 const_intra_en : 1;
456*437bfbebSnyanmisaka         RK_U32 weight_pred_en : 1;
457*437bfbebSnyanmisaka         RK_U32 cabac_en : 1;
458*437bfbebSnyanmisaka         RK_U32 monochr_en : 1;
459*437bfbebSnyanmisaka         RK_U32 dlmv_method_en : 1;
460*437bfbebSnyanmisaka         RK_U32 idr_pic_flag : 1;
461*437bfbebSnyanmisaka         RK_U32 reverse0 : 23;
462*437bfbebSnyanmisaka     } sw115;
463*437bfbebSnyanmisaka     RK_U32 sw116_158[43];
464*437bfbebSnyanmisaka } H264dVdpuRegs_t;
465*437bfbebSnyanmisaka 
466*437bfbebSnyanmisaka #endif /*__HAL_H264D_VDPU_REG_TBL_H__*/
467