xref: /rockchip-linux_mpp/mpp/hal/vpu/vp8e/hal_vp8e_vepu1_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_VP8E_VEPU1_REG_H__
18*437bfbebSnyanmisaka #define __HAL_VP8E_VEPU1_REG_H__
19*437bfbebSnyanmisaka 
20*437bfbebSnyanmisaka #include "rk_type.h"
21*437bfbebSnyanmisaka 
22*437bfbebSnyanmisaka typedef struct {
23*437bfbebSnyanmisaka     RK_U32 sw0;
24*437bfbebSnyanmisaka 
25*437bfbebSnyanmisaka     struct {
26*437bfbebSnyanmisaka         RK_U32 val : 32;
27*437bfbebSnyanmisaka     } sw1;
28*437bfbebSnyanmisaka 
29*437bfbebSnyanmisaka     struct {
30*437bfbebSnyanmisaka         RK_U32 val : 32;
31*437bfbebSnyanmisaka     } sw2;
32*437bfbebSnyanmisaka 
33*437bfbebSnyanmisaka     RK_U32 sw3_4[2];
34*437bfbebSnyanmisaka 
35*437bfbebSnyanmisaka     struct {
36*437bfbebSnyanmisaka         RK_U32 base_stream : 32;
37*437bfbebSnyanmisaka     } sw5;
38*437bfbebSnyanmisaka 
39*437bfbebSnyanmisaka     struct {
40*437bfbebSnyanmisaka         RK_U32 base_control : 32;
41*437bfbebSnyanmisaka     } sw6;
42*437bfbebSnyanmisaka 
43*437bfbebSnyanmisaka     struct {
44*437bfbebSnyanmisaka         RK_U32 base_ref_lum : 32;
45*437bfbebSnyanmisaka     } sw7;
46*437bfbebSnyanmisaka 
47*437bfbebSnyanmisaka     struct {
48*437bfbebSnyanmisaka         RK_U32 base_ref_chr : 32;
49*437bfbebSnyanmisaka     } sw8;
50*437bfbebSnyanmisaka 
51*437bfbebSnyanmisaka     struct {
52*437bfbebSnyanmisaka         RK_U32 base_rec_lum : 32;
53*437bfbebSnyanmisaka     } sw9;
54*437bfbebSnyanmisaka 
55*437bfbebSnyanmisaka     struct {
56*437bfbebSnyanmisaka         RK_U32 base_rec_chr : 32;
57*437bfbebSnyanmisaka     } sw10;
58*437bfbebSnyanmisaka 
59*437bfbebSnyanmisaka     struct {
60*437bfbebSnyanmisaka         RK_U32 base_in_lum : 32;
61*437bfbebSnyanmisaka     } sw11;
62*437bfbebSnyanmisaka 
63*437bfbebSnyanmisaka     struct {
64*437bfbebSnyanmisaka         RK_U32 base_in_cb : 32;
65*437bfbebSnyanmisaka     } sw12;
66*437bfbebSnyanmisaka 
67*437bfbebSnyanmisaka     struct {
68*437bfbebSnyanmisaka         RK_U32 base_in_cr : 32;
69*437bfbebSnyanmisaka     } sw13;
70*437bfbebSnyanmisaka 
71*437bfbebSnyanmisaka     struct {
72*437bfbebSnyanmisaka         RK_U32 enable : 1;
73*437bfbebSnyanmisaka         RK_U32 encoding_mode : 2;
74*437bfbebSnyanmisaka         RK_U32 picture_type : 2;
75*437bfbebSnyanmisaka         RK_U32 : 1;
76*437bfbebSnyanmisaka         RK_U32 rec_write_disable : 1;
77*437bfbebSnyanmisaka         RK_U32 : 3;
78*437bfbebSnyanmisaka         RK_U32 height : 9;
79*437bfbebSnyanmisaka         RK_U32 width : 9;
80*437bfbebSnyanmisaka         RK_U32 int_slice_ready : 1;
81*437bfbebSnyanmisaka         RK_U32 nal_size_write : 1;
82*437bfbebSnyanmisaka         RK_U32 mv_write : 1;
83*437bfbebSnyanmisaka         RK_U32 int_timeout : 1;
84*437bfbebSnyanmisaka     } sw14;
85*437bfbebSnyanmisaka 
86*437bfbebSnyanmisaka     struct {
87*437bfbebSnyanmisaka         RK_U32 input_rot : 2;
88*437bfbebSnyanmisaka         RK_U32 input_format : 4;
89*437bfbebSnyanmisaka         RK_U32 y_fill : 4;
90*437bfbebSnyanmisaka         RK_U32 x_fill : 2;
91*437bfbebSnyanmisaka         RK_U32 row_length : 14;
92*437bfbebSnyanmisaka         RK_U32 lum_offset : 3;
93*437bfbebSnyanmisaka         RK_U32 chr_offset : 3;
94*437bfbebSnyanmisaka     } sw15;
95*437bfbebSnyanmisaka 
96*437bfbebSnyanmisaka     struct {
97*437bfbebSnyanmisaka         RK_U32 base_ref_lum2 : 32;
98*437bfbebSnyanmisaka     } sw16;
99*437bfbebSnyanmisaka 
100*437bfbebSnyanmisaka     struct {
101*437bfbebSnyanmisaka         RK_U32 base_ref_chr2 : 32;
102*437bfbebSnyanmisaka     } sw17;
103*437bfbebSnyanmisaka 
104*437bfbebSnyanmisaka     struct {
105*437bfbebSnyanmisaka         RK_U32 ip_intra16_favor : 16;
106*437bfbebSnyanmisaka         RK_U32 stream_mode : 1;
107*437bfbebSnyanmisaka         RK_U32 inter_4_restrict : 1;
108*437bfbebSnyanmisaka         RK_U32 cabac_enable : 1;
109*437bfbebSnyanmisaka         RK_U32 cabac_initidc : 2;
110*437bfbebSnyanmisaka         RK_U32 transform_8x8 : 1;
111*437bfbebSnyanmisaka         RK_U32 disable_qp_mv : 1;
112*437bfbebSnyanmisaka         RK_U32 slice_size : 7;
113*437bfbebSnyanmisaka         RK_U32 deblocking : 2;
114*437bfbebSnyanmisaka     } sw18;
115*437bfbebSnyanmisaka 
116*437bfbebSnyanmisaka     struct {
117*437bfbebSnyanmisaka         RK_U32 dmv_penalty1p : 10;
118*437bfbebSnyanmisaka         RK_U32 dmv_penalty4p : 10;
119*437bfbebSnyanmisaka         RK_U32 dmv_penaltyqp : 10;
120*437bfbebSnyanmisaka         RK_U32 split_mv : 1;
121*437bfbebSnyanmisaka         RK_U32 : 1;
122*437bfbebSnyanmisaka     } sw19;
123*437bfbebSnyanmisaka 
124*437bfbebSnyanmisaka     struct {
125*437bfbebSnyanmisaka         RK_U32 split_penalty_8x4 : 10;
126*437bfbebSnyanmisaka         RK_U32 split_penalty_8x8 : 10;
127*437bfbebSnyanmisaka         RK_U32 split_penalty_16x8 : 10;
128*437bfbebSnyanmisaka         RK_U32 : 2;
129*437bfbebSnyanmisaka     } sw20;
130*437bfbebSnyanmisaka 
131*437bfbebSnyanmisaka     struct {
132*437bfbebSnyanmisaka         RK_U32 inter_favor : 16;
133*437bfbebSnyanmisaka         RK_U32 num_slices_ready : 8;
134*437bfbebSnyanmisaka         RK_U32 skip_penalty : 8;
135*437bfbebSnyanmisaka     } sw21;
136*437bfbebSnyanmisaka 
137*437bfbebSnyanmisaka     struct {
138*437bfbebSnyanmisaka         RK_U32 strm_hdr_rem1 : 32;
139*437bfbebSnyanmisaka     } sw22;
140*437bfbebSnyanmisaka 
141*437bfbebSnyanmisaka     struct {
142*437bfbebSnyanmisaka         RK_U32 strm_hdr_rem2 : 32;
143*437bfbebSnyanmisaka     } sw23;
144*437bfbebSnyanmisaka 
145*437bfbebSnyanmisaka     struct {
146*437bfbebSnyanmisaka         RK_U32 strm_buf_limit : 32;
147*437bfbebSnyanmisaka     } sw24;
148*437bfbebSnyanmisaka 
149*437bfbebSnyanmisaka     struct {
150*437bfbebSnyanmisaka         RK_U32 qp_sum : 21;
151*437bfbebSnyanmisaka         RK_U32 : 1;
152*437bfbebSnyanmisaka         RK_U32 mad_threshold : 6;
153*437bfbebSnyanmisaka         RK_U32 mad_qp_delta : 4;
154*437bfbebSnyanmisaka     } sw25;
155*437bfbebSnyanmisaka 
156*437bfbebSnyanmisaka     struct {
157*437bfbebSnyanmisaka         RK_U32 base_prob_count : 32;
158*437bfbebSnyanmisaka     } sw26;
159*437bfbebSnyanmisaka 
160*437bfbebSnyanmisaka     struct {
161*437bfbebSnyanmisaka         RK_U32 y1_quant_dc : 14;
162*437bfbebSnyanmisaka         RK_U32 y1_zbin_dc : 9;
163*437bfbebSnyanmisaka         RK_U32 y1_round_dc : 8;
164*437bfbebSnyanmisaka         RK_U32 : 1;
165*437bfbebSnyanmisaka     } sw27;
166*437bfbebSnyanmisaka 
167*437bfbebSnyanmisaka     struct {
168*437bfbebSnyanmisaka         RK_U32 y1_quant_ac : 14;
169*437bfbebSnyanmisaka         RK_U32 y1_zbin_ac : 9;
170*437bfbebSnyanmisaka         RK_U32 y1_round_ac : 8;
171*437bfbebSnyanmisaka         RK_U32 : 1;
172*437bfbebSnyanmisaka     } sw28;
173*437bfbebSnyanmisaka 
174*437bfbebSnyanmisaka     struct {
175*437bfbebSnyanmisaka         RK_U32 y2_quant_dc : 14;
176*437bfbebSnyanmisaka         RK_U32 y2_zbin_dc : 9;
177*437bfbebSnyanmisaka         RK_U32 y2_round_dc : 8;
178*437bfbebSnyanmisaka         RK_U32 : 1;
179*437bfbebSnyanmisaka     } sw29;
180*437bfbebSnyanmisaka 
181*437bfbebSnyanmisaka     struct {
182*437bfbebSnyanmisaka         RK_U32 y2_quant_ac : 14;
183*437bfbebSnyanmisaka         RK_U32 y2_zbin_ac : 9;
184*437bfbebSnyanmisaka         RK_U32 y2_round_ac : 8;
185*437bfbebSnyanmisaka         RK_U32 : 1;
186*437bfbebSnyanmisaka     } sw30;
187*437bfbebSnyanmisaka 
188*437bfbebSnyanmisaka     struct {
189*437bfbebSnyanmisaka         RK_U32 ch_quant_dc : 14;
190*437bfbebSnyanmisaka         RK_U32 ch_zbin_dc : 9;
191*437bfbebSnyanmisaka         RK_U32 ch_round_dc : 8;
192*437bfbebSnyanmisaka         RK_U32 : 1;
193*437bfbebSnyanmisaka     } sw31;
194*437bfbebSnyanmisaka 
195*437bfbebSnyanmisaka     struct {
196*437bfbebSnyanmisaka         RK_U32 ch_quant_ac : 14;
197*437bfbebSnyanmisaka         RK_U32 ch_zbin_ac : 9;
198*437bfbebSnyanmisaka         RK_U32 ch_round_ac : 8;
199*437bfbebSnyanmisaka         RK_U32 : 1;
200*437bfbebSnyanmisaka     } sw32;
201*437bfbebSnyanmisaka 
202*437bfbebSnyanmisaka     struct {
203*437bfbebSnyanmisaka         RK_U32 y1_dequant_dc : 8;
204*437bfbebSnyanmisaka         RK_U32 y1_dequant_ac : 9;
205*437bfbebSnyanmisaka         RK_U32 y2_dequant_dc : 9;
206*437bfbebSnyanmisaka         RK_U32 mv_ref_idx : 2;
207*437bfbebSnyanmisaka         RK_U32 : 4;
208*437bfbebSnyanmisaka     } sw33;
209*437bfbebSnyanmisaka 
210*437bfbebSnyanmisaka     struct {
211*437bfbebSnyanmisaka         RK_U32 y2_dequant_ac : 9;
212*437bfbebSnyanmisaka         RK_U32 ch_dequant_dc : 8;
213*437bfbebSnyanmisaka         RK_U32 ch_dequant_ac : 9;
214*437bfbebSnyanmisaka         RK_U32 mv_ref_idx2 : 2;
215*437bfbebSnyanmisaka         RK_U32 ref2_enable : 1;
216*437bfbebSnyanmisaka         RK_U32 segment_enable : 1;
217*437bfbebSnyanmisaka         RK_U32 segment_map_update : 1;
218*437bfbebSnyanmisaka         RK_U32 : 1;
219*437bfbebSnyanmisaka     } sw34;
220*437bfbebSnyanmisaka 
221*437bfbebSnyanmisaka     struct {
222*437bfbebSnyanmisaka         RK_U32 bool_enc_value : 32;
223*437bfbebSnyanmisaka     } sw35;
224*437bfbebSnyanmisaka 
225*437bfbebSnyanmisaka     struct {
226*437bfbebSnyanmisaka         RK_U32 bool_enc_range : 8;
227*437bfbebSnyanmisaka         RK_U32 bool_enc_value_bits : 5;
228*437bfbebSnyanmisaka         RK_U32 dct_partition_count : 2;
229*437bfbebSnyanmisaka         RK_U32 filter_level : 6;
230*437bfbebSnyanmisaka         RK_U32 filter_sharpness : 3;
231*437bfbebSnyanmisaka         RK_U32 golden_penalty : 8;
232*437bfbebSnyanmisaka     } sw36;
233*437bfbebSnyanmisaka 
234*437bfbebSnyanmisaka     struct {
235*437bfbebSnyanmisaka         RK_U32 rlc_sum : 23;
236*437bfbebSnyanmisaka         RK_U32 start_offset : 6;
237*437bfbebSnyanmisaka         RK_U32 : 3;
238*437bfbebSnyanmisaka     } sw37;
239*437bfbebSnyanmisaka 
240*437bfbebSnyanmisaka     struct {
241*437bfbebSnyanmisaka         RK_U32 mb_count : 16;
242*437bfbebSnyanmisaka         RK_U32 mad_count : 16;
243*437bfbebSnyanmisaka     } sw38;
244*437bfbebSnyanmisaka 
245*437bfbebSnyanmisaka     struct {
246*437bfbebSnyanmisaka         RK_U32 base_next_lum : 32;
247*437bfbebSnyanmisaka     } sw39;
248*437bfbebSnyanmisaka 
249*437bfbebSnyanmisaka     struct {
250*437bfbebSnyanmisaka         RK_U32 stab_minimum : 24;
251*437bfbebSnyanmisaka         RK_U32 : 6;
252*437bfbebSnyanmisaka         RK_U32 stab_mode : 2;
253*437bfbebSnyanmisaka     } sw40;
254*437bfbebSnyanmisaka     RK_U32 sw41_50[10];
255*437bfbebSnyanmisaka 
256*437bfbebSnyanmisaka     struct {
257*437bfbebSnyanmisaka         RK_U32 base_cabac_ctx : 32;
258*437bfbebSnyanmisaka     } sw51;
259*437bfbebSnyanmisaka 
260*437bfbebSnyanmisaka     struct {
261*437bfbebSnyanmisaka         RK_U32 base_mv_write : 32;
262*437bfbebSnyanmisaka     } sw52;
263*437bfbebSnyanmisaka 
264*437bfbebSnyanmisaka     struct {
265*437bfbebSnyanmisaka         RK_U32 rgb_coeff_a : 16;
266*437bfbebSnyanmisaka         RK_U32 rgb_coeff_b : 16;
267*437bfbebSnyanmisaka     } sw53;
268*437bfbebSnyanmisaka 
269*437bfbebSnyanmisaka     struct {
270*437bfbebSnyanmisaka         RK_U32 rgb_coeff_c : 16;
271*437bfbebSnyanmisaka         RK_U32 rgb_coeff_e : 16;
272*437bfbebSnyanmisaka     } sw54;
273*437bfbebSnyanmisaka 
274*437bfbebSnyanmisaka     struct {
275*437bfbebSnyanmisaka         RK_U32 rgb_coeff_f : 16;
276*437bfbebSnyanmisaka         RK_U32 r_mask_msb : 5;
277*437bfbebSnyanmisaka         RK_U32 g_mask_msb : 5;
278*437bfbebSnyanmisaka         RK_U32 b_mask_msb : 5;
279*437bfbebSnyanmisaka         RK_U32 : 1;
280*437bfbebSnyanmisaka     } sw55;
281*437bfbebSnyanmisaka 
282*437bfbebSnyanmisaka     struct {
283*437bfbebSnyanmisaka         RK_U32 intra_area_bottom : 8;
284*437bfbebSnyanmisaka         RK_U32 intra_area_top : 8;
285*437bfbebSnyanmisaka         RK_U32 intra_area_right : 8;
286*437bfbebSnyanmisaka         RK_U32 intra_area_left : 8;
287*437bfbebSnyanmisaka     } sw56;
288*437bfbebSnyanmisaka 
289*437bfbebSnyanmisaka     struct {
290*437bfbebSnyanmisaka         RK_U32 cir_interval : 16;
291*437bfbebSnyanmisaka         RK_U32 cir_start : 16;
292*437bfbebSnyanmisaka     } sw57;
293*437bfbebSnyanmisaka 
294*437bfbebSnyanmisaka     struct {
295*437bfbebSnyanmisaka         RK_U32 base_partition1 : 32;
296*437bfbebSnyanmisaka     } sw58;
297*437bfbebSnyanmisaka 
298*437bfbebSnyanmisaka     struct {
299*437bfbebSnyanmisaka         RK_U32 base_partition2 : 32;
300*437bfbebSnyanmisaka     } sw59;
301*437bfbebSnyanmisaka 
302*437bfbebSnyanmisaka     struct {
303*437bfbebSnyanmisaka         RK_U32 roi1_bottom : 8;
304*437bfbebSnyanmisaka         RK_U32 roi1_top : 8;
305*437bfbebSnyanmisaka         RK_U32 roi1_right : 8;
306*437bfbebSnyanmisaka         RK_U32 roi1_left : 8;
307*437bfbebSnyanmisaka     } sw60;
308*437bfbebSnyanmisaka 
309*437bfbebSnyanmisaka     struct {
310*437bfbebSnyanmisaka         RK_U32 roi2_bottom : 8;
311*437bfbebSnyanmisaka         RK_U32 roi2_top : 8;
312*437bfbebSnyanmisaka         RK_U32 roi2_right : 8;
313*437bfbebSnyanmisaka         RK_U32 roi2_left : 8;
314*437bfbebSnyanmisaka     } sw61;
315*437bfbebSnyanmisaka 
316*437bfbebSnyanmisaka     struct {
317*437bfbebSnyanmisaka         RK_U32 roi2_delta_qp : 4;
318*437bfbebSnyanmisaka         RK_U32 roi1_delta_qp : 4;
319*437bfbebSnyanmisaka         RK_U32 mvc_inter_view_flag : 1;
320*437bfbebSnyanmisaka         RK_U32 mvc_anchor_pic_flag : 1;
321*437bfbebSnyanmisaka         RK_U32 mvc_temporal_id : 3;
322*437bfbebSnyanmisaka         RK_U32 mvc_view_id : 3;
323*437bfbebSnyanmisaka         RK_U32 mvc_priority_id : 3;
324*437bfbebSnyanmisaka         RK_U32 split_penalty4x4 : 9;
325*437bfbebSnyanmisaka         RK_U32 zero_mv_favor : 4;
326*437bfbebSnyanmisaka     } sw62;
327*437bfbebSnyanmisaka 
328*437bfbebSnyanmisaka     RK_U32 sw63;
329*437bfbebSnyanmisaka 
330*437bfbebSnyanmisaka     struct {
331*437bfbebSnyanmisaka         RK_U32 mode0_penalty : 12;
332*437bfbebSnyanmisaka         RK_U32 mode1_penalty : 12;
333*437bfbebSnyanmisaka         RK_U32 : 8;
334*437bfbebSnyanmisaka     } sw64;
335*437bfbebSnyanmisaka 
336*437bfbebSnyanmisaka     struct {
337*437bfbebSnyanmisaka         RK_U32 mode2_penalty : 12;
338*437bfbebSnyanmisaka         RK_U32 mode3_penalty : 12;
339*437bfbebSnyanmisaka         RK_U32 : 8;
340*437bfbebSnyanmisaka     } sw65;
341*437bfbebSnyanmisaka 
342*437bfbebSnyanmisaka     struct {
343*437bfbebSnyanmisaka         RK_U32 b_mode_0_penalty : 12;
344*437bfbebSnyanmisaka         RK_U32 b_mode_1_penalty : 12;
345*437bfbebSnyanmisaka         RK_U32 : 8;
346*437bfbebSnyanmisaka     } sw66_70[5];
347*437bfbebSnyanmisaka 
348*437bfbebSnyanmisaka     struct {
349*437bfbebSnyanmisaka         RK_U32 base_segment_map : 32;
350*437bfbebSnyanmisaka     } sw71;
351*437bfbebSnyanmisaka 
352*437bfbebSnyanmisaka     union {
353*437bfbebSnyanmisaka         struct {
354*437bfbebSnyanmisaka             RK_U32 y1_quant_dc : 14;
355*437bfbebSnyanmisaka             RK_U32 y1_zbin_dc : 9;
356*437bfbebSnyanmisaka             RK_U32 y1_round_dc : 8;
357*437bfbebSnyanmisaka             RK_U32 : 1;
358*437bfbebSnyanmisaka         } num_0;
359*437bfbebSnyanmisaka 
360*437bfbebSnyanmisaka         struct {
361*437bfbebSnyanmisaka             RK_U32 y1_quant_ac : 14;
362*437bfbebSnyanmisaka             RK_U32 y1_zbin_ac : 9;
363*437bfbebSnyanmisaka             RK_U32 y1_round_ac : 8;
364*437bfbebSnyanmisaka             RK_U32 : 1;
365*437bfbebSnyanmisaka         } num_1;
366*437bfbebSnyanmisaka 
367*437bfbebSnyanmisaka         struct {
368*437bfbebSnyanmisaka             RK_U32 y2_quant_dc : 14;
369*437bfbebSnyanmisaka             RK_U32 y2_zbin_dc : 9;
370*437bfbebSnyanmisaka             RK_U32 y2_round_dc : 8;
371*437bfbebSnyanmisaka             RK_U32 : 1;
372*437bfbebSnyanmisaka         } num_2;
373*437bfbebSnyanmisaka 
374*437bfbebSnyanmisaka         struct {
375*437bfbebSnyanmisaka             RK_U32 y2_quant_ac : 14;
376*437bfbebSnyanmisaka             RK_U32 y2_zbin_ac : 9;
377*437bfbebSnyanmisaka             RK_U32 y2_round_ac : 8;
378*437bfbebSnyanmisaka             RK_U32 : 1;
379*437bfbebSnyanmisaka         } num_3;
380*437bfbebSnyanmisaka 
381*437bfbebSnyanmisaka         struct {
382*437bfbebSnyanmisaka             RK_U32 ch_quant_dc : 14;
383*437bfbebSnyanmisaka             RK_U32 ch_zbin_dc : 9;
384*437bfbebSnyanmisaka             RK_U32 ch_round_dc : 8;
385*437bfbebSnyanmisaka             RK_U32 : 1;
386*437bfbebSnyanmisaka         } num_4;
387*437bfbebSnyanmisaka 
388*437bfbebSnyanmisaka         struct {
389*437bfbebSnyanmisaka             RK_U32 ch_quant_ac : 14;
390*437bfbebSnyanmisaka             RK_U32 ch_zbin_ac : 9;
391*437bfbebSnyanmisaka             RK_U32 ch_round_ac : 8;
392*437bfbebSnyanmisaka             RK_U32 : 1;
393*437bfbebSnyanmisaka         } num_5;
394*437bfbebSnyanmisaka 
395*437bfbebSnyanmisaka         struct {
396*437bfbebSnyanmisaka             RK_U32 y1_dequant_dc : 8;
397*437bfbebSnyanmisaka             RK_U32 y1_dequant_ac : 9;
398*437bfbebSnyanmisaka             RK_U32 y2_dequant_dc : 9;
399*437bfbebSnyanmisaka             RK_U32 : 6;
400*437bfbebSnyanmisaka         } num_6;
401*437bfbebSnyanmisaka 
402*437bfbebSnyanmisaka         struct {
403*437bfbebSnyanmisaka             RK_U32 y2_dequant_ac : 9;
404*437bfbebSnyanmisaka             RK_U32 ch_dequant_dc : 8;
405*437bfbebSnyanmisaka             RK_U32 ch_dequant_ac : 9;
406*437bfbebSnyanmisaka             RK_U32 filter_level : 6;
407*437bfbebSnyanmisaka         } num_7;
408*437bfbebSnyanmisaka 
409*437bfbebSnyanmisaka     } sw72_95[24];
410*437bfbebSnyanmisaka 
411*437bfbebSnyanmisaka     struct {
412*437bfbebSnyanmisaka         RK_U32 penalty_0 : 8;
413*437bfbebSnyanmisaka         RK_U32 penalty_1 : 8;
414*437bfbebSnyanmisaka         RK_U32 penalty_2 : 8;
415*437bfbebSnyanmisaka         RK_U32 penalty_3 : 8;
416*437bfbebSnyanmisaka     } sw96_127[32];
417*437bfbebSnyanmisaka 
418*437bfbebSnyanmisaka     struct {
419*437bfbebSnyanmisaka         RK_U32 qpel_penalty_0 : 8;
420*437bfbebSnyanmisaka         RK_U32 qpel_penalty_1 : 8;
421*437bfbebSnyanmisaka         RK_U32 qpel_penalty_2 : 8;
422*437bfbebSnyanmisaka         RK_U32 qpel_penalty_3 : 8;
423*437bfbebSnyanmisaka     } sw128_159[32];
424*437bfbebSnyanmisaka 
425*437bfbebSnyanmisaka 
426*437bfbebSnyanmisaka     struct {
427*437bfbebSnyanmisaka         RK_U32 cost_inter : 12;
428*437bfbebSnyanmisaka         RK_U32 dmv_cost_const : 12;
429*437bfbebSnyanmisaka         RK_U32 : 8;
430*437bfbebSnyanmisaka     } sw160;
431*437bfbebSnyanmisaka 
432*437bfbebSnyanmisaka     struct {
433*437bfbebSnyanmisaka         RK_U32 cost_golden_ref : 12;
434*437bfbebSnyanmisaka         RK_U32 : 20;
435*437bfbebSnyanmisaka     } sw161;
436*437bfbebSnyanmisaka 
437*437bfbebSnyanmisaka     struct {
438*437bfbebSnyanmisaka         RK_U32 lf_ref_delta0 : 7; //vp8_loopfilter_intra
439*437bfbebSnyanmisaka         RK_U32 lf_ref_delta1 : 7; //vp8_loopfilter_lastref
440*437bfbebSnyanmisaka         RK_U32 lf_ref_delta2 : 7; //vp8_loopfilter_glodenref
441*437bfbebSnyanmisaka         RK_U32 lf_ref_delta3 : 7; //vp8_loopfilter_alterf
442*437bfbebSnyanmisaka         RK_U32 : 4;
443*437bfbebSnyanmisaka     } sw162;
444*437bfbebSnyanmisaka 
445*437bfbebSnyanmisaka     struct {
446*437bfbebSnyanmisaka         RK_U32 lf_mode_delta0 : 7; //vp8_loopfilter_bpred
447*437bfbebSnyanmisaka         RK_U32 lf_mode_delta1 : 7; //vp8_loopfilter_zeromv
448*437bfbebSnyanmisaka         RK_U32 lf_mode_delta2 : 7; //vp8_loopfilter_newmv
449*437bfbebSnyanmisaka         RK_U32 lf_mode_delta3 : 7; //vp8_loopfilter_splitmv
450*437bfbebSnyanmisaka         RK_U32 : 4;
451*437bfbebSnyanmisaka     } sw163;
452*437bfbebSnyanmisaka 
453*437bfbebSnyanmisaka } Vp8eVepu1Reg_t;
454*437bfbebSnyanmisaka 
455*437bfbebSnyanmisaka #endif /*__HAL_VP8E_VEPU1_REG_H__*/
456