xref: /rockchip-linux_mpp/mpp/hal/vpu/vp8e/hal_vp8e_vepu2_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_VEPU2_REG_H__
18*437bfbebSnyanmisaka #define __HAL_VP8E_VEPU2_REG_H__
19*437bfbebSnyanmisaka 
20*437bfbebSnyanmisaka #include "rk_type.h"
21*437bfbebSnyanmisaka 
22*437bfbebSnyanmisaka typedef struct {
23*437bfbebSnyanmisaka     union {
24*437bfbebSnyanmisaka         struct {
25*437bfbebSnyanmisaka             RK_U32 y1_quant_dc : 14;
26*437bfbebSnyanmisaka             RK_U32 : 2;
27*437bfbebSnyanmisaka             RK_U32 y2_quant_dc : 14;
28*437bfbebSnyanmisaka             RK_U32 : 2;
29*437bfbebSnyanmisaka         } num_0;
30*437bfbebSnyanmisaka 
31*437bfbebSnyanmisaka         struct {
32*437bfbebSnyanmisaka             RK_U32 ch_quant_dc : 14;
33*437bfbebSnyanmisaka             RK_U32 : 2;
34*437bfbebSnyanmisaka             RK_U32 y1_quant_ac : 14;
35*437bfbebSnyanmisaka             RK_U32 : 2;
36*437bfbebSnyanmisaka         } num_1;
37*437bfbebSnyanmisaka 
38*437bfbebSnyanmisaka         struct {
39*437bfbebSnyanmisaka             RK_U32 y2_quant_ac : 14;
40*437bfbebSnyanmisaka             RK_U32 : 2;
41*437bfbebSnyanmisaka             RK_U32 ch_quant_ac : 14;
42*437bfbebSnyanmisaka             RK_U32 : 2;
43*437bfbebSnyanmisaka         } num_2;
44*437bfbebSnyanmisaka 
45*437bfbebSnyanmisaka         struct {
46*437bfbebSnyanmisaka             RK_U32 y1_zbin_dc : 9;
47*437bfbebSnyanmisaka             RK_U32 y2_zbin_dc : 9;
48*437bfbebSnyanmisaka             RK_U32 ch_zbin_dc : 9;
49*437bfbebSnyanmisaka             RK_U32 : 5;
50*437bfbebSnyanmisaka         } num_3;
51*437bfbebSnyanmisaka 
52*437bfbebSnyanmisaka         struct {
53*437bfbebSnyanmisaka             RK_U32 y1_zbin_ac : 9;
54*437bfbebSnyanmisaka             RK_U32 y2_zbin_ac : 9;
55*437bfbebSnyanmisaka             RK_U32 ch_zbin_ac : 9;
56*437bfbebSnyanmisaka             RK_U32 : 5;
57*437bfbebSnyanmisaka         } num_4;
58*437bfbebSnyanmisaka 
59*437bfbebSnyanmisaka         struct {
60*437bfbebSnyanmisaka             RK_U32 y1_round_dc : 8;
61*437bfbebSnyanmisaka             RK_U32 y2_round_dc : 8;
62*437bfbebSnyanmisaka             RK_U32 ch_round_dc : 8;
63*437bfbebSnyanmisaka             RK_U32 : 8;
64*437bfbebSnyanmisaka         } num_5;
65*437bfbebSnyanmisaka 
66*437bfbebSnyanmisaka         struct {
67*437bfbebSnyanmisaka             RK_U32 y1_round_ac : 8;
68*437bfbebSnyanmisaka             RK_U32 y2_round_ac : 8;
69*437bfbebSnyanmisaka             RK_U32 ch_round_ac : 8;
70*437bfbebSnyanmisaka             RK_U32 : 8;
71*437bfbebSnyanmisaka         } num_6;
72*437bfbebSnyanmisaka 
73*437bfbebSnyanmisaka         struct {
74*437bfbebSnyanmisaka             RK_U32 y1_dequant_dc : 8;
75*437bfbebSnyanmisaka             RK_U32 y2_dequant_dc : 9;
76*437bfbebSnyanmisaka             RK_U32 ch_dequant_dc : 8;
77*437bfbebSnyanmisaka             RK_U32 filter_level : 6;
78*437bfbebSnyanmisaka             RK_U32 : 1;
79*437bfbebSnyanmisaka         } num_7;
80*437bfbebSnyanmisaka 
81*437bfbebSnyanmisaka         struct {
82*437bfbebSnyanmisaka             RK_U32 y1_dequant_ac : 9;
83*437bfbebSnyanmisaka             RK_U32 y2_dequant_ac : 9;
84*437bfbebSnyanmisaka             RK_U32 ch_dequant_ac : 9;
85*437bfbebSnyanmisaka             RK_U32 : 5;
86*437bfbebSnyanmisaka         } num_8;
87*437bfbebSnyanmisaka 
88*437bfbebSnyanmisaka     } sw0_26[27];
89*437bfbebSnyanmisaka 
90*437bfbebSnyanmisaka     struct {
91*437bfbebSnyanmisaka         RK_U32 base_segment_map : 32;
92*437bfbebSnyanmisaka     } sw27;
93*437bfbebSnyanmisaka 
94*437bfbebSnyanmisaka     struct {
95*437bfbebSnyanmisaka         RK_U32 b_mode_0_penalty : 12;
96*437bfbebSnyanmisaka         RK_U32 : 4;
97*437bfbebSnyanmisaka         RK_U32 b_mode_1_penalty : 12;
98*437bfbebSnyanmisaka         RK_U32 : 4;
99*437bfbebSnyanmisaka     } sw28_32[5];
100*437bfbebSnyanmisaka 
101*437bfbebSnyanmisaka     struct {
102*437bfbebSnyanmisaka         RK_U32 mode0_penalty : 12;
103*437bfbebSnyanmisaka         RK_U32 : 4;
104*437bfbebSnyanmisaka         RK_U32 mode1_penalty : 12;
105*437bfbebSnyanmisaka         RK_U32 : 4;
106*437bfbebSnyanmisaka     } sw33;
107*437bfbebSnyanmisaka 
108*437bfbebSnyanmisaka     struct {
109*437bfbebSnyanmisaka         RK_U32 mode2_penalty : 12;
110*437bfbebSnyanmisaka         RK_U32 : 4;
111*437bfbebSnyanmisaka         RK_U32 mode3_penalty : 12;
112*437bfbebSnyanmisaka         RK_U32 : 4;
113*437bfbebSnyanmisaka     } sw34;
114*437bfbebSnyanmisaka 
115*437bfbebSnyanmisaka     RK_U32 sw35_39[5];
116*437bfbebSnyanmisaka 
117*437bfbebSnyanmisaka     struct {
118*437bfbebSnyanmisaka         RK_U32 cost_inter : 12;
119*437bfbebSnyanmisaka         RK_U32 : 4;
120*437bfbebSnyanmisaka         RK_U32 lf_ref_delta0 : 7;
121*437bfbebSnyanmisaka         RK_U32 : 1;
122*437bfbebSnyanmisaka         RK_U32 lf_mode_delta0 : 7;
123*437bfbebSnyanmisaka         RK_U32 : 1;
124*437bfbebSnyanmisaka     } sw40;
125*437bfbebSnyanmisaka 
126*437bfbebSnyanmisaka     struct {
127*437bfbebSnyanmisaka         RK_U32 cost_golden_ref : 12;
128*437bfbebSnyanmisaka         RK_U32 : 4;
129*437bfbebSnyanmisaka         RK_U32 dmv_cost_const : 12;
130*437bfbebSnyanmisaka         RK_U32 : 4;
131*437bfbebSnyanmisaka     } sw41;
132*437bfbebSnyanmisaka 
133*437bfbebSnyanmisaka     struct {
134*437bfbebSnyanmisaka         RK_U32 lf_ref_delta2 : 7;
135*437bfbebSnyanmisaka         RK_U32 : 1;
136*437bfbebSnyanmisaka         RK_U32 lf_ref_delta1 : 7;
137*437bfbebSnyanmisaka         RK_U32 : 1;
138*437bfbebSnyanmisaka         RK_U32 lf_ref_delta3 : 7;
139*437bfbebSnyanmisaka         RK_U32 : 9;
140*437bfbebSnyanmisaka     } sw42;
141*437bfbebSnyanmisaka 
142*437bfbebSnyanmisaka     struct {
143*437bfbebSnyanmisaka         RK_U32 lf_mode_delta2 : 7;
144*437bfbebSnyanmisaka         RK_U32 : 1;
145*437bfbebSnyanmisaka         RK_U32 lf_mode_delta1 : 7;
146*437bfbebSnyanmisaka         RK_U32 : 1;
147*437bfbebSnyanmisaka         RK_U32 lf_mode_delta3 : 7;
148*437bfbebSnyanmisaka         RK_U32 : 9;
149*437bfbebSnyanmisaka     } sw43;
150*437bfbebSnyanmisaka 
151*437bfbebSnyanmisaka     struct {
152*437bfbebSnyanmisaka         RK_U32 base_partition1 : 32;
153*437bfbebSnyanmisaka     } sw44;
154*437bfbebSnyanmisaka 
155*437bfbebSnyanmisaka     struct {
156*437bfbebSnyanmisaka         RK_U32 base_partition2 : 32;
157*437bfbebSnyanmisaka     } sw45;
158*437bfbebSnyanmisaka 
159*437bfbebSnyanmisaka     struct {
160*437bfbebSnyanmisaka         RK_U32 intra_area_right : 8;
161*437bfbebSnyanmisaka         RK_U32 intra_area_left : 8;
162*437bfbebSnyanmisaka         RK_U32 intra_area_bottom : 8;
163*437bfbebSnyanmisaka         RK_U32 intra_area_top : 8;
164*437bfbebSnyanmisaka     } sw46;
165*437bfbebSnyanmisaka 
166*437bfbebSnyanmisaka     struct {
167*437bfbebSnyanmisaka         RK_U32 cir_interval : 16;
168*437bfbebSnyanmisaka         RK_U32 cir_start : 16;
169*437bfbebSnyanmisaka     } sw47;
170*437bfbebSnyanmisaka 
171*437bfbebSnyanmisaka     struct {
172*437bfbebSnyanmisaka         RK_U32 base_in_lum : 32;
173*437bfbebSnyanmisaka     } sw48;
174*437bfbebSnyanmisaka 
175*437bfbebSnyanmisaka     struct {
176*437bfbebSnyanmisaka         RK_U32 base_in_cb : 32;
177*437bfbebSnyanmisaka     } sw49;
178*437bfbebSnyanmisaka 
179*437bfbebSnyanmisaka     struct {
180*437bfbebSnyanmisaka         RK_U32 base_in_cr : 32;
181*437bfbebSnyanmisaka     } sw50;
182*437bfbebSnyanmisaka 
183*437bfbebSnyanmisaka     struct {
184*437bfbebSnyanmisaka         RK_U32 strm_hdr_rem1 : 32;
185*437bfbebSnyanmisaka     } sw51;
186*437bfbebSnyanmisaka 
187*437bfbebSnyanmisaka     struct {
188*437bfbebSnyanmisaka         RK_U32 strm_hdr_rem2 : 32;
189*437bfbebSnyanmisaka     } sw52;
190*437bfbebSnyanmisaka 
191*437bfbebSnyanmisaka     struct {
192*437bfbebSnyanmisaka         RK_U32 strm_buf_limit : 32;
193*437bfbebSnyanmisaka     } sw53;
194*437bfbebSnyanmisaka 
195*437bfbebSnyanmisaka     struct {
196*437bfbebSnyanmisaka         RK_U32 val : 32;
197*437bfbebSnyanmisaka     } sw54;
198*437bfbebSnyanmisaka 
199*437bfbebSnyanmisaka     RK_U32 sw55;
200*437bfbebSnyanmisaka 
201*437bfbebSnyanmisaka     struct {
202*437bfbebSnyanmisaka         RK_U32 base_ref_lum : 32;
203*437bfbebSnyanmisaka     } sw56;
204*437bfbebSnyanmisaka 
205*437bfbebSnyanmisaka     struct {
206*437bfbebSnyanmisaka         RK_U32 base_ref_chr : 32;
207*437bfbebSnyanmisaka     } sw57;
208*437bfbebSnyanmisaka 
209*437bfbebSnyanmisaka     struct {
210*437bfbebSnyanmisaka         RK_U32 : 11;
211*437bfbebSnyanmisaka         RK_U32 qp_sum : 21;
212*437bfbebSnyanmisaka     } sw58;
213*437bfbebSnyanmisaka 
214*437bfbebSnyanmisaka     struct {
215*437bfbebSnyanmisaka         RK_U32 : 8;
216*437bfbebSnyanmisaka         RK_U32 slice_size : 7;
217*437bfbebSnyanmisaka         RK_U32 strea_mmode : 1;
218*437bfbebSnyanmisaka         RK_U32 inter4_restrict : 1;
219*437bfbebSnyanmisaka         RK_U32 transform_8x8 : 1;
220*437bfbebSnyanmisaka         RK_U32 : 2;
221*437bfbebSnyanmisaka         RK_U32 cabac_enable : 1;
222*437bfbebSnyanmisaka         RK_U32 cabac_init_idc : 2;
223*437bfbebSnyanmisaka         RK_U32 : 1;
224*437bfbebSnyanmisaka         RK_U32 deblocking : 2;
225*437bfbebSnyanmisaka         RK_U32 : 2;
226*437bfbebSnyanmisaka         RK_U32 disable_qp_mv : 1;
227*437bfbebSnyanmisaka         RK_U32 : 3;
228*437bfbebSnyanmisaka     } sw59;
229*437bfbebSnyanmisaka 
230*437bfbebSnyanmisaka     struct {
231*437bfbebSnyanmisaka         RK_U32 y_fill : 4;
232*437bfbebSnyanmisaka         RK_U32 x_fill : 2;
233*437bfbebSnyanmisaka         RK_U32 : 2;
234*437bfbebSnyanmisaka         RK_U32 skip_penalty : 8;
235*437bfbebSnyanmisaka         RK_U32 start_offset : 6;
236*437bfbebSnyanmisaka         RK_U32 : 10;
237*437bfbebSnyanmisaka     } sw60;
238*437bfbebSnyanmisaka 
239*437bfbebSnyanmisaka     struct {
240*437bfbebSnyanmisaka         RK_U32 row_length : 14;
241*437bfbebSnyanmisaka         RK_U32 : 2;
242*437bfbebSnyanmisaka         RK_U32 lum_offset : 3;
243*437bfbebSnyanmisaka         RK_U32 : 1;
244*437bfbebSnyanmisaka         RK_U32 chr_offset : 3;
245*437bfbebSnyanmisaka         RK_U32 : 9;
246*437bfbebSnyanmisaka     } sw61;
247*437bfbebSnyanmisaka 
248*437bfbebSnyanmisaka     struct {
249*437bfbebSnyanmisaka         RK_U32 rlc_sum : 23;
250*437bfbebSnyanmisaka         RK_U32 : 9;
251*437bfbebSnyanmisaka     } sw62;
252*437bfbebSnyanmisaka 
253*437bfbebSnyanmisaka     struct {
254*437bfbebSnyanmisaka         RK_U32 base_rec_lum : 32;
255*437bfbebSnyanmisaka     } sw63;
256*437bfbebSnyanmisaka 
257*437bfbebSnyanmisaka     struct {
258*437bfbebSnyanmisaka         RK_U32 base_rec_chr : 32;
259*437bfbebSnyanmisaka     } sw64;
260*437bfbebSnyanmisaka 
261*437bfbebSnyanmisaka     struct {
262*437bfbebSnyanmisaka         RK_U32 y1_quant_ac : 14;
263*437bfbebSnyanmisaka         RK_U32 y1_zbin_ac : 9;
264*437bfbebSnyanmisaka         RK_U32 y1_round_ac : 8;
265*437bfbebSnyanmisaka         RK_U32 : 1;
266*437bfbebSnyanmisaka     } sw65;
267*437bfbebSnyanmisaka 
268*437bfbebSnyanmisaka     struct {
269*437bfbebSnyanmisaka         RK_U32 y2_quant_dc : 14;
270*437bfbebSnyanmisaka         RK_U32 y2_zbin_dc : 9;
271*437bfbebSnyanmisaka         RK_U32 y2_round_dc : 8;
272*437bfbebSnyanmisaka         RK_U32 : 1;
273*437bfbebSnyanmisaka     } sw66;
274*437bfbebSnyanmisaka 
275*437bfbebSnyanmisaka     struct {
276*437bfbebSnyanmisaka         RK_U32 y2_quant_ac : 14;
277*437bfbebSnyanmisaka         RK_U32 y2_zbin_ac : 9;
278*437bfbebSnyanmisaka         RK_U32 y2_round_ac : 8;
279*437bfbebSnyanmisaka         RK_U32 : 1;
280*437bfbebSnyanmisaka     } sw67;
281*437bfbebSnyanmisaka 
282*437bfbebSnyanmisaka     struct {
283*437bfbebSnyanmisaka         RK_U32 ch_quant_dc : 14;
284*437bfbebSnyanmisaka         RK_U32 ch_zbin_dc : 9;
285*437bfbebSnyanmisaka         RK_U32 ch_round_dc : 8;
286*437bfbebSnyanmisaka         RK_U32 : 1;
287*437bfbebSnyanmisaka     } sw68;
288*437bfbebSnyanmisaka 
289*437bfbebSnyanmisaka     struct {
290*437bfbebSnyanmisaka         RK_U32 ch_quant_ac : 14;
291*437bfbebSnyanmisaka         RK_U32 ch_zbin_ac : 9;
292*437bfbebSnyanmisaka         RK_U32 ch_round_ac : 8;
293*437bfbebSnyanmisaka         RK_U32 : 1;
294*437bfbebSnyanmisaka     } sw69;
295*437bfbebSnyanmisaka 
296*437bfbebSnyanmisaka     struct {
297*437bfbebSnyanmisaka         RK_U32 y1_dequant_dc : 8;
298*437bfbebSnyanmisaka         RK_U32 y1_dequant_ac : 9;
299*437bfbebSnyanmisaka         RK_U32 y2_dequant_dc : 9;
300*437bfbebSnyanmisaka         RK_U32 mv_ref_idx : 2 ;
301*437bfbebSnyanmisaka         RK_U32 : 4;
302*437bfbebSnyanmisaka     } sw70;
303*437bfbebSnyanmisaka 
304*437bfbebSnyanmisaka     struct {
305*437bfbebSnyanmisaka         RK_U32 y2_dequant_ac : 9;
306*437bfbebSnyanmisaka         RK_U32 ch_dequant_dc : 8;
307*437bfbebSnyanmisaka         RK_U32 ch_dequant_ac : 9;
308*437bfbebSnyanmisaka         RK_U32 mv_ref_idx2 : 2;
309*437bfbebSnyanmisaka         RK_U32 ref2_enable : 1;
310*437bfbebSnyanmisaka         RK_U32 segment_enable : 1;
311*437bfbebSnyanmisaka         RK_U32 segment_map_update : 1;
312*437bfbebSnyanmisaka         RK_U32 : 1;
313*437bfbebSnyanmisaka     } sw71;
314*437bfbebSnyanmisaka 
315*437bfbebSnyanmisaka     struct {
316*437bfbebSnyanmisaka         RK_U32 bool_enc_value : 32;
317*437bfbebSnyanmisaka     } sw72;
318*437bfbebSnyanmisaka 
319*437bfbebSnyanmisaka     struct {
320*437bfbebSnyanmisaka         RK_U32 bool_enc_range : 8;
321*437bfbebSnyanmisaka         RK_U32 bool_enc_value_bits : 5;
322*437bfbebSnyanmisaka         RK_U32 dct_partition_count : 2;
323*437bfbebSnyanmisaka         RK_U32 filter_level : 6;
324*437bfbebSnyanmisaka         RK_U32 filter_sharpness : 3;
325*437bfbebSnyanmisaka         RK_U32 golden_penalty : 8;
326*437bfbebSnyanmisaka     } sw73;
327*437bfbebSnyanmisaka 
328*437bfbebSnyanmisaka     struct {
329*437bfbebSnyanmisaka         RK_U32 nal_size_write : 1;
330*437bfbebSnyanmisaka         RK_U32 : 1;
331*437bfbebSnyanmisaka         RK_U32 input_rot : 2;
332*437bfbebSnyanmisaka         RK_U32 input_format : 4;
333*437bfbebSnyanmisaka         RK_U32 : 8;
334*437bfbebSnyanmisaka         RK_U32 num_slices_ready : 8;
335*437bfbebSnyanmisaka         RK_U32 mad_threshold : 6;
336*437bfbebSnyanmisaka         RK_U32 : 2;
337*437bfbebSnyanmisaka     } sw74;
338*437bfbebSnyanmisaka 
339*437bfbebSnyanmisaka     struct {
340*437bfbebSnyanmisaka         RK_U32 inter_favor : 16;
341*437bfbebSnyanmisaka         RK_U32 ip_intra_16_favor : 16;
342*437bfbebSnyanmisaka     } sw75;
343*437bfbebSnyanmisaka 
344*437bfbebSnyanmisaka     struct {
345*437bfbebSnyanmisaka         RK_U32 base_ref_lum2 : 32;
346*437bfbebSnyanmisaka     } sw76;
347*437bfbebSnyanmisaka 
348*437bfbebSnyanmisaka     struct {
349*437bfbebSnyanmisaka         RK_U32 base_stream : 32;
350*437bfbebSnyanmisaka     } sw77;
351*437bfbebSnyanmisaka 
352*437bfbebSnyanmisaka     struct {
353*437bfbebSnyanmisaka         RK_U32 base_control : 32;
354*437bfbebSnyanmisaka     } sw78;
355*437bfbebSnyanmisaka 
356*437bfbebSnyanmisaka     struct {
357*437bfbebSnyanmisaka         RK_U32 base_next_lum : 32;
358*437bfbebSnyanmisaka     } sw79;
359*437bfbebSnyanmisaka 
360*437bfbebSnyanmisaka     struct {
361*437bfbebSnyanmisaka         RK_U32 base_mv_write : 32;
362*437bfbebSnyanmisaka     } sw80;
363*437bfbebSnyanmisaka 
364*437bfbebSnyanmisaka     struct {
365*437bfbebSnyanmisaka         RK_U32 base_cabac_ctx : 32;
366*437bfbebSnyanmisaka     } sw81;
367*437bfbebSnyanmisaka 
368*437bfbebSnyanmisaka     struct {
369*437bfbebSnyanmisaka         RK_U32 roi1_right : 8;
370*437bfbebSnyanmisaka         RK_U32 roi1_left : 8;
371*437bfbebSnyanmisaka         RK_U32 roi1_bottom : 8;
372*437bfbebSnyanmisaka         RK_U32 roi1_top : 8;
373*437bfbebSnyanmisaka     } sw82;
374*437bfbebSnyanmisaka 
375*437bfbebSnyanmisaka     struct {
376*437bfbebSnyanmisaka         RK_U32 roi2_right : 8;
377*437bfbebSnyanmisaka         RK_U32 roi2_left : 8;
378*437bfbebSnyanmisaka         RK_U32 roi2_bottom : 8;
379*437bfbebSnyanmisaka         RK_U32 roi2_top : 8;
380*437bfbebSnyanmisaka     } sw83;
381*437bfbebSnyanmisaka 
382*437bfbebSnyanmisaka     RK_U32 sw84_93[10];
383*437bfbebSnyanmisaka 
384*437bfbebSnyanmisaka     struct {
385*437bfbebSnyanmisaka         RK_U32 stab_gmvx : 6;
386*437bfbebSnyanmisaka         RK_U32 stab_mode : 2;
387*437bfbebSnyanmisaka         RK_U32 stab_minimum : 24;
388*437bfbebSnyanmisaka     } sw94;
389*437bfbebSnyanmisaka 
390*437bfbebSnyanmisaka     struct {
391*437bfbebSnyanmisaka         RK_U32 rgb_coeff_a : 16;
392*437bfbebSnyanmisaka         RK_U32 rgb_coeff_b : 16;
393*437bfbebSnyanmisaka     } sw95;
394*437bfbebSnyanmisaka 
395*437bfbebSnyanmisaka     struct {
396*437bfbebSnyanmisaka         RK_U32 rgb_coeff_c : 16;
397*437bfbebSnyanmisaka         RK_U32 rgb_coeff_e : 16;
398*437bfbebSnyanmisaka     } sw96;
399*437bfbebSnyanmisaka 
400*437bfbebSnyanmisaka     struct {
401*437bfbebSnyanmisaka         RK_U32 rgb_coeff_f : 16;
402*437bfbebSnyanmisaka         RK_U32 : 16;
403*437bfbebSnyanmisaka     } sw97;
404*437bfbebSnyanmisaka 
405*437bfbebSnyanmisaka     struct {
406*437bfbebSnyanmisaka         RK_U32 r_mask_msb : 5;
407*437bfbebSnyanmisaka         RK_U32 : 3;
408*437bfbebSnyanmisaka         RK_U32 g_mask_msb : 5;
409*437bfbebSnyanmisaka         RK_U32 : 3;
410*437bfbebSnyanmisaka         RK_U32 b_mask_msb : 5;
411*437bfbebSnyanmisaka         RK_U32 : 11;
412*437bfbebSnyanmisaka     } sw98;
413*437bfbebSnyanmisaka 
414*437bfbebSnyanmisaka     struct {
415*437bfbebSnyanmisaka         RK_U32 split_mv : 1;
416*437bfbebSnyanmisaka         RK_U32 dmv_penalty_4p : 10;
417*437bfbebSnyanmisaka         RK_U32 dmv_penalty_qp : 10;
418*437bfbebSnyanmisaka         RK_U32 dmv_penalty_1p : 10;
419*437bfbebSnyanmisaka         RK_U32 : 1;
420*437bfbebSnyanmisaka     } sw99;
421*437bfbebSnyanmisaka 
422*437bfbebSnyanmisaka     struct {
423*437bfbebSnyanmisaka         RK_U32 y1_quant_dc : 14;
424*437bfbebSnyanmisaka         RK_U32 y1_zbin_dc : 9;
425*437bfbebSnyanmisaka         RK_U32 y1_round_dc : 8;
426*437bfbebSnyanmisaka         RK_U32 : 1;
427*437bfbebSnyanmisaka     } sw100;
428*437bfbebSnyanmisaka 
429*437bfbebSnyanmisaka     RK_U32 sw101;
430*437bfbebSnyanmisaka 
431*437bfbebSnyanmisaka     struct {
432*437bfbebSnyanmisaka         RK_U32 mvc_inter_view_flag : 1;
433*437bfbebSnyanmisaka         RK_U32 mvc_temporal_id : 3;
434*437bfbebSnyanmisaka         RK_U32 mvc_priority_id : 3;
435*437bfbebSnyanmisaka         RK_U32 mvc_anchor_pic_flag : 1;
436*437bfbebSnyanmisaka         RK_U32 mvc_view_id : 3;
437*437bfbebSnyanmisaka         RK_U32 split_penalty_4x4 : 9;
438*437bfbebSnyanmisaka         RK_U32 zero_mv_favor : 4;
439*437bfbebSnyanmisaka         RK_U32 : 8;
440*437bfbebSnyanmisaka     } sw102;
441*437bfbebSnyanmisaka 
442*437bfbebSnyanmisaka     struct {
443*437bfbebSnyanmisaka         RK_U32 enable : 1;
444*437bfbebSnyanmisaka         RK_U32 : 3;
445*437bfbebSnyanmisaka         RK_U32 encoding_mode : 2;
446*437bfbebSnyanmisaka         RK_U32 picture_type : 2;
447*437bfbebSnyanmisaka         RK_U32 width : 9;
448*437bfbebSnyanmisaka         RK_U32 : 3;
449*437bfbebSnyanmisaka         RK_U32 height : 9;
450*437bfbebSnyanmisaka         RK_U32 : 3;
451*437bfbebSnyanmisaka     } sw103;
452*437bfbebSnyanmisaka 
453*437bfbebSnyanmisaka     struct {
454*437bfbebSnyanmisaka         RK_U32 mad_count : 16;
455*437bfbebSnyanmisaka         RK_U32 mb_count : 16;
456*437bfbebSnyanmisaka     } sw104;
457*437bfbebSnyanmisaka 
458*437bfbebSnyanmisaka     struct {
459*437bfbebSnyanmisaka         RK_U32 val : 32;
460*437bfbebSnyanmisaka     } sw105;
461*437bfbebSnyanmisaka 
462*437bfbebSnyanmisaka     struct {
463*437bfbebSnyanmisaka         RK_U32 base_ref_chr2 : 32;
464*437bfbebSnyanmisaka     } sw106;
465*437bfbebSnyanmisaka 
466*437bfbebSnyanmisaka     struct {
467*437bfbebSnyanmisaka         RK_U32 split_penalty_8x4 : 10;
468*437bfbebSnyanmisaka         RK_U32 split_penalty_8x8 : 10;
469*437bfbebSnyanmisaka         RK_U32 split_penalty_16x8 : 10;
470*437bfbebSnyanmisaka         RK_U32 : 2;
471*437bfbebSnyanmisaka     } sw107;
472*437bfbebSnyanmisaka 
473*437bfbebSnyanmisaka     struct {
474*437bfbebSnyanmisaka         RK_U32 base_prob_count : 32;
475*437bfbebSnyanmisaka     } sw108;
476*437bfbebSnyanmisaka 
477*437bfbebSnyanmisaka     struct {
478*437bfbebSnyanmisaka         RK_U32 val : 16;
479*437bfbebSnyanmisaka         RK_U32 int_slice_ready : 1;
480*437bfbebSnyanmisaka         RK_U32 : 3;
481*437bfbebSnyanmisaka         RK_U32 rec_write_disable : 1;
482*437bfbebSnyanmisaka         RK_U32 : 3;
483*437bfbebSnyanmisaka         RK_U32 mv_write : 1;
484*437bfbebSnyanmisaka         RK_U32 : 7;
485*437bfbebSnyanmisaka     } sw109;
486*437bfbebSnyanmisaka 
487*437bfbebSnyanmisaka     RK_U32 sw110_119[10];
488*437bfbebSnyanmisaka 
489*437bfbebSnyanmisaka     struct {
490*437bfbebSnyanmisaka         RK_U32 penalty_0 : 8;
491*437bfbebSnyanmisaka         RK_U32 penalty_1 : 8;
492*437bfbebSnyanmisaka         RK_U32 penalty_2 : 8;
493*437bfbebSnyanmisaka         RK_U32 penalty_3 : 8;
494*437bfbebSnyanmisaka     } sw120_183[64];
495*437bfbebSnyanmisaka 
496*437bfbebSnyanmisaka } Vp8eVepu2Reg_t;
497*437bfbebSnyanmisaka 
498*437bfbebSnyanmisaka #endif /*__HAL_VP8E_VEPU2_REG_H__*/
499