xref: /rockchip-linux_mpp/mpp/hal/vpu/vp8d/hal_vp8d_vdpu1_reg.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1*437bfbebSnyanmisaka /*
2*437bfbebSnyanmisaka  * Copyright 2016 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 #ifndef __HAL_VP8D_VDPU1_REG_H__
17*437bfbebSnyanmisaka #define __HAL_VP8D_VDPU1_REG_H__
18*437bfbebSnyanmisaka 
19*437bfbebSnyanmisaka #include "rk_type.h"
20*437bfbebSnyanmisaka 
21*437bfbebSnyanmisaka #define VP8HWD_VP7             1
22*437bfbebSnyanmisaka #define VP8HWD_VP8             2
23*437bfbebSnyanmisaka #define VP8HWD_WEBP            3
24*437bfbebSnyanmisaka 
25*437bfbebSnyanmisaka #define DEC_MODE_VP7           9
26*437bfbebSnyanmisaka #define DEC_MODE_VP8           10
27*437bfbebSnyanmisaka 
28*437bfbebSnyanmisaka #define VP8D_PROB_TABLE_SIZE  (1<<16)
29*437bfbebSnyanmisaka #define VP8D_MAX_SEGMAP_SIZE  (2048 + 1024)
30*437bfbebSnyanmisaka 
31*437bfbebSnyanmisaka #define VP8D_REG_NUM    101
32*437bfbebSnyanmisaka 
33*437bfbebSnyanmisaka typedef struct  {
34*437bfbebSnyanmisaka     struct {
35*437bfbebSnyanmisaka         RK_U32  build_version       : 3;
36*437bfbebSnyanmisaka         RK_U32  product_IDen        : 1;
37*437bfbebSnyanmisaka         RK_U32  minor_version       : 8;
38*437bfbebSnyanmisaka         RK_U32  major_version       : 4;
39*437bfbebSnyanmisaka         RK_U32  product_numer       : 16;
40*437bfbebSnyanmisaka     } reg0_id;
41*437bfbebSnyanmisaka 
42*437bfbebSnyanmisaka     struct {
43*437bfbebSnyanmisaka         RK_U32  sw_dec_e            : 1;
44*437bfbebSnyanmisaka         RK_U32  reserve4            : 3;
45*437bfbebSnyanmisaka         RK_U32  sw_dec_irq_dis      : 1;
46*437bfbebSnyanmisaka         RK_U32  reserve3            : 3;
47*437bfbebSnyanmisaka         RK_U32  sw_dec_irq          : 1;
48*437bfbebSnyanmisaka         RK_U32  reserve2            : 3;
49*437bfbebSnyanmisaka         RK_U32  sw_dec_rdy_int      : 1;
50*437bfbebSnyanmisaka         RK_U32  sw_dec_bus_int      : 1;
51*437bfbebSnyanmisaka         RK_U32  sw_dec_buffer_int   : 1;
52*437bfbebSnyanmisaka         RK_U32  sw_dec_aso_int      : 1;
53*437bfbebSnyanmisaka         RK_U32  sw_dec_error_int    : 1;
54*437bfbebSnyanmisaka         RK_U32  sw_dec_slice_int    : 1;
55*437bfbebSnyanmisaka         RK_U32  sw_dec_timeout      : 1;
56*437bfbebSnyanmisaka         RK_U32  reseved1            : 5;
57*437bfbebSnyanmisaka         RK_U32  sw_dec_pic_inf      : 1;
58*437bfbebSnyanmisaka         RK_U32  reserved0           : 7;
59*437bfbebSnyanmisaka     } reg1_interrupt;
60*437bfbebSnyanmisaka 
61*437bfbebSnyanmisaka     struct {
62*437bfbebSnyanmisaka         RK_U32  sw_dec_max_burst    : 5;
63*437bfbebSnyanmisaka         RK_U32  sw_dec_scmd_dis     : 1;
64*437bfbebSnyanmisaka         RK_U32  sw_dec_adv_pre_dis  : 1;
65*437bfbebSnyanmisaka         RK_U32  sw_priority_mode    : 1; /* Not used */
66*437bfbebSnyanmisaka         RK_U32  sw_dec_out_endian   : 1;
67*437bfbebSnyanmisaka         RK_U32  sw_dec_in_endian    : 1;
68*437bfbebSnyanmisaka         RK_U32  sw_dec_clk_gate_e   : 1;
69*437bfbebSnyanmisaka         RK_U32  sw_dec_latency      : 6;
70*437bfbebSnyanmisaka         RK_U32  sw_dec_out_tiled_e  : 1; /* Not used */
71*437bfbebSnyanmisaka         RK_U32  sw_dec_data_disc_e  : 1;
72*437bfbebSnyanmisaka         RK_U32  sw_dec_outswap32_e  : 1;
73*437bfbebSnyanmisaka         RK_U32  sw_dec_inswap32_e   : 1;
74*437bfbebSnyanmisaka         RK_U32  sw_dec_strendian_e  : 1;
75*437bfbebSnyanmisaka         RK_U32  sw_dec_strswap32_e  : 1;
76*437bfbebSnyanmisaka         RK_U32  sw_dec_timeout_e    : 1;
77*437bfbebSnyanmisaka         RK_U32  sw_dec_axi_rn_id    : 8;
78*437bfbebSnyanmisaka     } reg2_dec_ctrl;
79*437bfbebSnyanmisaka 
80*437bfbebSnyanmisaka     struct {
81*437bfbebSnyanmisaka         RK_U32  sw_dec_axi_wr_id    : 8;
82*437bfbebSnyanmisaka         RK_U32  sw_dec_ahb_hlock_e  : 1; /* Not used */
83*437bfbebSnyanmisaka         RK_U32  sw_picord_count_e   : 1;
84*437bfbebSnyanmisaka         RK_U32  sw_seq_mbaff_e      : 1;
85*437bfbebSnyanmisaka         RK_U32  sw_reftopfirst_e    : 1;
86*437bfbebSnyanmisaka         RK_U32  sw_write_mvs_e      : 1;
87*437bfbebSnyanmisaka         RK_U32  sw_pic_fixed_quant  : 1;
88*437bfbebSnyanmisaka         RK_U32  sw_filtering_dis    : 1;
89*437bfbebSnyanmisaka         RK_U32  sw_dec_out_dis      : 1;
90*437bfbebSnyanmisaka         RK_U32  sw_ref_topfield_e   : 1;
91*437bfbebSnyanmisaka         RK_U32  sw_sorenson_e       : 1;
92*437bfbebSnyanmisaka         RK_U32  sw_fwd_interlace_e  : 1;
93*437bfbebSnyanmisaka         RK_U32  sw_pic_topfield_e   : 1;
94*437bfbebSnyanmisaka         RK_U32  sw_pic_inter_e      : 1;
95*437bfbebSnyanmisaka         RK_U32  sw_pic_b_e          : 1;
96*437bfbebSnyanmisaka         RK_U32  sw_pic_fieldmode_e  : 1;
97*437bfbebSnyanmisaka         RK_U32  sw_pic_interlace_e  : 1;
98*437bfbebSnyanmisaka         RK_U32  sw_pjpeg_e          : 1;
99*437bfbebSnyanmisaka         RK_U32  sw_divx3_e          : 1; /* Not used */
100*437bfbebSnyanmisaka         RK_U32  sw_skip_mode        : 1;
101*437bfbebSnyanmisaka         RK_U32  sw_rlc_mode_e       : 1;
102*437bfbebSnyanmisaka         RK_U32  sw_dec_mode         : 4;
103*437bfbebSnyanmisaka     } reg3;
104*437bfbebSnyanmisaka 
105*437bfbebSnyanmisaka     struct {
106*437bfbebSnyanmisaka         RK_U32  sw_pic_mb_h_ext     : 3;
107*437bfbebSnyanmisaka         RK_U32  sw_pic_mb_w_ext     : 3;
108*437bfbebSnyanmisaka         RK_U32  sw_alt_scan_e       : 1;
109*437bfbebSnyanmisaka         RK_U32  sw_mb_height_off    : 4;
110*437bfbebSnyanmisaka         RK_U32  sw_pic_mb_hight_p   : 8;
111*437bfbebSnyanmisaka         RK_U32  sw_mb_width_off     : 4;
112*437bfbebSnyanmisaka         RK_U32  sw_pic_mb_width     : 9;
113*437bfbebSnyanmisaka     } reg4;
114*437bfbebSnyanmisaka 
115*437bfbebSnyanmisaka     struct {
116*437bfbebSnyanmisaka         RK_U32  sw_boolean_range    : 8;
117*437bfbebSnyanmisaka         RK_U32  sw_boolean_value    : 8;
118*437bfbebSnyanmisaka         RK_U32  reserved1           : 2;
119*437bfbebSnyanmisaka         RK_U32  sw_strm1_start_bit  : 6;
120*437bfbebSnyanmisaka         RK_U32  reserved0           : 2;
121*437bfbebSnyanmisaka         RK_U32  sw_strm0_start_bit  : 6;
122*437bfbebSnyanmisaka     } reg5;
123*437bfbebSnyanmisaka 
124*437bfbebSnyanmisaka     struct {
125*437bfbebSnyanmisaka         RK_U32  sw_stream_len       : 24;
126*437bfbebSnyanmisaka         RK_U32  sw_ch_8pix_ileav_e  : 1;
127*437bfbebSnyanmisaka         RK_U32  sw_init_qp          : 6;
128*437bfbebSnyanmisaka         RK_U32  sw_start_code_e     : 1;
129*437bfbebSnyanmisaka     } reg6;
130*437bfbebSnyanmisaka 
131*437bfbebSnyanmisaka     struct {
132*437bfbebSnyanmisaka         RK_U32  reserved1           : 5;
133*437bfbebSnyanmisaka         RK_U32  sw_vp7_version      : 1;
134*437bfbebSnyanmisaka         RK_U32  sw_dc_match1        : 3;
135*437bfbebSnyanmisaka         RK_U32  sw_dc_match0        : 3;
136*437bfbebSnyanmisaka         RK_U32  sw_bilin_mc_e       : 1;
137*437bfbebSnyanmisaka         RK_U32  sw_ch_mv_res        : 1;
138*437bfbebSnyanmisaka         RK_U32  reserved0           : 6;
139*437bfbebSnyanmisaka         RK_U32  sw_dct2_start_bit   : 6;
140*437bfbebSnyanmisaka         RK_U32  sw_dct1_start_bit   : 6;
141*437bfbebSnyanmisaka     } reg7;
142*437bfbebSnyanmisaka 
143*437bfbebSnyanmisaka     struct {
144*437bfbebSnyanmisaka         RK_U32  sw_dc_comp1         : 16;
145*437bfbebSnyanmisaka         RK_U32  sw_dc_comp0         : 16;
146*437bfbebSnyanmisaka     } reg8;
147*437bfbebSnyanmisaka 
148*437bfbebSnyanmisaka     struct {
149*437bfbebSnyanmisaka         RK_U32  sw_stream1_len      : 24;
150*437bfbebSnyanmisaka         RK_U32  sw_coeffs_part_am   : 4;
151*437bfbebSnyanmisaka         RK_U32  reserved0           : 4;
152*437bfbebSnyanmisaka     } reg9;
153*437bfbebSnyanmisaka 
154*437bfbebSnyanmisaka     RK_U32 reg10_segment_map_base;
155*437bfbebSnyanmisaka 
156*437bfbebSnyanmisaka     struct {
157*437bfbebSnyanmisaka         RK_U32  sw_dct_start_bit_7   : 6;
158*437bfbebSnyanmisaka         RK_U32  sw_dct_start_bit_6   : 6;
159*437bfbebSnyanmisaka         RK_U32  sw_dct_start_bit_5   : 6;
160*437bfbebSnyanmisaka         RK_U32  sw_dct_start_bit_4   : 6;
161*437bfbebSnyanmisaka         RK_U32  sw_dct_start_bit_3   : 6;
162*437bfbebSnyanmisaka         RK_U32  reserved0            : 2;
163*437bfbebSnyanmisaka     } reg11;
164*437bfbebSnyanmisaka 
165*437bfbebSnyanmisaka     RK_U32      reg12_input_stream_base;
166*437bfbebSnyanmisaka     RK_U32      reg13_cur_pic_base; /* Decoder output base */
167*437bfbebSnyanmisaka     RK_U32      reg14_ref0_base; /* sw_ch_out_base */
168*437bfbebSnyanmisaka     RK_U32      reg15_17[3]; /* Not used */
169*437bfbebSnyanmisaka 
170*437bfbebSnyanmisaka     RK_U32      reg18_golden_ref_base;
171*437bfbebSnyanmisaka 
172*437bfbebSnyanmisaka     union {
173*437bfbebSnyanmisaka         RK_U32 alternate_ref_base; /* sw_refer5_base */
174*437bfbebSnyanmisaka         struct {
175*437bfbebSnyanmisaka             RK_U32  sw_scan_map_5   : 6;
176*437bfbebSnyanmisaka             RK_U32  sw_scan_map_4   : 6;
177*437bfbebSnyanmisaka             RK_U32  sw_scan_map_3   : 6;
178*437bfbebSnyanmisaka             RK_U32  sw_scan_map_2   : 6;
179*437bfbebSnyanmisaka             RK_U32  sw_scan_map_1   : 6;
180*437bfbebSnyanmisaka             RK_U32  reserved0       : 2;
181*437bfbebSnyanmisaka         };
182*437bfbebSnyanmisaka     } reg19;
183*437bfbebSnyanmisaka 
184*437bfbebSnyanmisaka     struct {
185*437bfbebSnyanmisaka         RK_U32  sw_scan_map_10      : 6;
186*437bfbebSnyanmisaka         RK_U32  sw_scan_map_9       : 6;
187*437bfbebSnyanmisaka         RK_U32  sw_scan_map_8       : 6;
188*437bfbebSnyanmisaka         RK_U32  sw_scan_map_7       : 6;
189*437bfbebSnyanmisaka         RK_U32  sw_scan_map_6       : 6;
190*437bfbebSnyanmisaka         RK_U32  reserved0           : 2;
191*437bfbebSnyanmisaka     } reg20;
192*437bfbebSnyanmisaka 
193*437bfbebSnyanmisaka     struct {
194*437bfbebSnyanmisaka         RK_U32  sw_scan_map_15      : 6;
195*437bfbebSnyanmisaka         RK_U32  sw_scan_map_14      : 6;
196*437bfbebSnyanmisaka         RK_U32  sw_scan_map_13      : 6;
197*437bfbebSnyanmisaka         RK_U32  sw_scan_map_12      : 6;
198*437bfbebSnyanmisaka         RK_U32  sw_scan_map_11      : 6;
199*437bfbebSnyanmisaka         RK_U32  reserved0           : 2;
200*437bfbebSnyanmisaka     } reg21;
201*437bfbebSnyanmisaka 
202*437bfbebSnyanmisaka     RK_U32      reg_dct_strm0_base[5]; /* From reg22 to reg26 */
203*437bfbebSnyanmisaka     RK_U32      reg27_bitpl_ctrl_base;
204*437bfbebSnyanmisaka     RK_U32      reg_dct_strm1_base[2]; /* From reg28 to reg29 */
205*437bfbebSnyanmisaka 
206*437bfbebSnyanmisaka     struct {
207*437bfbebSnyanmisaka         RK_U32  sw_filt_mb_adj_3    : 7;
208*437bfbebSnyanmisaka         RK_U32  sw_filt_mb_adj_2    : 7;
209*437bfbebSnyanmisaka         RK_U32  sw_filt_mb_adj_1    : 7;
210*437bfbebSnyanmisaka         RK_U32  sw_filt_mb_adj_0    : 7;
211*437bfbebSnyanmisaka         RK_U32  sw_filt_sharpness   : 3;
212*437bfbebSnyanmisaka         RK_U32  sw_filt_type        : 1;
213*437bfbebSnyanmisaka     } reg30;
214*437bfbebSnyanmisaka 
215*437bfbebSnyanmisaka     struct {
216*437bfbebSnyanmisaka         RK_U32  sw_filt_ref_adj_3   : 7;
217*437bfbebSnyanmisaka         RK_U32  sw_filt_ref_adj_2   : 7;
218*437bfbebSnyanmisaka         RK_U32  sw_filt_ref_adj_1   : 7;
219*437bfbebSnyanmisaka         RK_U32  sw_filt_ref_adj_0   : 7;
220*437bfbebSnyanmisaka         RK_U32  reserved0           : 4;
221*437bfbebSnyanmisaka     } reg31;
222*437bfbebSnyanmisaka 
223*437bfbebSnyanmisaka     struct {
224*437bfbebSnyanmisaka         RK_U32  sw_filt_level_3     : 6;
225*437bfbebSnyanmisaka         RK_U32  sw_filt_level_2     : 6;
226*437bfbebSnyanmisaka         RK_U32  sw_filt_level_1     : 6;
227*437bfbebSnyanmisaka         RK_U32  sw_filt_level_0     : 6;
228*437bfbebSnyanmisaka         RK_U32  reserved0           : 8;
229*437bfbebSnyanmisaka     } reg32;
230*437bfbebSnyanmisaka 
231*437bfbebSnyanmisaka     struct {
232*437bfbebSnyanmisaka         RK_U32  sw_quant_1          : 11;
233*437bfbebSnyanmisaka         RK_U32  sw_quant_0          : 11;
234*437bfbebSnyanmisaka         RK_U32  sw_quant_delta_1    : 5;
235*437bfbebSnyanmisaka         RK_U32  sw_quant_delta_0    : 5;
236*437bfbebSnyanmisaka     } reg33;
237*437bfbebSnyanmisaka 
238*437bfbebSnyanmisaka     struct {
239*437bfbebSnyanmisaka         RK_U32  reserved0           : 2;
240*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_1_1  : 10;
241*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_1_0  : 10;
242*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_0_3  : 10;
243*437bfbebSnyanmisaka     } reg34;
244*437bfbebSnyanmisaka 
245*437bfbebSnyanmisaka     struct {
246*437bfbebSnyanmisaka         RK_U32  reserved0           : 2;
247*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_2_0  : 10;
248*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_1_3  : 10;
249*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_1_2  : 10;
250*437bfbebSnyanmisaka     } reg35;
251*437bfbebSnyanmisaka 
252*437bfbebSnyanmisaka     struct {
253*437bfbebSnyanmisaka         RK_U32  reserved0           : 2;
254*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_2_3  : 10;
255*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_2_2  : 10;
256*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_2_1  : 10;
257*437bfbebSnyanmisaka     } reg36;
258*437bfbebSnyanmisaka 
259*437bfbebSnyanmisaka     struct {
260*437bfbebSnyanmisaka         RK_U32  reserved0           : 2;
261*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_3_2  : 10;
262*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_3_1  : 10;
263*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_3_0  : 10;
264*437bfbebSnyanmisaka     } reg37;
265*437bfbebSnyanmisaka 
266*437bfbebSnyanmisaka     struct {
267*437bfbebSnyanmisaka         RK_U32  reserved0           : 2;
268*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_4_1  : 10;
269*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_4_0  : 10;
270*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_3_3  : 10;
271*437bfbebSnyanmisaka     } reg38;
272*437bfbebSnyanmisaka 
273*437bfbebSnyanmisaka     struct {
274*437bfbebSnyanmisaka         RK_U32  reserved0           : 2;
275*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_5_0  : 10;
276*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_4_3  : 10;
277*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_4_2  : 10;
278*437bfbebSnyanmisaka     } reg39;
279*437bfbebSnyanmisaka 
280*437bfbebSnyanmisaka     RK_U32      reg40_qtable_base;
281*437bfbebSnyanmisaka     RK_U32      reg41_directmv_base;
282*437bfbebSnyanmisaka 
283*437bfbebSnyanmisaka     struct {
284*437bfbebSnyanmisaka         RK_U32  reserved0           : 2;
285*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_5_3  : 10;
286*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_5_2  : 10;
287*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_5_1  : 10;
288*437bfbebSnyanmisaka     } reg42;
289*437bfbebSnyanmisaka 
290*437bfbebSnyanmisaka     struct {
291*437bfbebSnyanmisaka         RK_U32  reserved0           : 2;
292*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_6_2  : 10;
293*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_6_1  : 10;
294*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_6_0  : 10;
295*437bfbebSnyanmisaka     } reg43;
296*437bfbebSnyanmisaka 
297*437bfbebSnyanmisaka     struct {
298*437bfbebSnyanmisaka         RK_U32  reserved0           : 2;
299*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_7_1  : 10;
300*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_7_0  : 10;
301*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_6_3  : 10;
302*437bfbebSnyanmisaka     } reg44;
303*437bfbebSnyanmisaka 
304*437bfbebSnyanmisaka     struct {
305*437bfbebSnyanmisaka         RK_U32  sw_pred_tap_6_4     : 2;
306*437bfbebSnyanmisaka         RK_U32  sw_pred_tap_6_M1    : 2;
307*437bfbebSnyanmisaka         RK_U32  sw_pred_tap_4_4     : 2;
308*437bfbebSnyanmisaka         RK_U32  sw_pred_tap_4_M1    : 2;
309*437bfbebSnyanmisaka         RK_U32  sw_pred_tap_2_4     : 2;
310*437bfbebSnyanmisaka         RK_U32  sw_pred_tap_2_M1    : 2;
311*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_7_3  : 10;
312*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_7_2  : 10;
313*437bfbebSnyanmisaka     } reg45;
314*437bfbebSnyanmisaka 
315*437bfbebSnyanmisaka     struct {
316*437bfbebSnyanmisaka         RK_U32  sw_quant_3          : 11;
317*437bfbebSnyanmisaka         RK_U32  sw_quant_2          : 11;
318*437bfbebSnyanmisaka         RK_U32  sw_quant_delta_3    : 5;
319*437bfbebSnyanmisaka         RK_U32  sw_quant_delta_2    : 5;
320*437bfbebSnyanmisaka     } reg46;
321*437bfbebSnyanmisaka 
322*437bfbebSnyanmisaka     struct {
323*437bfbebSnyanmisaka         RK_U32  sw_quant_5          : 11;
324*437bfbebSnyanmisaka         RK_U32  sw_quant_4          : 11;
325*437bfbebSnyanmisaka         RK_U32  reserved            : 5;
326*437bfbebSnyanmisaka         RK_U32  sw_quant_delta_4    : 5;
327*437bfbebSnyanmisaka     } reg47;
328*437bfbebSnyanmisaka 
329*437bfbebSnyanmisaka     struct {
330*437bfbebSnyanmisaka         RK_U32  reserved0           : 15;
331*437bfbebSnyanmisaka         RK_U32  sw_startmb_y        : 8;
332*437bfbebSnyanmisaka         RK_U32  sw_startmb_x        : 9;
333*437bfbebSnyanmisaka     } reg48;
334*437bfbebSnyanmisaka 
335*437bfbebSnyanmisaka     struct {
336*437bfbebSnyanmisaka         RK_U32  reserved0           : 2;
337*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_0_2  : 10;
338*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_0_1  : 10;
339*437bfbebSnyanmisaka         RK_U32  sw_pred_bc_tap_0_0  : 10;
340*437bfbebSnyanmisaka     } reg49;
341*437bfbebSnyanmisaka 
342*437bfbebSnyanmisaka     RK_U32 reg50;
343*437bfbebSnyanmisaka 
344*437bfbebSnyanmisaka     struct {
345*437bfbebSnyanmisaka         RK_U32  sw_refbu_y_offset   : 9;
346*437bfbebSnyanmisaka         RK_U32  reserve0            : 3;
347*437bfbebSnyanmisaka         RK_U32  sw_refbu_fparmod_e  : 1;
348*437bfbebSnyanmisaka         RK_U32  sw_refbu_eval_e     : 1;
349*437bfbebSnyanmisaka         RK_U32  sw_refbu_picid      : 5;
350*437bfbebSnyanmisaka         RK_U32  sw_refbu_thr        : 12;
351*437bfbebSnyanmisaka         RK_U32  sw_refbu_e          : 1;
352*437bfbebSnyanmisaka     } reg51_refpicbuf_ctrl;
353*437bfbebSnyanmisaka 
354*437bfbebSnyanmisaka     struct {
355*437bfbebSnyanmisaka         RK_U32  sw_refbu_intra_sum  : 16;
356*437bfbebSnyanmisaka         RK_U32  sw_refbu_hit_sum    : 16;
357*437bfbebSnyanmisaka     } reg52_sum_inf;
358*437bfbebSnyanmisaka 
359*437bfbebSnyanmisaka     struct {
360*437bfbebSnyanmisaka         RK_U32  sw_refbu_mv_sum     : 22;
361*437bfbebSnyanmisaka         RK_U32  reserve0            : 10;
362*437bfbebSnyanmisaka     } reg53_sum_mv;
363*437bfbebSnyanmisaka 
364*437bfbebSnyanmisaka     struct {
365*437bfbebSnyanmisaka         RK_U32  reserve0            : 17;
366*437bfbebSnyanmisaka         /* sw_priority_mode */
367*437bfbebSnyanmisaka         RK_U32  sw_dec_tiled_l      : 2;
368*437bfbebSnyanmisaka         RK_U32  sw_dec_vp8snap_e    : 1;
369*437bfbebSnyanmisaka         RK_U32  sw_dec_mvc_prof     : 2;
370*437bfbebSnyanmisaka         RK_U32  sw_dec_avs_prof     : 1;
371*437bfbebSnyanmisaka         RK_U32  sw_dec_vp8_prof     : 1;
372*437bfbebSnyanmisaka         RK_U32  sw_dec_vp7_prof     : 1;
373*437bfbebSnyanmisaka         RK_U32  sw_dec_rtl_rom      : 1;
374*437bfbebSnyanmisaka         RK_U32  sw_dec_rv_prof      : 2;
375*437bfbebSnyanmisaka         RK_U32  sw_ref_buff2_exist  : 1;
376*437bfbebSnyanmisaka         RK_U32  reserve1            : 1;
377*437bfbebSnyanmisaka         RK_U32  sw_dec_refbu_ilace  : 1;
378*437bfbebSnyanmisaka         RK_U32  sw_dec_jpeg_exten   : 1;
379*437bfbebSnyanmisaka     } reg54_synthesis_cfg;
380*437bfbebSnyanmisaka 
381*437bfbebSnyanmisaka     struct {
382*437bfbebSnyanmisaka         RK_U32  sw_apf_threshold    : 14;
383*437bfbebSnyanmisaka         RK_U32  sw_refbu2_picid     : 5;
384*437bfbebSnyanmisaka         RK_U32  sw_refbu2_thr       : 12;
385*437bfbebSnyanmisaka         RK_U32  sw_refbu2_buf_e     : 1;
386*437bfbebSnyanmisaka     } reg55;
387*437bfbebSnyanmisaka 
388*437bfbebSnyanmisaka     struct {
389*437bfbebSnyanmisaka         RK_U32  sw_refbu_bot_sum    : 16;
390*437bfbebSnyanmisaka         RK_U32  sw_refbu_top_sum    : 16;
391*437bfbebSnyanmisaka     } reg56_sum_of_partitions;
392*437bfbebSnyanmisaka 
393*437bfbebSnyanmisaka     /* Not used */
394*437bfbebSnyanmisaka     RK_U32      reg57_decoder_fuse;
395*437bfbebSnyanmisaka     RK_U32      reg58_debug;
396*437bfbebSnyanmisaka 
397*437bfbebSnyanmisaka     RK_U32      reg59_addit_ch_st_base;
398*437bfbebSnyanmisaka     RK_U32      reg60_100_post_processor[41];
399*437bfbebSnyanmisaka } VP8DRegSet_t;
400*437bfbebSnyanmisaka 
401*437bfbebSnyanmisaka #endif
402