xref: /rockchip-linux_mpp/mpp/hal/rkenc/common/vepu510_common.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1*437bfbebSnyanmisaka /* SPDX-License-Identifier: Apache-2.0 */
2*437bfbebSnyanmisaka /*
3*437bfbebSnyanmisaka  * Copyright (c) 2024 Rockchip Electronics Co., Ltd.
4*437bfbebSnyanmisaka  */
5*437bfbebSnyanmisaka 
6*437bfbebSnyanmisaka #ifndef __VEPU510_COMMON_H__
7*437bfbebSnyanmisaka #define __VEPU510_COMMON_H__
8*437bfbebSnyanmisaka 
9*437bfbebSnyanmisaka #include "rk_venc_cmd.h"
10*437bfbebSnyanmisaka 
11*437bfbebSnyanmisaka #define VEPU510_CTL_OFFSET           (0 * sizeof(RK_U32))       /* 0x00000000 reg0    - 0x00000120 reg72 */
12*437bfbebSnyanmisaka #define VEPU510_FRAME_OFFSET         (156 * sizeof(RK_U32))     /* 0x00000270 reg156  - 0x000003f4 reg253 */
13*437bfbebSnyanmisaka #define VEPU510_RC_ROI_OFFSET        (1024 * sizeof(RK_U32))    /* 0x00001000 reg1024 - 0x0000110c reg1091 */
14*437bfbebSnyanmisaka #define VEPU510_PARAM_OFFSET         (1472 * sizeof(RK_U32))    /* 0x00001700 reg1472 - 0x000019cc reg1651 */
15*437bfbebSnyanmisaka #define VEPU510_SQI_OFFSET           (2048 * sizeof(RK_U32))    /* 0x00002000 reg2048 - 0x0000212c reg2123 */
16*437bfbebSnyanmisaka #define VEPU510_SCL_OFFSET           (2176 * sizeof(RK_U32))    /* 0x00002200 reg2176 - 0x00002584 reg2401 */
17*437bfbebSnyanmisaka #define VEPU510_STATUS_OFFSET        (4096 * sizeof(RK_U32))    /* 0x00004000 reg4096 - 0x0000424c reg4243 */
18*437bfbebSnyanmisaka #define VEPU510_DBG_OFFSET           (5120 * sizeof(RK_U32))    /* 0x00005000 reg5120 - 0x00005230 reg5260 */
19*437bfbebSnyanmisaka #define VEPU510_REG_BASE_HW_STATUS   (0x2c)
20*437bfbebSnyanmisaka #define VEPU510_MAX_ROI_NUM          8
21*437bfbebSnyanmisaka #define VEPU510_SLICE_FIFO_LEN       8
22*437bfbebSnyanmisaka 
23*437bfbebSnyanmisaka typedef struct Vepu510Online_t {
24*437bfbebSnyanmisaka     /* 0x00000270 reg156 */
25*437bfbebSnyanmisaka     struct {
26*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
27*437bfbebSnyanmisaka         RK_U32 adr_vsy_t    : 28;
28*437bfbebSnyanmisaka     } adr_vsy_t;
29*437bfbebSnyanmisaka 
30*437bfbebSnyanmisaka     /* 0x00000274 reg157 */
31*437bfbebSnyanmisaka     struct {
32*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
33*437bfbebSnyanmisaka         RK_U32 adr_vsc_t    : 28;
34*437bfbebSnyanmisaka     } adr_vsc_t;
35*437bfbebSnyanmisaka 
36*437bfbebSnyanmisaka     /* 0x00000278 reg158 */
37*437bfbebSnyanmisaka     struct {
38*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
39*437bfbebSnyanmisaka         RK_U32 adr_vsy_b    : 28;
40*437bfbebSnyanmisaka     } adr_vsy_b;
41*437bfbebSnyanmisaka 
42*437bfbebSnyanmisaka     /* 0x0000027c reg159 */
43*437bfbebSnyanmisaka     struct {
44*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
45*437bfbebSnyanmisaka         RK_U32 adr_vsc_b    : 28;
46*437bfbebSnyanmisaka     } adr_vsc_b;
47*437bfbebSnyanmisaka } vepu510_online;
48*437bfbebSnyanmisaka 
49*437bfbebSnyanmisaka typedef struct RdoSkipPar_t {
50*437bfbebSnyanmisaka     struct {
51*437bfbebSnyanmisaka         RK_U32 madp_thd0    : 12;
52*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
53*437bfbebSnyanmisaka         RK_U32 madp_thd1    : 12;
54*437bfbebSnyanmisaka         RK_U32 reserved1    : 4;
55*437bfbebSnyanmisaka     } atf_thd0;
56*437bfbebSnyanmisaka 
57*437bfbebSnyanmisaka     /* 0x00002064 reg2073 */
58*437bfbebSnyanmisaka     struct {
59*437bfbebSnyanmisaka         RK_U32 madp_thd2    : 12;
60*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
61*437bfbebSnyanmisaka         RK_U32 madp_thd3    : 12;
62*437bfbebSnyanmisaka         RK_U32 reserved1    : 4;
63*437bfbebSnyanmisaka     } atf_thd1;
64*437bfbebSnyanmisaka 
65*437bfbebSnyanmisaka     /* 0x00002068 reg2074 */
66*437bfbebSnyanmisaka     struct {
67*437bfbebSnyanmisaka         RK_U32 wgt0    : 8;
68*437bfbebSnyanmisaka         RK_U32 wgt1    : 8;
69*437bfbebSnyanmisaka         RK_U32 wgt2    : 8;
70*437bfbebSnyanmisaka         RK_U32 wgt3    : 8;
71*437bfbebSnyanmisaka     } atf_wgt0;
72*437bfbebSnyanmisaka 
73*437bfbebSnyanmisaka     /* 0x0000206c reg2075 */
74*437bfbebSnyanmisaka     struct {
75*437bfbebSnyanmisaka         RK_U32 wgt4         : 8;
76*437bfbebSnyanmisaka         RK_U32 reserved     : 24;
77*437bfbebSnyanmisaka     } atf_wgt1;
78*437bfbebSnyanmisaka } rdo_skip_par;
79*437bfbebSnyanmisaka 
80*437bfbebSnyanmisaka typedef struct RdoNoSkipPar_t {
81*437bfbebSnyanmisaka     /* 0x00002080 reg2080 */
82*437bfbebSnyanmisaka     struct {
83*437bfbebSnyanmisaka         RK_U32 madp_thd0    : 12;
84*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
85*437bfbebSnyanmisaka         RK_U32 madp_thd1    : 12;
86*437bfbebSnyanmisaka         RK_U32 reserved1    : 4;
87*437bfbebSnyanmisaka     } ratf_thd0;
88*437bfbebSnyanmisaka 
89*437bfbebSnyanmisaka     /* 0x00002084 reg2081 */
90*437bfbebSnyanmisaka     struct {
91*437bfbebSnyanmisaka         RK_U32 madp_thd2             : 12;
92*437bfbebSnyanmisaka         RK_U32 reserved              : 4;
93*437bfbebSnyanmisaka         RK_U32 atf_bypass_pri_flag   : 1;
94*437bfbebSnyanmisaka         RK_U32 reserved1             : 15;
95*437bfbebSnyanmisaka     } ratf_thd1;
96*437bfbebSnyanmisaka 
97*437bfbebSnyanmisaka     /* 0x00002088 reg2082 */
98*437bfbebSnyanmisaka     struct {
99*437bfbebSnyanmisaka         RK_U32 wgt0    : 8;
100*437bfbebSnyanmisaka         RK_U32 wgt1    : 8;
101*437bfbebSnyanmisaka         RK_U32 wgt2    : 8;
102*437bfbebSnyanmisaka         RK_U32 wgt3    : 8;
103*437bfbebSnyanmisaka     } atf_wgt;
104*437bfbebSnyanmisaka } rdo_noskip_par;
105*437bfbebSnyanmisaka 
106*437bfbebSnyanmisaka typedef struct Vepu510RoiRegion_t {
107*437bfbebSnyanmisaka     struct {
108*437bfbebSnyanmisaka         RK_U32 roi_lt_x    : 10;
109*437bfbebSnyanmisaka         RK_U32 reserved     : 6;
110*437bfbebSnyanmisaka         RK_U32 roi_lt_y    : 10;
111*437bfbebSnyanmisaka         RK_U32 reserved1    : 6;
112*437bfbebSnyanmisaka     } roi_pos_lt;
113*437bfbebSnyanmisaka 
114*437bfbebSnyanmisaka     struct {
115*437bfbebSnyanmisaka         RK_U32 roi_rb_x    : 10;
116*437bfbebSnyanmisaka         RK_U32 reserved     : 6;
117*437bfbebSnyanmisaka         RK_U32 roi_rb_y    : 10;
118*437bfbebSnyanmisaka         RK_U32 reserved1    : 6;
119*437bfbebSnyanmisaka     } roi_pos_rb;
120*437bfbebSnyanmisaka 
121*437bfbebSnyanmisaka     struct {
122*437bfbebSnyanmisaka         RK_U32 roi_qp_value       : 7;
123*437bfbebSnyanmisaka         RK_U32 roi_qp_adj_mode    : 1;
124*437bfbebSnyanmisaka         RK_U32 roi_pri            : 5;
125*437bfbebSnyanmisaka         RK_U32 roi_en             : 1;
126*437bfbebSnyanmisaka         RK_U32 reserved           : 18;
127*437bfbebSnyanmisaka     } roi_base;
128*437bfbebSnyanmisaka 
129*437bfbebSnyanmisaka     struct {
130*437bfbebSnyanmisaka         RK_U32 roi_mdc_inter16         : 4;
131*437bfbebSnyanmisaka         RK_U32 roi_mdc_skip16          : 4;
132*437bfbebSnyanmisaka         RK_U32 roi_mdc_intra16         : 4;
133*437bfbebSnyanmisaka         RK_U32 roi0_mdc_inter32_hevc   : 4;
134*437bfbebSnyanmisaka         RK_U32 roi0_mdc_skip32_hevc    : 4;
135*437bfbebSnyanmisaka         RK_U32 roi0_mdc_intra32_hevc   : 4;
136*437bfbebSnyanmisaka         RK_U32 roi0_mdc_dpth_hevc      : 1;
137*437bfbebSnyanmisaka         RK_U32 reserved                : 7;
138*437bfbebSnyanmisaka     } roi_mdc;
139*437bfbebSnyanmisaka } Vepu510RoiRegion;
140*437bfbebSnyanmisaka 
141*437bfbebSnyanmisaka typedef struct Vepu510RoiCfg_t {
142*437bfbebSnyanmisaka     /* 0x00001080 reg1056 */
143*437bfbebSnyanmisaka     struct {
144*437bfbebSnyanmisaka         RK_U32 fmdc_adju_inter16         : 4;
145*437bfbebSnyanmisaka         RK_U32 fmdc_adju_skip16          : 4;
146*437bfbebSnyanmisaka         RK_U32 fmdc_adju_intra16         : 4;
147*437bfbebSnyanmisaka         RK_U32 fmdc_adju_inter32         : 4;
148*437bfbebSnyanmisaka         RK_U32 fmdc_adju_skip32          : 4;
149*437bfbebSnyanmisaka         RK_U32 fmdc_adju_intra32         : 4;
150*437bfbebSnyanmisaka         RK_U32 fmdc_adj_pri              : 5;
151*437bfbebSnyanmisaka         RK_U32 reserved                  : 3;
152*437bfbebSnyanmisaka     } fmdc_adj0;
153*437bfbebSnyanmisaka 
154*437bfbebSnyanmisaka     /* 0x00001084 reg1057 */
155*437bfbebSnyanmisaka     struct {
156*437bfbebSnyanmisaka         RK_U32 fmdc_adju_inter8         : 4;
157*437bfbebSnyanmisaka         RK_U32 fmdc_adju_skip8          : 4;
158*437bfbebSnyanmisaka         RK_U32 fmdc_adju_intra8         : 4;
159*437bfbebSnyanmisaka         RK_U32 reserved                 : 20;
160*437bfbebSnyanmisaka     } fmdc_adj1;
161*437bfbebSnyanmisaka 
162*437bfbebSnyanmisaka     RK_U32 reserved_1058;
163*437bfbebSnyanmisaka 
164*437bfbebSnyanmisaka     /* 0x0000108c reg1059 */
165*437bfbebSnyanmisaka     struct {
166*437bfbebSnyanmisaka         RK_U32 bmap_en               : 1;
167*437bfbebSnyanmisaka         RK_U32 bmap_pri              : 5;
168*437bfbebSnyanmisaka         RK_U32 bmap_qpmin            : 6;
169*437bfbebSnyanmisaka         RK_U32 bmap_qpmax            : 6;
170*437bfbebSnyanmisaka         RK_U32 bmap_mdc_dpth         : 1;
171*437bfbebSnyanmisaka         RK_U32 reserved              : 13;
172*437bfbebSnyanmisaka     } bmap_cfg;
173*437bfbebSnyanmisaka 
174*437bfbebSnyanmisaka     /* 0x00001090 reg1060 - 0x0000110c reg1091 */
175*437bfbebSnyanmisaka     Vepu510RoiRegion regions[8];
176*437bfbebSnyanmisaka } Vepu510RoiCfg;
177*437bfbebSnyanmisaka 
178*437bfbebSnyanmisaka /* class: control/link */
179*437bfbebSnyanmisaka /* 0x00000000 reg0 - 0x00000120 reg72 */
180*437bfbebSnyanmisaka typedef struct Vepu510ControlCfg_t {
181*437bfbebSnyanmisaka     /* 0x00000000 reg0 */
182*437bfbebSnyanmisaka     struct {
183*437bfbebSnyanmisaka         RK_U32 sub_ver      : 8;
184*437bfbebSnyanmisaka         RK_U32 h264_cap     : 1;
185*437bfbebSnyanmisaka         RK_U32 hevc_cap     : 1;
186*437bfbebSnyanmisaka         RK_U32 reserved     : 2;
187*437bfbebSnyanmisaka         RK_U32 res_cap      : 4;
188*437bfbebSnyanmisaka         RK_U32 osd_cap      : 2;
189*437bfbebSnyanmisaka         RK_U32 filtr_cap    : 2;
190*437bfbebSnyanmisaka         RK_U32 bfrm_cap     : 1;
191*437bfbebSnyanmisaka         RK_U32 fbc_cap      : 2;
192*437bfbebSnyanmisaka         RK_U32 reserved1    : 1;
193*437bfbebSnyanmisaka         RK_U32 ip_id        : 8;
194*437bfbebSnyanmisaka     } version;
195*437bfbebSnyanmisaka 
196*437bfbebSnyanmisaka     /* 0x00000004 - 0x0000000c */
197*437bfbebSnyanmisaka     RK_U32 reserved1_3[3];
198*437bfbebSnyanmisaka 
199*437bfbebSnyanmisaka     /* 0x00000010 reg4 */
200*437bfbebSnyanmisaka     struct {
201*437bfbebSnyanmisaka         RK_U32 lkt_num     : 8;
202*437bfbebSnyanmisaka         RK_U32 vepu_cmd    : 3;
203*437bfbebSnyanmisaka         RK_U32 reserved    : 21;
204*437bfbebSnyanmisaka     } enc_strt;
205*437bfbebSnyanmisaka 
206*437bfbebSnyanmisaka     /* 0x00000014 reg5 */
207*437bfbebSnyanmisaka     struct {
208*437bfbebSnyanmisaka         RK_U32 safe_clr     : 1;
209*437bfbebSnyanmisaka         RK_U32 force_clr    : 1;
210*437bfbebSnyanmisaka         RK_U32 reserved     : 30;
211*437bfbebSnyanmisaka     } enc_clr;
212*437bfbebSnyanmisaka 
213*437bfbebSnyanmisaka     /* 0x00000018 reg6 */
214*437bfbebSnyanmisaka     struct {
215*437bfbebSnyanmisaka         RK_U32 vswm_lcnt_soft    : 14;
216*437bfbebSnyanmisaka         RK_U32 vswm_fcnt_soft    : 8;
217*437bfbebSnyanmisaka         RK_U32 reserved          : 2;
218*437bfbebSnyanmisaka         RK_U32 dvbm_ack_soft     : 1;
219*437bfbebSnyanmisaka         RK_U32 dvbm_ack_sel      : 1;
220*437bfbebSnyanmisaka         RK_U32 dvbm_inf_sel      : 1;
221*437bfbebSnyanmisaka         RK_U32 reserved1         : 5;
222*437bfbebSnyanmisaka     } vs_ldly;
223*437bfbebSnyanmisaka 
224*437bfbebSnyanmisaka     /* 0x0000001c */
225*437bfbebSnyanmisaka     RK_U32 reserved_7;
226*437bfbebSnyanmisaka 
227*437bfbebSnyanmisaka     /* 0x00000020 reg8 */
228*437bfbebSnyanmisaka     struct {
229*437bfbebSnyanmisaka         RK_U32 enc_done_en          : 1;
230*437bfbebSnyanmisaka         RK_U32 lkt_node_done_en     : 1;
231*437bfbebSnyanmisaka         RK_U32 sclr_done_en         : 1;
232*437bfbebSnyanmisaka         RK_U32 vslc_done_en         : 1;
233*437bfbebSnyanmisaka         RK_U32 vbsf_oflw_en         : 1;
234*437bfbebSnyanmisaka         RK_U32 vbuf_lens_en         : 1;
235*437bfbebSnyanmisaka         RK_U32 enc_err_en           : 1;
236*437bfbebSnyanmisaka         RK_U32 vsrc_err_en          : 1;
237*437bfbebSnyanmisaka         RK_U32 wdg_en               : 1;
238*437bfbebSnyanmisaka         RK_U32 lkt_err_int_en       : 1;
239*437bfbebSnyanmisaka         RK_U32 lkt_err_stop_en      : 1;
240*437bfbebSnyanmisaka         RK_U32 lkt_force_stop_en    : 1;
241*437bfbebSnyanmisaka         RK_U32 jslc_done_en         : 1;
242*437bfbebSnyanmisaka         RK_U32 jbsf_oflw_en         : 1;
243*437bfbebSnyanmisaka         RK_U32 jbuf_lens_en         : 1;
244*437bfbebSnyanmisaka         RK_U32 dvbm_err_en          : 1;
245*437bfbebSnyanmisaka         RK_U32 reserved             : 16;
246*437bfbebSnyanmisaka     } int_en;
247*437bfbebSnyanmisaka 
248*437bfbebSnyanmisaka     /* 0x00000024 reg9 */
249*437bfbebSnyanmisaka     struct {
250*437bfbebSnyanmisaka         RK_U32 enc_done_msk          : 1;
251*437bfbebSnyanmisaka         RK_U32 lkt_node_done_msk     : 1;
252*437bfbebSnyanmisaka         RK_U32 sclr_done_msk         : 1;
253*437bfbebSnyanmisaka         RK_U32 vslc_done_msk         : 1;
254*437bfbebSnyanmisaka         RK_U32 vbsf_oflw_msk         : 1;
255*437bfbebSnyanmisaka         RK_U32 vbuf_lens_msk         : 1;
256*437bfbebSnyanmisaka         RK_U32 enc_err_msk           : 1;
257*437bfbebSnyanmisaka         RK_U32 vsrc_err_msk          : 1;
258*437bfbebSnyanmisaka         RK_U32 wdg_msk               : 1;
259*437bfbebSnyanmisaka         RK_U32 lkt_err_int_msk       : 1;
260*437bfbebSnyanmisaka         RK_U32 lkt_err_stop_msk      : 1;
261*437bfbebSnyanmisaka         RK_U32 lkt_force_stop_msk    : 1;
262*437bfbebSnyanmisaka         RK_U32 jslc_done_msk         : 1;
263*437bfbebSnyanmisaka         RK_U32 jbsf_oflw_msk         : 1;
264*437bfbebSnyanmisaka         RK_U32 jbuf_lens_msk         : 1;
265*437bfbebSnyanmisaka         RK_U32 dvbm_err_msk          : 1;
266*437bfbebSnyanmisaka         RK_U32 reserved              : 16;
267*437bfbebSnyanmisaka     } int_msk;
268*437bfbebSnyanmisaka 
269*437bfbebSnyanmisaka     /* 0x00000028 reg10 */
270*437bfbebSnyanmisaka     struct {
271*437bfbebSnyanmisaka         RK_U32 enc_done_clr          : 1;
272*437bfbebSnyanmisaka         RK_U32 lkt_node_done_clr     : 1;
273*437bfbebSnyanmisaka         RK_U32 sclr_done_clr         : 1;
274*437bfbebSnyanmisaka         RK_U32 vslc_done_clr         : 1;
275*437bfbebSnyanmisaka         RK_U32 vbsf_oflw_clr         : 1;
276*437bfbebSnyanmisaka         RK_U32 vbuf_lens_clr         : 1;
277*437bfbebSnyanmisaka         RK_U32 enc_err_clr           : 1;
278*437bfbebSnyanmisaka         RK_U32 vsrc_err_clr          : 1;
279*437bfbebSnyanmisaka         RK_U32 wdg_clr               : 1;
280*437bfbebSnyanmisaka         RK_U32 lkt_err_int_clr       : 1;
281*437bfbebSnyanmisaka         RK_U32 lkt_err_stop_clr      : 1;
282*437bfbebSnyanmisaka         RK_U32 lkt_force_stop_clr    : 1;
283*437bfbebSnyanmisaka         RK_U32 jslc_done_clr         : 1;
284*437bfbebSnyanmisaka         RK_U32 jbsf_oflw_clr         : 1;
285*437bfbebSnyanmisaka         RK_U32 jbuf_lens_clr         : 1;
286*437bfbebSnyanmisaka         RK_U32 dvbm_err_clr          : 1;
287*437bfbebSnyanmisaka         RK_U32 reserved              : 16;
288*437bfbebSnyanmisaka     } int_clr;
289*437bfbebSnyanmisaka 
290*437bfbebSnyanmisaka     /* 0x0000002c reg11 */
291*437bfbebSnyanmisaka     struct {
292*437bfbebSnyanmisaka         RK_U32 enc_done_sta          : 1;
293*437bfbebSnyanmisaka         RK_U32 lkt_node_done_sta     : 1;
294*437bfbebSnyanmisaka         RK_U32 sclr_done_sta         : 1;
295*437bfbebSnyanmisaka         RK_U32 vslc_done_sta         : 1;
296*437bfbebSnyanmisaka         RK_U32 vbsf_oflw_sta         : 1;
297*437bfbebSnyanmisaka         RK_U32 vbuf_lens_sta         : 1;
298*437bfbebSnyanmisaka         RK_U32 enc_err_sta           : 1;
299*437bfbebSnyanmisaka         RK_U32 vsrc_err_sta          : 1;
300*437bfbebSnyanmisaka         RK_U32 wdg_sta               : 1;
301*437bfbebSnyanmisaka         RK_U32 lkt_err_int_sta       : 1;
302*437bfbebSnyanmisaka         RK_U32 lkt_err_stop_sta      : 1;
303*437bfbebSnyanmisaka         RK_U32 lkt_force_stop_sta    : 1;
304*437bfbebSnyanmisaka         RK_U32 jslc_done_sta         : 1;
305*437bfbebSnyanmisaka         RK_U32 jbsf_oflw_sta         : 1;
306*437bfbebSnyanmisaka         RK_U32 jbuf_lens_sta         : 1;
307*437bfbebSnyanmisaka         RK_U32 dvbm_err_sta          : 1;
308*437bfbebSnyanmisaka         RK_U32 reserved              : 16;
309*437bfbebSnyanmisaka     } int_sta;
310*437bfbebSnyanmisaka 
311*437bfbebSnyanmisaka     /* 0x00000030 reg12 */
312*437bfbebSnyanmisaka     struct {
313*437bfbebSnyanmisaka         RK_U32 jpeg_bus_edin        : 4;
314*437bfbebSnyanmisaka         RK_U32 src_bus_edin         : 4;
315*437bfbebSnyanmisaka         RK_U32 meiw_bus_edin        : 4;
316*437bfbebSnyanmisaka         RK_U32 bsw_bus_edin         : 4;
317*437bfbebSnyanmisaka         RK_U32 reserved             : 8;
318*437bfbebSnyanmisaka         RK_U32 lktw_bus_edin        : 4;
319*437bfbebSnyanmisaka         RK_U32 rec_nfbc_bus_edin    : 4;
320*437bfbebSnyanmisaka     } dtrns_map;
321*437bfbebSnyanmisaka 
322*437bfbebSnyanmisaka     /* 0x00000034 reg13 */
323*437bfbebSnyanmisaka     struct {
324*437bfbebSnyanmisaka         RK_U32 reserved        : 16;
325*437bfbebSnyanmisaka         RK_U32 axi_brsp_cke    : 10;
326*437bfbebSnyanmisaka         RK_U32 reserved1       : 6;
327*437bfbebSnyanmisaka     } dtrns_cfg;
328*437bfbebSnyanmisaka 
329*437bfbebSnyanmisaka     /* 0x00000038 reg14 */
330*437bfbebSnyanmisaka     struct {
331*437bfbebSnyanmisaka         RK_U32 vs_load_thd    : 24;
332*437bfbebSnyanmisaka         RK_U32 reserved       : 8;
333*437bfbebSnyanmisaka     } enc_wdg;
334*437bfbebSnyanmisaka 
335*437bfbebSnyanmisaka     /* 0x0000003c - 0x0000004c */
336*437bfbebSnyanmisaka     RK_U32 reserved15_19[5];
337*437bfbebSnyanmisaka 
338*437bfbebSnyanmisaka     /* 0x00000050 reg20 */
339*437bfbebSnyanmisaka     struct {
340*437bfbebSnyanmisaka         RK_U32 idle_en_core    : 1;
341*437bfbebSnyanmisaka         RK_U32 idle_en_axi     : 1;
342*437bfbebSnyanmisaka         RK_U32 idle_en_ahb     : 1;
343*437bfbebSnyanmisaka         RK_U32 reserved        : 29;
344*437bfbebSnyanmisaka     } enc_idle_en;
345*437bfbebSnyanmisaka 
346*437bfbebSnyanmisaka     /* 0x00000054 reg21 */
347*437bfbebSnyanmisaka     struct {
348*437bfbebSnyanmisaka         RK_U32 cke              : 1;
349*437bfbebSnyanmisaka         RK_U32 resetn_hw_en     : 1;
350*437bfbebSnyanmisaka         RK_U32 rfpr_err_e       : 1;
351*437bfbebSnyanmisaka         RK_U32 sram_ckg_en      : 1;
352*437bfbebSnyanmisaka         RK_U32 link_err_stop    : 1;
353*437bfbebSnyanmisaka         RK_U32 reserved         : 27;
354*437bfbebSnyanmisaka     } opt_strg;
355*437bfbebSnyanmisaka 
356*437bfbebSnyanmisaka     /* 0x00000058 reg22 */
357*437bfbebSnyanmisaka     union {
358*437bfbebSnyanmisaka         struct {
359*437bfbebSnyanmisaka             RK_U32 tq8_ckg           : 1;
360*437bfbebSnyanmisaka             RK_U32 tq4_ckg           : 1;
361*437bfbebSnyanmisaka             RK_U32 bits_ckg_8x8      : 1;
362*437bfbebSnyanmisaka             RK_U32 bits_ckg_4x4_1    : 1;
363*437bfbebSnyanmisaka             RK_U32 bits_ckg_4x4_0    : 1;
364*437bfbebSnyanmisaka             RK_U32 inter_mode_ckg    : 1;
365*437bfbebSnyanmisaka             RK_U32 inter_ctrl_ckg    : 1;
366*437bfbebSnyanmisaka             RK_U32 inter_pred_ckg    : 1;
367*437bfbebSnyanmisaka             RK_U32 intra8_ckg        : 1;
368*437bfbebSnyanmisaka             RK_U32 intra4_ckg        : 1;
369*437bfbebSnyanmisaka             RK_U32 reserved          : 22;
370*437bfbebSnyanmisaka         } h264;
371*437bfbebSnyanmisaka         struct {
372*437bfbebSnyanmisaka             RK_U32 recon32_ckg       : 1;
373*437bfbebSnyanmisaka             RK_U32 iqit32_ckg        : 1;
374*437bfbebSnyanmisaka             RK_U32 q32_ckg           : 1;
375*437bfbebSnyanmisaka             RK_U32 t32_ckg           : 1;
376*437bfbebSnyanmisaka             RK_U32 cabac32_ckg       : 1;
377*437bfbebSnyanmisaka             RK_U32 recon16_ckg       : 1;
378*437bfbebSnyanmisaka             RK_U32 iqit16_ckg        : 1;
379*437bfbebSnyanmisaka             RK_U32 q16_ckg           : 1;
380*437bfbebSnyanmisaka             RK_U32 t16_ckg           : 1;
381*437bfbebSnyanmisaka             RK_U32 cabac16_ckg       : 1;
382*437bfbebSnyanmisaka             RK_U32 recon8_ckg        : 1;
383*437bfbebSnyanmisaka             RK_U32 iqit8_ckg         : 1;
384*437bfbebSnyanmisaka             RK_U32 q8_ckg            : 1;
385*437bfbebSnyanmisaka             RK_U32 t8_ckg            : 1;
386*437bfbebSnyanmisaka             RK_U32 cabac8_ckg        : 1;
387*437bfbebSnyanmisaka             RK_U32 recon4_ckg        : 1;
388*437bfbebSnyanmisaka             RK_U32 iqit4_ckg         : 1;
389*437bfbebSnyanmisaka             RK_U32 q4_ckg            : 1;
390*437bfbebSnyanmisaka             RK_U32 t4_ckg            : 1;
391*437bfbebSnyanmisaka             RK_U32 cabac4_ckg        : 1;
392*437bfbebSnyanmisaka             RK_U32 intra32_ckg       : 1;
393*437bfbebSnyanmisaka             RK_U32 intra16_ckg       : 1;
394*437bfbebSnyanmisaka             RK_U32 intra8_ckg        : 1;
395*437bfbebSnyanmisaka             RK_U32 intra4_ckg        : 1;
396*437bfbebSnyanmisaka             RK_U32 inter_pred_ckg    : 1;
397*437bfbebSnyanmisaka             RK_U32 reserved          : 7;
398*437bfbebSnyanmisaka         } hevc;
399*437bfbebSnyanmisaka     } rdo_ckg;
400*437bfbebSnyanmisaka 
401*437bfbebSnyanmisaka     /* 0x0000005c reg23 */
402*437bfbebSnyanmisaka     struct {
403*437bfbebSnyanmisaka         RK_U32 core_id     : 2;
404*437bfbebSnyanmisaka         RK_U32 reserved    : 30;
405*437bfbebSnyanmisaka     } core_id;
406*437bfbebSnyanmisaka } Vepu510ControlCfg;
407*437bfbebSnyanmisaka 
408*437bfbebSnyanmisaka /* 0x00000270 reg156  - 0x0000039c reg231 */
409*437bfbebSnyanmisaka typedef struct Vepu510FrmCommon_t {
410*437bfbebSnyanmisaka     /* 0x00000270 reg156 - 0x0000027c reg159 */
411*437bfbebSnyanmisaka     vepu510_online online_addr;
412*437bfbebSnyanmisaka 
413*437bfbebSnyanmisaka     /* 0x00000280 reg160 */
414*437bfbebSnyanmisaka     RK_U32 adr_src0;
415*437bfbebSnyanmisaka 
416*437bfbebSnyanmisaka     /* 0x00000284 reg161 */
417*437bfbebSnyanmisaka     RK_U32 adr_src1;
418*437bfbebSnyanmisaka 
419*437bfbebSnyanmisaka     /* 0x00000288 reg162 */
420*437bfbebSnyanmisaka     RK_U32 adr_src2;
421*437bfbebSnyanmisaka 
422*437bfbebSnyanmisaka     /* 0x0000028c reg163 */
423*437bfbebSnyanmisaka     RK_U32 rfpw_h_addr;
424*437bfbebSnyanmisaka 
425*437bfbebSnyanmisaka     /* 0x00000290 reg164 */
426*437bfbebSnyanmisaka     RK_U32 rfpw_b_addr;
427*437bfbebSnyanmisaka 
428*437bfbebSnyanmisaka     /* 0x00000294 reg165 */
429*437bfbebSnyanmisaka     RK_U32 rfpr_h_addr;
430*437bfbebSnyanmisaka 
431*437bfbebSnyanmisaka     /* 0x00000298 reg166 */
432*437bfbebSnyanmisaka     RK_U32 rfpr_b_addr;
433*437bfbebSnyanmisaka 
434*437bfbebSnyanmisaka     /* 0x0000029c reg167 */
435*437bfbebSnyanmisaka     RK_U32 colmvw_addr;
436*437bfbebSnyanmisaka 
437*437bfbebSnyanmisaka     /* 0x000002a0 reg168 */
438*437bfbebSnyanmisaka     RK_U32 colmvr_addr;
439*437bfbebSnyanmisaka 
440*437bfbebSnyanmisaka     /* 0x000002a4 reg169 */
441*437bfbebSnyanmisaka     RK_U32 dspw_addr;
442*437bfbebSnyanmisaka 
443*437bfbebSnyanmisaka     /* 0x000002a8 reg170 */
444*437bfbebSnyanmisaka     RK_U32 dspr_addr;
445*437bfbebSnyanmisaka 
446*437bfbebSnyanmisaka     /* 0x000002ac reg171 */
447*437bfbebSnyanmisaka     RK_U32 meiw_addr;
448*437bfbebSnyanmisaka 
449*437bfbebSnyanmisaka     /* 0x000002b0 reg172 */
450*437bfbebSnyanmisaka     RK_U32 bsbt_addr;
451*437bfbebSnyanmisaka 
452*437bfbebSnyanmisaka     /* 0x000002b4 reg173 */
453*437bfbebSnyanmisaka     RK_U32 bsbb_addr;
454*437bfbebSnyanmisaka 
455*437bfbebSnyanmisaka     /* 0x000002b8 reg174 */
456*437bfbebSnyanmisaka     RK_U32 adr_bsbs;
457*437bfbebSnyanmisaka 
458*437bfbebSnyanmisaka     /* 0x000002bc reg175 */
459*437bfbebSnyanmisaka     RK_U32 bsbr_addr;
460*437bfbebSnyanmisaka 
461*437bfbebSnyanmisaka     /* 0x000002c0 reg176 */
462*437bfbebSnyanmisaka     RK_U32 lpfw_addr;
463*437bfbebSnyanmisaka 
464*437bfbebSnyanmisaka     /* 0x000002c4 reg177 */
465*437bfbebSnyanmisaka     RK_U32 lpfr_addr;
466*437bfbebSnyanmisaka 
467*437bfbebSnyanmisaka     /* 0x000002c8 reg178 */
468*437bfbebSnyanmisaka     RK_U32 ebuft_addr;
469*437bfbebSnyanmisaka 
470*437bfbebSnyanmisaka     /* 0x000002cc reg179 */
471*437bfbebSnyanmisaka     RK_U32 ebufb_addr;
472*437bfbebSnyanmisaka 
473*437bfbebSnyanmisaka     /* 0x000002d0 reg180 */
474*437bfbebSnyanmisaka     RK_U32 rfpt_h_addr;
475*437bfbebSnyanmisaka 
476*437bfbebSnyanmisaka     /* 0x000002d4 reg181 */
477*437bfbebSnyanmisaka     RK_U32 rfpb_h_addr;
478*437bfbebSnyanmisaka 
479*437bfbebSnyanmisaka     /* 0x000002d8 reg182 */
480*437bfbebSnyanmisaka     RK_U32 rfpt_b_addr;
481*437bfbebSnyanmisaka 
482*437bfbebSnyanmisaka     /* 0x000002dc reg183 */
483*437bfbebSnyanmisaka     RK_U32 adr_rfpb_b;
484*437bfbebSnyanmisaka 
485*437bfbebSnyanmisaka     /* 0x000002e0 reg184 */
486*437bfbebSnyanmisaka     RK_U32 adr_smear_rd;
487*437bfbebSnyanmisaka 
488*437bfbebSnyanmisaka     /* 0x000002e4 reg185 */
489*437bfbebSnyanmisaka     RK_U32 adr_smear_wr;
490*437bfbebSnyanmisaka 
491*437bfbebSnyanmisaka     /* 0x000002e8 reg186 */
492*437bfbebSnyanmisaka     RK_U32 adr_roir;
493*437bfbebSnyanmisaka 
494*437bfbebSnyanmisaka     /* 0x2ec - 0x2fc */
495*437bfbebSnyanmisaka     RK_U32 reserved187_191[5];
496*437bfbebSnyanmisaka 
497*437bfbebSnyanmisaka     /* 0x00000300 reg192 */
498*437bfbebSnyanmisaka     struct {
499*437bfbebSnyanmisaka         RK_U32 enc_stnd                : 2;
500*437bfbebSnyanmisaka         RK_U32 cur_frm_ref             : 1;
501*437bfbebSnyanmisaka         RK_U32 mei_stor                : 1;
502*437bfbebSnyanmisaka         RK_U32 bs_scp                  : 1;
503*437bfbebSnyanmisaka         RK_U32 reserved                : 3;
504*437bfbebSnyanmisaka         RK_U32 pic_qp                  : 6;
505*437bfbebSnyanmisaka         RK_U32 num_pic_tot_cur_hevc    : 5;
506*437bfbebSnyanmisaka         RK_U32 log2_ctu_num_hevc       : 5;
507*437bfbebSnyanmisaka         RK_U32 reserved1               : 6;
508*437bfbebSnyanmisaka         RK_U32 slen_fifo               : 1;
509*437bfbebSnyanmisaka         RK_U32 rec_fbc_dis             : 1;
510*437bfbebSnyanmisaka     } enc_pic;
511*437bfbebSnyanmisaka 
512*437bfbebSnyanmisaka     /* 0x00000304 reg193 */
513*437bfbebSnyanmisaka     struct {
514*437bfbebSnyanmisaka         RK_U32 dchs_txid    : 2;
515*437bfbebSnyanmisaka         RK_U32 dchs_rxid    : 2;
516*437bfbebSnyanmisaka         RK_U32 dchs_txe     : 1;
517*437bfbebSnyanmisaka         RK_U32 dchs_rxe     : 1;
518*437bfbebSnyanmisaka         RK_U32 reserved     : 2;
519*437bfbebSnyanmisaka         RK_U32 dchs_dly     : 8;
520*437bfbebSnyanmisaka         RK_U32 dchs_ofst    : 10;
521*437bfbebSnyanmisaka         RK_U32 reserved1    : 6;
522*437bfbebSnyanmisaka     } dual_core;
523*437bfbebSnyanmisaka 
524*437bfbebSnyanmisaka     /* 0x00000308 reg194 */
525*437bfbebSnyanmisaka     struct {
526*437bfbebSnyanmisaka         RK_U32 frame_id        : 8;
527*437bfbebSnyanmisaka         RK_U32 frm_id_match    : 1;
528*437bfbebSnyanmisaka         RK_U32 reserved        : 7;
529*437bfbebSnyanmisaka         RK_U32 ch_id           : 2;
530*437bfbebSnyanmisaka         RK_U32 vrsp_rtn_en     : 1;
531*437bfbebSnyanmisaka         RK_U32 vinf_req_en     : 1;
532*437bfbebSnyanmisaka         RK_U32 reserved1       : 12;
533*437bfbebSnyanmisaka     } enc_id;
534*437bfbebSnyanmisaka 
535*437bfbebSnyanmisaka     /* 0x0000030c reg195 */
536*437bfbebSnyanmisaka     RK_U32 bsp_size;
537*437bfbebSnyanmisaka 
538*437bfbebSnyanmisaka     /* 0x00000310 reg196 */
539*437bfbebSnyanmisaka     struct {
540*437bfbebSnyanmisaka         RK_U32 pic_wd8_m1    : 11;
541*437bfbebSnyanmisaka         RK_U32 reserved      : 5;
542*437bfbebSnyanmisaka         RK_U32 pic_hd8_m1    : 11;
543*437bfbebSnyanmisaka         RK_U32 reserved1     : 5;
544*437bfbebSnyanmisaka     } enc_rsl;
545*437bfbebSnyanmisaka 
546*437bfbebSnyanmisaka     /* 0x00000314 reg197 */
547*437bfbebSnyanmisaka     struct {
548*437bfbebSnyanmisaka         RK_U32 pic_wfill    : 6;
549*437bfbebSnyanmisaka         RK_U32 reserved     : 10;
550*437bfbebSnyanmisaka         RK_U32 pic_hfill    : 6;
551*437bfbebSnyanmisaka         RK_U32 reserved1    : 10;
552*437bfbebSnyanmisaka     } src_fill;
553*437bfbebSnyanmisaka 
554*437bfbebSnyanmisaka     /* 0x00000318 reg198 */
555*437bfbebSnyanmisaka     struct {
556*437bfbebSnyanmisaka         RK_U32 alpha_swap            : 1;
557*437bfbebSnyanmisaka         RK_U32 rbuv_swap             : 1;
558*437bfbebSnyanmisaka         RK_U32 src_cfmt              : 4;
559*437bfbebSnyanmisaka         RK_U32 src_rcne              : 1;
560*437bfbebSnyanmisaka         RK_U32 out_fmt               : 1;
561*437bfbebSnyanmisaka         RK_U32 src_range_trns_en     : 1;
562*437bfbebSnyanmisaka         RK_U32 src_range_trns_sel    : 1;
563*437bfbebSnyanmisaka         RK_U32 chroma_ds_mode        : 1;
564*437bfbebSnyanmisaka         RK_U32 reserved              : 21;
565*437bfbebSnyanmisaka     } src_fmt;
566*437bfbebSnyanmisaka 
567*437bfbebSnyanmisaka     /* 0x0000031c reg199 */
568*437bfbebSnyanmisaka     struct {
569*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2y    : 9;
570*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2y    : 9;
571*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2y    : 9;
572*437bfbebSnyanmisaka         RK_U32 reserved       : 5;
573*437bfbebSnyanmisaka     } src_udfy;
574*437bfbebSnyanmisaka 
575*437bfbebSnyanmisaka     /* 0x00000320 reg200 */
576*437bfbebSnyanmisaka     struct {
577*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2u    : 9;
578*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2u    : 9;
579*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2u    : 9;
580*437bfbebSnyanmisaka         RK_U32 reserved       : 5;
581*437bfbebSnyanmisaka     } src_udfu;
582*437bfbebSnyanmisaka 
583*437bfbebSnyanmisaka     /* 0x00000324 reg201 */
584*437bfbebSnyanmisaka     struct {
585*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2v    : 9;
586*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2v    : 9;
587*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2v    : 9;
588*437bfbebSnyanmisaka         RK_U32 reserved       : 5;
589*437bfbebSnyanmisaka     } src_udfv;
590*437bfbebSnyanmisaka 
591*437bfbebSnyanmisaka     /* 0x00000328 reg202 */
592*437bfbebSnyanmisaka     struct {
593*437bfbebSnyanmisaka         RK_U32 csc_ofst_v    : 8;
594*437bfbebSnyanmisaka         RK_U32 csc_ofst_u    : 8;
595*437bfbebSnyanmisaka         RK_U32 csc_ofst_y    : 5;
596*437bfbebSnyanmisaka         RK_U32 reserved      : 11;
597*437bfbebSnyanmisaka     } src_udfo;
598*437bfbebSnyanmisaka 
599*437bfbebSnyanmisaka     /* 0x0000032c reg203 */
600*437bfbebSnyanmisaka     struct {
601*437bfbebSnyanmisaka         RK_U32 cr_force_value     : 8;
602*437bfbebSnyanmisaka         RK_U32 cb_force_value     : 8;
603*437bfbebSnyanmisaka         RK_U32 chroma_force_en    : 1;
604*437bfbebSnyanmisaka         RK_U32 reserved           : 9;
605*437bfbebSnyanmisaka         RK_U32 src_mirr           : 1;
606*437bfbebSnyanmisaka         RK_U32 src_rot            : 2;
607*437bfbebSnyanmisaka         RK_U32 tile4x4_en         : 1;
608*437bfbebSnyanmisaka         RK_U32 reserved1          : 2;
609*437bfbebSnyanmisaka     } src_proc;
610*437bfbebSnyanmisaka 
611*437bfbebSnyanmisaka     /* 0x00000330 reg204 */
612*437bfbebSnyanmisaka     struct {
613*437bfbebSnyanmisaka         RK_U32 pic_ofst_x    : 14;
614*437bfbebSnyanmisaka         RK_U32 reserved      : 2;
615*437bfbebSnyanmisaka         RK_U32 pic_ofst_y    : 14;
616*437bfbebSnyanmisaka         RK_U32 reserved1     : 2;
617*437bfbebSnyanmisaka     } pic_ofst;
618*437bfbebSnyanmisaka 
619*437bfbebSnyanmisaka     /* 0x00000334 reg205 */
620*437bfbebSnyanmisaka     struct {
621*437bfbebSnyanmisaka         RK_U32 src_strd0    : 21;
622*437bfbebSnyanmisaka         RK_U32 reserved     : 11;
623*437bfbebSnyanmisaka     } src_strd0;
624*437bfbebSnyanmisaka 
625*437bfbebSnyanmisaka     /* 0x00000338 reg206 */
626*437bfbebSnyanmisaka     struct {
627*437bfbebSnyanmisaka         RK_U32 src_strd1    : 16;
628*437bfbebSnyanmisaka         RK_U32 reserved     : 16;
629*437bfbebSnyanmisaka     } src_strd1;
630*437bfbebSnyanmisaka 
631*437bfbebSnyanmisaka     /* 0x33c - 0x34c */
632*437bfbebSnyanmisaka     RK_U32 reserved207_211[5];
633*437bfbebSnyanmisaka 
634*437bfbebSnyanmisaka     /* 0x00000350 reg212 */
635*437bfbebSnyanmisaka     struct {
636*437bfbebSnyanmisaka         RK_U32 rc_en         : 1;
637*437bfbebSnyanmisaka         RK_U32 aq_en         : 1;
638*437bfbebSnyanmisaka         RK_U32 reserved      : 10;
639*437bfbebSnyanmisaka         RK_U32 rc_ctu_num    : 20;
640*437bfbebSnyanmisaka     } rc_cfg;
641*437bfbebSnyanmisaka 
642*437bfbebSnyanmisaka     /* 0x00000354 reg213 */
643*437bfbebSnyanmisaka     struct {
644*437bfbebSnyanmisaka         RK_U32 reserved       : 16;
645*437bfbebSnyanmisaka         RK_U32 rc_qp_range    : 4;
646*437bfbebSnyanmisaka         RK_U32 rc_max_qp      : 6;
647*437bfbebSnyanmisaka         RK_U32 rc_min_qp      : 6;
648*437bfbebSnyanmisaka     } rc_qp;
649*437bfbebSnyanmisaka 
650*437bfbebSnyanmisaka     /* 0x00000358 reg214 */
651*437bfbebSnyanmisaka     struct {
652*437bfbebSnyanmisaka         RK_U32 ctu_ebit    : 20;
653*437bfbebSnyanmisaka         RK_U32 reserved    : 12;
654*437bfbebSnyanmisaka     } rc_tgt;
655*437bfbebSnyanmisaka 
656*437bfbebSnyanmisaka     /* 0x35c */
657*437bfbebSnyanmisaka     RK_U32 reserved_215;
658*437bfbebSnyanmisaka 
659*437bfbebSnyanmisaka     /* 0x00000360 reg216 */
660*437bfbebSnyanmisaka     struct {
661*437bfbebSnyanmisaka         RK_U32 sli_splt          : 1;
662*437bfbebSnyanmisaka         RK_U32 sli_splt_mode     : 1;
663*437bfbebSnyanmisaka         RK_U32 sli_splt_cpst     : 1;
664*437bfbebSnyanmisaka         RK_U32 reserved          : 12;
665*437bfbebSnyanmisaka         RK_U32 sli_flsh          : 1;
666*437bfbebSnyanmisaka         RK_U32 sli_max_num_m1    : 15;
667*437bfbebSnyanmisaka         RK_U32 reserved1         : 1;
668*437bfbebSnyanmisaka     } sli_splt;
669*437bfbebSnyanmisaka 
670*437bfbebSnyanmisaka     /* 0x00000364 reg217 */
671*437bfbebSnyanmisaka     struct {
672*437bfbebSnyanmisaka         RK_U32 sli_splt_byte    : 20;
673*437bfbebSnyanmisaka         RK_U32 reserved         : 12;
674*437bfbebSnyanmisaka     } sli_byte;
675*437bfbebSnyanmisaka 
676*437bfbebSnyanmisaka     /* 0x00000368 reg218 */
677*437bfbebSnyanmisaka     struct {
678*437bfbebSnyanmisaka         RK_U32 sli_splt_cnum_m1    : 20;
679*437bfbebSnyanmisaka         RK_U32 reserved            : 12;
680*437bfbebSnyanmisaka     } sli_cnum;
681*437bfbebSnyanmisaka 
682*437bfbebSnyanmisaka     /* 0x0000036c reg219 */
683*437bfbebSnyanmisaka     struct {
684*437bfbebSnyanmisaka         RK_U32 uvc_partition0_len    : 12;
685*437bfbebSnyanmisaka         RK_U32 uvc_partition_len     : 12;
686*437bfbebSnyanmisaka         RK_U32 uvc_skip_len          : 6;
687*437bfbebSnyanmisaka         RK_U32 reserved              : 2;
688*437bfbebSnyanmisaka     } vbs_pad;
689*437bfbebSnyanmisaka 
690*437bfbebSnyanmisaka     /* 0x00000370 reg220 */
691*437bfbebSnyanmisaka     struct {
692*437bfbebSnyanmisaka         RK_U32 cime_srch_dwnh    : 4;
693*437bfbebSnyanmisaka         RK_U32 cime_srch_uph     : 4;
694*437bfbebSnyanmisaka         RK_U32 cime_srch_rgtw    : 4;
695*437bfbebSnyanmisaka         RK_U32 cime_srch_lftw    : 4;
696*437bfbebSnyanmisaka         RK_U32 dlt_frm_num       : 16;
697*437bfbebSnyanmisaka     } me_rnge;
698*437bfbebSnyanmisaka 
699*437bfbebSnyanmisaka     /* 0x00000374 reg221 */
700*437bfbebSnyanmisaka     struct {
701*437bfbebSnyanmisaka         RK_U32 srgn_max_num      : 7;
702*437bfbebSnyanmisaka         RK_U32 cime_dist_thre    : 13;
703*437bfbebSnyanmisaka         RK_U32 rme_srch_h        : 2;
704*437bfbebSnyanmisaka         RK_U32 rme_srch_v        : 2;
705*437bfbebSnyanmisaka         RK_U32 rme_dis           : 3;
706*437bfbebSnyanmisaka         RK_U32 reserved          : 1;
707*437bfbebSnyanmisaka         RK_U32 fme_dis           : 3;
708*437bfbebSnyanmisaka         RK_U32 reserved1         : 1;
709*437bfbebSnyanmisaka     } me_cfg;
710*437bfbebSnyanmisaka 
711*437bfbebSnyanmisaka     /* 0x00000378 reg222 */
712*437bfbebSnyanmisaka     struct {
713*437bfbebSnyanmisaka         RK_U32 cime_zero_thre     : 13;
714*437bfbebSnyanmisaka         RK_U32 reserved           : 15;
715*437bfbebSnyanmisaka         RK_U32 fme_prefsu_en      : 2;
716*437bfbebSnyanmisaka         RK_U32 colmv_stor_hevc    : 1;
717*437bfbebSnyanmisaka         RK_U32 colmv_load_hevc    : 1;
718*437bfbebSnyanmisaka     } me_cach;
719*437bfbebSnyanmisaka 
720*437bfbebSnyanmisaka     /* 0x37c - 0x39c */
721*437bfbebSnyanmisaka     RK_U32 reserved223_231[9];
722*437bfbebSnyanmisaka } Vepu510FrmCommon;
723*437bfbebSnyanmisaka 
724*437bfbebSnyanmisaka /* class: rc/roi/aq/klut */
725*437bfbebSnyanmisaka /* 0x00001000 reg1024 - 0x0000110c reg1091 */
726*437bfbebSnyanmisaka typedef struct Vepu510RcRoi_t {
727*437bfbebSnyanmisaka     /* 0x00001000 reg1024 */
728*437bfbebSnyanmisaka     struct {
729*437bfbebSnyanmisaka         RK_U32 qp_adj0     : 5;
730*437bfbebSnyanmisaka         RK_U32 qp_adj1     : 5;
731*437bfbebSnyanmisaka         RK_U32 qp_adj2     : 5;
732*437bfbebSnyanmisaka         RK_U32 qp_adj3     : 5;
733*437bfbebSnyanmisaka         RK_U32 qp_adj4     : 5;
734*437bfbebSnyanmisaka         RK_U32 reserved    : 7;
735*437bfbebSnyanmisaka     } rc_adj0;
736*437bfbebSnyanmisaka 
737*437bfbebSnyanmisaka     /* 0x00001004 reg1025 */
738*437bfbebSnyanmisaka     struct {
739*437bfbebSnyanmisaka         RK_U32 qp_adj5     : 5;
740*437bfbebSnyanmisaka         RK_U32 qp_adj6     : 5;
741*437bfbebSnyanmisaka         RK_U32 qp_adj7     : 5;
742*437bfbebSnyanmisaka         RK_U32 qp_adj8     : 5;
743*437bfbebSnyanmisaka         RK_U32 reserved    : 12;
744*437bfbebSnyanmisaka     } rc_adj1;
745*437bfbebSnyanmisaka 
746*437bfbebSnyanmisaka     /* 0x00001008 reg1026 - 0x00001028 reg1034 */
747*437bfbebSnyanmisaka     RK_U32 rc_dthd_0_8[9];
748*437bfbebSnyanmisaka 
749*437bfbebSnyanmisaka     /* 0x102c */
750*437bfbebSnyanmisaka     RK_U32 reserved_1035;
751*437bfbebSnyanmisaka 
752*437bfbebSnyanmisaka     /* 0x00001030 reg1036 */
753*437bfbebSnyanmisaka     struct {
754*437bfbebSnyanmisaka         RK_U32 qpmin_area0    : 6;
755*437bfbebSnyanmisaka         RK_U32 qpmax_area0    : 6;
756*437bfbebSnyanmisaka         RK_U32 qpmin_area1    : 6;
757*437bfbebSnyanmisaka         RK_U32 qpmax_area1    : 6;
758*437bfbebSnyanmisaka         RK_U32 qpmin_area2    : 6;
759*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
760*437bfbebSnyanmisaka     } roi_qthd0;
761*437bfbebSnyanmisaka 
762*437bfbebSnyanmisaka     /* 0x00001034 reg1037 */
763*437bfbebSnyanmisaka     struct {
764*437bfbebSnyanmisaka         RK_U32 qpmax_area2    : 6;
765*437bfbebSnyanmisaka         RK_U32 qpmin_area3    : 6;
766*437bfbebSnyanmisaka         RK_U32 qpmax_area3    : 6;
767*437bfbebSnyanmisaka         RK_U32 qpmin_area4    : 6;
768*437bfbebSnyanmisaka         RK_U32 qpmax_area4    : 6;
769*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
770*437bfbebSnyanmisaka     } roi_qthd1;
771*437bfbebSnyanmisaka 
772*437bfbebSnyanmisaka     /* 0x00001038 reg1038 */
773*437bfbebSnyanmisaka     struct {
774*437bfbebSnyanmisaka         RK_U32 qpmin_area5    : 6;
775*437bfbebSnyanmisaka         RK_U32 qpmax_area5    : 6;
776*437bfbebSnyanmisaka         RK_U32 qpmin_area6    : 6;
777*437bfbebSnyanmisaka         RK_U32 qpmax_area6    : 6;
778*437bfbebSnyanmisaka         RK_U32 qpmin_area7    : 6;
779*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
780*437bfbebSnyanmisaka     } roi_qthd2;
781*437bfbebSnyanmisaka 
782*437bfbebSnyanmisaka     /* 0x0000103c reg1039 */
783*437bfbebSnyanmisaka     struct {
784*437bfbebSnyanmisaka         RK_U32 qpmax_area7    : 6;
785*437bfbebSnyanmisaka         RK_U32 reserved       : 24;
786*437bfbebSnyanmisaka         RK_U32 qpmap_mode     : 2;
787*437bfbebSnyanmisaka     } roi_qthd3;
788*437bfbebSnyanmisaka 
789*437bfbebSnyanmisaka     /* 0x00001040 reg1040 */
790*437bfbebSnyanmisaka     RK_U32 reserved_1040;
791*437bfbebSnyanmisaka 
792*437bfbebSnyanmisaka     /* 0x00001044 reg1041 - 0x00001050 reg1044 */
793*437bfbebSnyanmisaka     RK_U8 aq_tthd[16];
794*437bfbebSnyanmisaka 
795*437bfbebSnyanmisaka     /* 0x00001054 reg1045 */
796*437bfbebSnyanmisaka     struct {
797*437bfbebSnyanmisaka         RK_S32 aq_stp_s0     : 5;
798*437bfbebSnyanmisaka         RK_S32 aq_stp_0t1    : 5;
799*437bfbebSnyanmisaka         RK_S32 aq_stp_1t2    : 5;
800*437bfbebSnyanmisaka         RK_S32 aq_stp_2t3    : 5;
801*437bfbebSnyanmisaka         RK_S32 aq_stp_3t4    : 5;
802*437bfbebSnyanmisaka         RK_S32 aq_stp_4t5    : 5;
803*437bfbebSnyanmisaka         RK_S32 reserved      : 2;
804*437bfbebSnyanmisaka     } aq_stp0;
805*437bfbebSnyanmisaka 
806*437bfbebSnyanmisaka     /* 0x00001058 reg1046 */
807*437bfbebSnyanmisaka     struct {
808*437bfbebSnyanmisaka         RK_S32 aq_stp_5t6      : 5;
809*437bfbebSnyanmisaka         RK_S32 aq_stp_6t7      : 5;
810*437bfbebSnyanmisaka         RK_S32 aq_stp_7t8      : 5;
811*437bfbebSnyanmisaka         RK_S32 aq_stp_8t9      : 5;
812*437bfbebSnyanmisaka         RK_S32 aq_stp_9t10     : 5;
813*437bfbebSnyanmisaka         RK_S32 aq_stp_10t11    : 5;
814*437bfbebSnyanmisaka         RK_S32 reserved        : 2;
815*437bfbebSnyanmisaka     } aq_stp1;
816*437bfbebSnyanmisaka 
817*437bfbebSnyanmisaka     /* 0x0000105c reg1047 */
818*437bfbebSnyanmisaka     struct {
819*437bfbebSnyanmisaka         RK_S32 aq_stp_11t12    : 5;
820*437bfbebSnyanmisaka         RK_S32 aq_stp_12t13    : 5;
821*437bfbebSnyanmisaka         RK_S32 aq_stp_13t14    : 5;
822*437bfbebSnyanmisaka         RK_S32 aq_stp_14t15    : 5;
823*437bfbebSnyanmisaka         RK_S32 aq_stp_b15      : 5;
824*437bfbebSnyanmisaka         RK_U32 reserved        : 7;
825*437bfbebSnyanmisaka     } aq_stp2;
826*437bfbebSnyanmisaka 
827*437bfbebSnyanmisaka     /* 0x00001060 reg1048 */
828*437bfbebSnyanmisaka     struct {
829*437bfbebSnyanmisaka         RK_U32 aq16_rnge         : 4;
830*437bfbebSnyanmisaka         RK_U32 aq32_rnge         : 4;
831*437bfbebSnyanmisaka         RK_U32 aq8_rnge          : 5;
832*437bfbebSnyanmisaka         RK_U32 aq16_dif0         : 5;
833*437bfbebSnyanmisaka         RK_U32 aq16_dif1         : 5;
834*437bfbebSnyanmisaka         RK_U32 reserved          : 1;
835*437bfbebSnyanmisaka         RK_U32 aq_cme_en         : 1;
836*437bfbebSnyanmisaka         RK_U32 aq_subj_cme_en    : 1;
837*437bfbebSnyanmisaka         RK_U32 aq_rme_en         : 1;
838*437bfbebSnyanmisaka         RK_U32 aq_subj_rme_en    : 1;
839*437bfbebSnyanmisaka         RK_U32 reserved1         : 4;
840*437bfbebSnyanmisaka     } aq_clip;
841*437bfbebSnyanmisaka 
842*437bfbebSnyanmisaka     /* 0x00001064 reg1049 */
843*437bfbebSnyanmisaka     struct {
844*437bfbebSnyanmisaka         RK_U32 madi_th0    : 8;
845*437bfbebSnyanmisaka         RK_U32 madi_th1    : 8;
846*437bfbebSnyanmisaka         RK_U32 madi_th2    : 8;
847*437bfbebSnyanmisaka         RK_U32 reserved    : 8;
848*437bfbebSnyanmisaka     } madi_st_thd;
849*437bfbebSnyanmisaka 
850*437bfbebSnyanmisaka     /* 0x00001068 reg1050 */
851*437bfbebSnyanmisaka     struct {
852*437bfbebSnyanmisaka         RK_U32 madp_th0     : 12;
853*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
854*437bfbebSnyanmisaka         RK_U32 madp_th1     : 12;
855*437bfbebSnyanmisaka         RK_U32 reserved1    : 4;
856*437bfbebSnyanmisaka     } madp_st_thd0;
857*437bfbebSnyanmisaka 
858*437bfbebSnyanmisaka     /* 0x0000106c reg1051 */
859*437bfbebSnyanmisaka     struct {
860*437bfbebSnyanmisaka         RK_U32 madp_th2    : 12;
861*437bfbebSnyanmisaka         RK_U32 reserved    : 20;
862*437bfbebSnyanmisaka     } madp_st_thd1;
863*437bfbebSnyanmisaka 
864*437bfbebSnyanmisaka     /* 0x1070 - 0x1078 */
865*437bfbebSnyanmisaka     RK_U32 reserved1052_1054[3];
866*437bfbebSnyanmisaka 
867*437bfbebSnyanmisaka     /* 0x0000107c reg1055 */
868*437bfbebSnyanmisaka     struct {
869*437bfbebSnyanmisaka         RK_U32 chrm_klut_ofst                : 4;
870*437bfbebSnyanmisaka         RK_U32 reserved                      : 4;
871*437bfbebSnyanmisaka         RK_U32 inter_chrm_dist_multi         : 6;
872*437bfbebSnyanmisaka         RK_U32 reserved1                     : 18;
873*437bfbebSnyanmisaka     } klut_ofst;
874*437bfbebSnyanmisaka 
875*437bfbebSnyanmisaka     /*0x00001080 reg1056 - 0x0000110c reg1091 */
876*437bfbebSnyanmisaka     Vepu510RoiCfg roi_cfg;
877*437bfbebSnyanmisaka } Vepu510RcRoi;
878*437bfbebSnyanmisaka 
879*437bfbebSnyanmisaka /* class: scaling list  */
880*437bfbebSnyanmisaka /* 0x00002200 reg2176- 0x00002584 reg2401*/
881*437bfbebSnyanmisaka typedef struct Vepu510SclCfg_t {
882*437bfbebSnyanmisaka     /* 0x2200 - 0x221F, valid for h.264/h.h265, jpeg no use */
883*437bfbebSnyanmisaka     RK_U32 tu8_intra_y[16];
884*437bfbebSnyanmisaka     RK_U32 tu8_intra_u[16]; /* tu8_inter_y[16] for h.264 */
885*437bfbebSnyanmisaka 
886*437bfbebSnyanmisaka     /* 0x2220 - 0x2584, valid for h.265 only */
887*437bfbebSnyanmisaka     RK_U32 tu8_intra_v[16];
888*437bfbebSnyanmisaka     RK_U32 tu8_inter_y[16];
889*437bfbebSnyanmisaka     RK_U32 tu8_inter_u[16];
890*437bfbebSnyanmisaka     RK_U32 tu8_inter_v[16];
891*437bfbebSnyanmisaka     RK_U32 tu16_intra_y_ac[16];
892*437bfbebSnyanmisaka     RK_U32 tu16_intra_u_ac[16];
893*437bfbebSnyanmisaka     RK_U32 tu16_intra_v_ac[16];
894*437bfbebSnyanmisaka     RK_U32 tu16_inter_y_ac[16];
895*437bfbebSnyanmisaka     RK_U32 tu16_inter_u_ac[16];
896*437bfbebSnyanmisaka     RK_U32 tu16_inter_v_ac[16];
897*437bfbebSnyanmisaka     RK_U32 tu32_intra_y_ac[16];
898*437bfbebSnyanmisaka     RK_U32 tu32_inter_y_ac[16];
899*437bfbebSnyanmisaka 
900*437bfbebSnyanmisaka     /* 0x2580 */
901*437bfbebSnyanmisaka     struct {
902*437bfbebSnyanmisaka         RK_U32 tu16_intra_y_dc  : 8;
903*437bfbebSnyanmisaka         RK_U32 tu16_intra_u_dc  : 8;
904*437bfbebSnyanmisaka         RK_U32 tu16_intra_v_dc  : 8;
905*437bfbebSnyanmisaka         RK_U32 tu16_inter_y_dc  : 8;
906*437bfbebSnyanmisaka     } tu_dc0;
907*437bfbebSnyanmisaka 
908*437bfbebSnyanmisaka     /* 0x2584 */
909*437bfbebSnyanmisaka     struct {
910*437bfbebSnyanmisaka         RK_U32 tu16_inter_u_dc  : 8;
911*437bfbebSnyanmisaka         RK_U32 tu16_inter_v_dc  : 8;
912*437bfbebSnyanmisaka         RK_U32 tu32_intra_y_dc  : 8;
913*437bfbebSnyanmisaka         RK_U32 tu32_inter_y_dc  : 8;
914*437bfbebSnyanmisaka     } tu_dc1;
915*437bfbebSnyanmisaka } Vepu510SclCfg;
916*437bfbebSnyanmisaka 
917*437bfbebSnyanmisaka /* class: st */
918*437bfbebSnyanmisaka /* 0x00004000 reg4096 - 0x0000424c reg4243*/
919*437bfbebSnyanmisaka typedef struct Vepu510Status_t {
920*437bfbebSnyanmisaka     /* 0x00004000 reg4096 */
921*437bfbebSnyanmisaka     RK_U32 bs_lgth_l32;
922*437bfbebSnyanmisaka 
923*437bfbebSnyanmisaka     /* 0x00004004 reg4097 */
924*437bfbebSnyanmisaka     struct {
925*437bfbebSnyanmisaka         RK_U32 bs_lgth_h8    : 8;
926*437bfbebSnyanmisaka         RK_U32 reserved      : 8;
927*437bfbebSnyanmisaka         RK_U32 sse_l16       : 16;
928*437bfbebSnyanmisaka     } st_sse_bsl;
929*437bfbebSnyanmisaka 
930*437bfbebSnyanmisaka     /* 0x00004008 reg4098 */
931*437bfbebSnyanmisaka     RK_U32 sse_h32;
932*437bfbebSnyanmisaka 
933*437bfbebSnyanmisaka     /* 0x0000400c reg4099 */
934*437bfbebSnyanmisaka     RK_U32 qp_sum;
935*437bfbebSnyanmisaka 
936*437bfbebSnyanmisaka     /* 0x00004010 reg4100 */
937*437bfbebSnyanmisaka     struct {
938*437bfbebSnyanmisaka         RK_U32 sao_cnum    : 16;
939*437bfbebSnyanmisaka         RK_U32 sao_ynum    : 16;
940*437bfbebSnyanmisaka     } st_sao;
941*437bfbebSnyanmisaka 
942*437bfbebSnyanmisaka     /* 0x00004014 reg4101 */
943*437bfbebSnyanmisaka     RK_U32 rdo_head_bits;
944*437bfbebSnyanmisaka 
945*437bfbebSnyanmisaka     /* 0x00004018 reg4102 */
946*437bfbebSnyanmisaka     struct {
947*437bfbebSnyanmisaka         RK_U32 rdo_head_bits_h8    : 8;
948*437bfbebSnyanmisaka         RK_U32 reserved            : 8;
949*437bfbebSnyanmisaka         RK_U32 rdo_res_bits_l16    : 16;
950*437bfbebSnyanmisaka     } st_head_res_bl;
951*437bfbebSnyanmisaka 
952*437bfbebSnyanmisaka     /* 0x0000401c reg4103 */
953*437bfbebSnyanmisaka     RK_U32 rdo_res_bits_h24;
954*437bfbebSnyanmisaka 
955*437bfbebSnyanmisaka     /* 0x00004020 reg4104 */
956*437bfbebSnyanmisaka     struct {
957*437bfbebSnyanmisaka         RK_U32 st_enc             : 2;
958*437bfbebSnyanmisaka         RK_U32 st_sclr            : 1;
959*437bfbebSnyanmisaka         RK_U32 isp_src_oflw       : 1;
960*437bfbebSnyanmisaka         RK_U32 vepu_src_oflw      : 1;
961*437bfbebSnyanmisaka         RK_U32 vepu_fcnt_nmch     : 1;
962*437bfbebSnyanmisaka         RK_U32 vepu_fbd_err       : 5;
963*437bfbebSnyanmisaka         RK_U32 reserved           : 5;
964*437bfbebSnyanmisaka         RK_U32 dvbm_finf_wful     : 1;
965*437bfbebSnyanmisaka         RK_U32 dvbm_linf_wful     : 1;
966*437bfbebSnyanmisaka         RK_U32 dvbm_fcnt_late     : 1;
967*437bfbebSnyanmisaka         RK_U32 dvbm_fcnt_early    : 1;
968*437bfbebSnyanmisaka         RK_U32 dvbm_isp_oflw      : 1;
969*437bfbebSnyanmisaka         RK_U32 dvbm_vepu_oflw     : 1;
970*437bfbebSnyanmisaka         RK_U32 isp_time_out       : 1;
971*437bfbebSnyanmisaka         RK_U32 dvbm_vsrc_fcnt     : 1;
972*437bfbebSnyanmisaka         RK_U32 reserved1          : 8;
973*437bfbebSnyanmisaka     } st_enc;
974*437bfbebSnyanmisaka 
975*437bfbebSnyanmisaka     /* 0x00004024 reg4105 */
976*437bfbebSnyanmisaka     struct {
977*437bfbebSnyanmisaka         RK_U32 fnum_cfg_done    : 8;
978*437bfbebSnyanmisaka         RK_U32 fnum_cfg         : 8;
979*437bfbebSnyanmisaka         RK_U32 fnum_int         : 8;
980*437bfbebSnyanmisaka         RK_U32 fnum_enc_done    : 8;
981*437bfbebSnyanmisaka     } st_lkt;
982*437bfbebSnyanmisaka 
983*437bfbebSnyanmisaka     /* 0x00004028 reg4106 */
984*437bfbebSnyanmisaka     struct {
985*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
986*437bfbebSnyanmisaka         RK_U32 node_addr    : 28;
987*437bfbebSnyanmisaka     } st_nadr;
988*437bfbebSnyanmisaka 
989*437bfbebSnyanmisaka     /* 0x0000402c reg4107 */
990*437bfbebSnyanmisaka     struct {
991*437bfbebSnyanmisaka         RK_U32 bsbw_ovfl    : 1;
992*437bfbebSnyanmisaka         RK_U32 reserved     : 2;
993*437bfbebSnyanmisaka         RK_U32 bsbw_addr    : 28;
994*437bfbebSnyanmisaka         RK_U32 reserved1    : 1;
995*437bfbebSnyanmisaka     } st_bsb;
996*437bfbebSnyanmisaka 
997*437bfbebSnyanmisaka     /* 0x00004030 reg4108 */
998*437bfbebSnyanmisaka     struct {
999*437bfbebSnyanmisaka         RK_U32 axib_idl     : 8;
1000*437bfbebSnyanmisaka         RK_U32 axib_ovfl    : 8;
1001*437bfbebSnyanmisaka         RK_U32 axib_err     : 8;
1002*437bfbebSnyanmisaka         RK_U32 axir_err     : 8;
1003*437bfbebSnyanmisaka     } st_bus;
1004*437bfbebSnyanmisaka 
1005*437bfbebSnyanmisaka     /* 0x00004034 reg4109 */
1006*437bfbebSnyanmisaka     struct {
1007*437bfbebSnyanmisaka         RK_U32 sli_num_video     : 6;
1008*437bfbebSnyanmisaka         RK_U32 sli_num_jpeg      : 6;
1009*437bfbebSnyanmisaka         RK_U32 reserved          : 4;
1010*437bfbebSnyanmisaka         RK_U32 bpkt_num_video    : 7;
1011*437bfbebSnyanmisaka         RK_U32 bpkt_lst_video    : 1;
1012*437bfbebSnyanmisaka         RK_U32 bpkt_num_jpeg     : 7;
1013*437bfbebSnyanmisaka         RK_U32 bpkt_lst_jpeg     : 1;
1014*437bfbebSnyanmisaka     } st_snum;
1015*437bfbebSnyanmisaka 
1016*437bfbebSnyanmisaka     /* 0x00004038 reg4110 */
1017*437bfbebSnyanmisaka     struct {
1018*437bfbebSnyanmisaka         RK_U32 sli_len    : 31;
1019*437bfbebSnyanmisaka         RK_U32 sli_lst    : 1;
1020*437bfbebSnyanmisaka     } st_slen;
1021*437bfbebSnyanmisaka 
1022*437bfbebSnyanmisaka     /* 0x403c - reg4111 */
1023*437bfbebSnyanmisaka     struct {
1024*437bfbebSnyanmisaka         RK_U32 task_id_proc     : 12;
1025*437bfbebSnyanmisaka         RK_U32 task_id_done     : 12;
1026*437bfbebSnyanmisaka         RK_U32 task_done        : 1;
1027*437bfbebSnyanmisaka         RK_U32 task_lkt_err     : 3;
1028*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
1029*437bfbebSnyanmisaka     } st_link_task;
1030*437bfbebSnyanmisaka 
1031*437bfbebSnyanmisaka     /* 0x4040 - 0x405c */
1032*437bfbebSnyanmisaka     RK_U32 reserved4111_4119[8];
1033*437bfbebSnyanmisaka 
1034*437bfbebSnyanmisaka     /* 0x00004060 reg4120 */
1035*437bfbebSnyanmisaka     struct {
1036*437bfbebSnyanmisaka         RK_U32 sli_len_jpeg    : 31;
1037*437bfbebSnyanmisaka         RK_U32 sli_lst_jpeg    : 1;
1038*437bfbebSnyanmisaka     } st_slen_jpeg;
1039*437bfbebSnyanmisaka 
1040*437bfbebSnyanmisaka     /* 0x00004064 reg4121 */
1041*437bfbebSnyanmisaka     RK_U32 jpeg_head_bits_l32;
1042*437bfbebSnyanmisaka 
1043*437bfbebSnyanmisaka     /* 0x00004068 reg4122 */
1044*437bfbebSnyanmisaka     struct {
1045*437bfbebSnyanmisaka         RK_U32 jpeg_head_bits_h8    : 1;
1046*437bfbebSnyanmisaka         RK_U32 reserved             : 31;
1047*437bfbebSnyanmisaka     } st_bsl_h8_jpeg;
1048*437bfbebSnyanmisaka 
1049*437bfbebSnyanmisaka     /* 0x0000406c reg4123 */
1050*437bfbebSnyanmisaka     struct {
1051*437bfbebSnyanmisaka         RK_U32 jbsbw_ovfl    : 1;
1052*437bfbebSnyanmisaka         RK_U32 reserved      : 2;
1053*437bfbebSnyanmisaka         RK_U32 jbsbw_addr    : 28;
1054*437bfbebSnyanmisaka         RK_U32 reserved1     : 1;
1055*437bfbebSnyanmisaka     } st_jbsb;
1056*437bfbebSnyanmisaka 
1057*437bfbebSnyanmisaka     /* 0x4070 - 0x407c */
1058*437bfbebSnyanmisaka     RK_U32 reserved4124_4127[4];
1059*437bfbebSnyanmisaka 
1060*437bfbebSnyanmisaka     /* 0x00004080 reg4128 */
1061*437bfbebSnyanmisaka     struct {
1062*437bfbebSnyanmisaka         RK_U32 pnum_p64    : 17;
1063*437bfbebSnyanmisaka         RK_U32 reserved    : 15;
1064*437bfbebSnyanmisaka     } st_pnum_p64;
1065*437bfbebSnyanmisaka 
1066*437bfbebSnyanmisaka     /* 0x00004084 reg4129 */
1067*437bfbebSnyanmisaka     struct {
1068*437bfbebSnyanmisaka         RK_U32 pnum_p32    : 19;
1069*437bfbebSnyanmisaka         RK_U32 reserved    : 13;
1070*437bfbebSnyanmisaka     } st_pnum_p32;
1071*437bfbebSnyanmisaka 
1072*437bfbebSnyanmisaka     /* 0x00004088 reg4130 */
1073*437bfbebSnyanmisaka     struct {
1074*437bfbebSnyanmisaka         RK_U32 pnum_p16    : 21;
1075*437bfbebSnyanmisaka         RK_U32 reserved    : 11;
1076*437bfbebSnyanmisaka     } st_pnum_p16;
1077*437bfbebSnyanmisaka 
1078*437bfbebSnyanmisaka     /* 0x0000408c reg4131 */
1079*437bfbebSnyanmisaka     struct {
1080*437bfbebSnyanmisaka         RK_U32 pnum_p8     : 23;
1081*437bfbebSnyanmisaka         RK_U32 reserved    : 9;
1082*437bfbebSnyanmisaka     } st_pnum_p8;
1083*437bfbebSnyanmisaka 
1084*437bfbebSnyanmisaka     /* 0x00004090 reg4132 */
1085*437bfbebSnyanmisaka     struct {
1086*437bfbebSnyanmisaka         RK_U32 pnum_i32    : 19;
1087*437bfbebSnyanmisaka         RK_U32 reserved    : 13;
1088*437bfbebSnyanmisaka     } st_pnum_i32;
1089*437bfbebSnyanmisaka 
1090*437bfbebSnyanmisaka     /* 0x00004094 reg4133 */
1091*437bfbebSnyanmisaka     struct {
1092*437bfbebSnyanmisaka         RK_U32 pnum_i16    : 21;
1093*437bfbebSnyanmisaka         RK_U32 reserved    : 11;
1094*437bfbebSnyanmisaka     } st_pnum_i16;
1095*437bfbebSnyanmisaka 
1096*437bfbebSnyanmisaka     /* 0x00004098 reg4134 */
1097*437bfbebSnyanmisaka     struct {
1098*437bfbebSnyanmisaka         RK_U32 pnum_i8     : 23;
1099*437bfbebSnyanmisaka         RK_U32 reserved    : 9;
1100*437bfbebSnyanmisaka     } st_pnum_i8;
1101*437bfbebSnyanmisaka 
1102*437bfbebSnyanmisaka     /* 0x0000409c reg4135 */
1103*437bfbebSnyanmisaka     struct {
1104*437bfbebSnyanmisaka         RK_U32 pnum_i4     : 23;
1105*437bfbebSnyanmisaka         RK_U32 reserved    : 9;
1106*437bfbebSnyanmisaka     } st_pnum_i4;
1107*437bfbebSnyanmisaka 
1108*437bfbebSnyanmisaka     /* 0x000040a0 reg4136 */
1109*437bfbebSnyanmisaka     struct {
1110*437bfbebSnyanmisaka         RK_U32 num_b16     : 23;
1111*437bfbebSnyanmisaka         RK_U32 reserved    : 9;
1112*437bfbebSnyanmisaka     } st_bnum_b16;
1113*437bfbebSnyanmisaka 
1114*437bfbebSnyanmisaka     /* 0x000040a4 reg4137 */
1115*437bfbebSnyanmisaka     struct {
1116*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt0  : 8;
1117*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt1  : 8;
1118*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt2  : 8;
1119*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt3  : 8;
1120*437bfbebSnyanmisaka     } st_smear_cnt;
1121*437bfbebSnyanmisaka 
1122*437bfbebSnyanmisaka     /* 0x000040a8 reg4138 */
1123*437bfbebSnyanmisaka     RK_U32 madi16_sum;
1124*437bfbebSnyanmisaka 
1125*437bfbebSnyanmisaka     /* 0x000040ac reg4139 */
1126*437bfbebSnyanmisaka     RK_U32 madi32_sum;
1127*437bfbebSnyanmisaka 
1128*437bfbebSnyanmisaka     /* 0x000040b0 reg4140 */
1129*437bfbebSnyanmisaka     RK_U32 madp16_sum;
1130*437bfbebSnyanmisaka 
1131*437bfbebSnyanmisaka     /* 0x40b4 - 0x40bc */
1132*437bfbebSnyanmisaka     RK_U32 reserved4141_4143[3];
1133*437bfbebSnyanmisaka 
1134*437bfbebSnyanmisaka     /* 0x000040c0 reg4144 */
1135*437bfbebSnyanmisaka     struct {
1136*437bfbebSnyanmisaka         RK_U32 madi_th_lt_cnt0    : 16;
1137*437bfbebSnyanmisaka         RK_U32 madi_th_lt_cnt1    : 16;
1138*437bfbebSnyanmisaka     } st_madi_lt_num0;
1139*437bfbebSnyanmisaka 
1140*437bfbebSnyanmisaka     /* 0x000040c4 reg4145 */
1141*437bfbebSnyanmisaka     struct {
1142*437bfbebSnyanmisaka         RK_U32 madi_th_lt_cnt2    : 16;
1143*437bfbebSnyanmisaka         RK_U32 madi_th_lt_cnt3    : 16;
1144*437bfbebSnyanmisaka     } st_madi_lt_num1;
1145*437bfbebSnyanmisaka 
1146*437bfbebSnyanmisaka     /* 0x000040c8 reg4146 */
1147*437bfbebSnyanmisaka     struct {
1148*437bfbebSnyanmisaka         RK_U32 madi_th_rt_cnt0    : 16;
1149*437bfbebSnyanmisaka         RK_U32 madi_th_rt_cnt1    : 16;
1150*437bfbebSnyanmisaka     } st_madi_rt_num0;
1151*437bfbebSnyanmisaka 
1152*437bfbebSnyanmisaka     /* 0x000040cc reg4147 */
1153*437bfbebSnyanmisaka     struct {
1154*437bfbebSnyanmisaka         RK_U32 madi_th_rt_cnt2    : 16;
1155*437bfbebSnyanmisaka         RK_U32 madi_th_rt_cnt3    : 16;
1156*437bfbebSnyanmisaka     } st_madi_rt_num1;
1157*437bfbebSnyanmisaka 
1158*437bfbebSnyanmisaka     /* 0x000040d0 reg4148 */
1159*437bfbebSnyanmisaka     struct {
1160*437bfbebSnyanmisaka         RK_U32 madi_th_lb_cnt0    : 16;
1161*437bfbebSnyanmisaka         RK_U32 madi_th_lb_cnt1    : 16;
1162*437bfbebSnyanmisaka     } st_madi_lb_num0;
1163*437bfbebSnyanmisaka 
1164*437bfbebSnyanmisaka     /* 0x000040d4 reg4149 */
1165*437bfbebSnyanmisaka     struct {
1166*437bfbebSnyanmisaka         RK_U32 madi_th_lb_cnt2    : 16;
1167*437bfbebSnyanmisaka         RK_U32 madi_th_lb_cnt3    : 16;
1168*437bfbebSnyanmisaka     } st_madi_lb_num1;
1169*437bfbebSnyanmisaka 
1170*437bfbebSnyanmisaka     /* 0x000040d8 reg4150 */
1171*437bfbebSnyanmisaka     struct {
1172*437bfbebSnyanmisaka         RK_U32 madi_th_rb_cnt0    : 16;
1173*437bfbebSnyanmisaka         RK_U32 madi_th_rb_cnt1    : 16;
1174*437bfbebSnyanmisaka     } st_madi_rb_num0;
1175*437bfbebSnyanmisaka 
1176*437bfbebSnyanmisaka     /* 0x000040dc reg4151 */
1177*437bfbebSnyanmisaka     struct {
1178*437bfbebSnyanmisaka         RK_U32 madi_th_rb_cnt2    : 16;
1179*437bfbebSnyanmisaka         RK_U32 madi_th_rb_cnt3    : 16;
1180*437bfbebSnyanmisaka     } st_madi_rb_num1;
1181*437bfbebSnyanmisaka 
1182*437bfbebSnyanmisaka     /* 0x000040e0 reg4152 */
1183*437bfbebSnyanmisaka     struct {
1184*437bfbebSnyanmisaka         RK_U32 madp_th_lt_cnt0    : 16;
1185*437bfbebSnyanmisaka         RK_U32 madp_th_lt_cnt1    : 16;
1186*437bfbebSnyanmisaka     } st_madp_lt_num0;
1187*437bfbebSnyanmisaka 
1188*437bfbebSnyanmisaka     /* 0x000040e4 reg4153 */
1189*437bfbebSnyanmisaka     struct {
1190*437bfbebSnyanmisaka         RK_U32 madp_th_lt_cnt2    : 16;
1191*437bfbebSnyanmisaka         RK_U32 madp_th_lt_cnt3    : 16;
1192*437bfbebSnyanmisaka     } st_madp_lt_num1;
1193*437bfbebSnyanmisaka 
1194*437bfbebSnyanmisaka     /* 0x000040e8 reg4154 */
1195*437bfbebSnyanmisaka     struct {
1196*437bfbebSnyanmisaka         RK_U32 madp_th_rt_cnt0    : 16;
1197*437bfbebSnyanmisaka         RK_U32 madp_th_rt_cnt1    : 16;
1198*437bfbebSnyanmisaka     } st_madp_rt_num0;
1199*437bfbebSnyanmisaka 
1200*437bfbebSnyanmisaka     /* 0x000040ec reg4155 */
1201*437bfbebSnyanmisaka     struct {
1202*437bfbebSnyanmisaka         RK_U32 madp_th_rt_cnt2    : 16;
1203*437bfbebSnyanmisaka         RK_U32 madp_th_rt_cnt3    : 16;
1204*437bfbebSnyanmisaka     } st_madp_rt_num1;
1205*437bfbebSnyanmisaka 
1206*437bfbebSnyanmisaka     /* 0x000040f0 reg4156 */
1207*437bfbebSnyanmisaka     struct {
1208*437bfbebSnyanmisaka         RK_U32 madp_th_lb_cnt0    : 16;
1209*437bfbebSnyanmisaka         RK_U32 madp_th_lb_cnt1    : 16;
1210*437bfbebSnyanmisaka     } st_madp_lb_num0;
1211*437bfbebSnyanmisaka 
1212*437bfbebSnyanmisaka     /* 0x000040f4 reg4157 */
1213*437bfbebSnyanmisaka     struct {
1214*437bfbebSnyanmisaka         RK_U32 madp_th_lb_cnt2    : 16;
1215*437bfbebSnyanmisaka         RK_U32 madp_th_lb_cnt3    : 16;
1216*437bfbebSnyanmisaka     } st_madp_lb_num1;
1217*437bfbebSnyanmisaka 
1218*437bfbebSnyanmisaka     /* 0x000040f8 reg4158 */
1219*437bfbebSnyanmisaka     struct {
1220*437bfbebSnyanmisaka         RK_U32 madp_th_rb_cnt0    : 16;
1221*437bfbebSnyanmisaka         RK_U32 madp_th_rb_cnt1    : 16;
1222*437bfbebSnyanmisaka     } st_madp_rb_num0;
1223*437bfbebSnyanmisaka 
1224*437bfbebSnyanmisaka     /* 0x000040fc reg4159 */
1225*437bfbebSnyanmisaka     struct {
1226*437bfbebSnyanmisaka         RK_U32 madp_th_rb_cnt2    : 16;
1227*437bfbebSnyanmisaka         RK_U32 madp_th_rb_cnt3    : 16;
1228*437bfbebSnyanmisaka     } st_madp_rb_num1;
1229*437bfbebSnyanmisaka 
1230*437bfbebSnyanmisaka     /* 0x00004100 reg4160 */
1231*437bfbebSnyanmisaka     struct {
1232*437bfbebSnyanmisaka         RK_U32 cmv_th_lt_cnt0    : 16;
1233*437bfbebSnyanmisaka         RK_U32 cmv_th_lt_cnt1    : 16;
1234*437bfbebSnyanmisaka     } st_cmv_lt_num0;
1235*437bfbebSnyanmisaka 
1236*437bfbebSnyanmisaka     /* 0x00004104 reg4161 */
1237*437bfbebSnyanmisaka     struct {
1238*437bfbebSnyanmisaka         RK_U32 cmv_th_lt_cnt2    : 16;
1239*437bfbebSnyanmisaka         RK_U32 cmv_th_lt_cnt3    : 16;
1240*437bfbebSnyanmisaka     } st_cmv_lt_num1;
1241*437bfbebSnyanmisaka 
1242*437bfbebSnyanmisaka     /* 0x00004108 reg4162 */
1243*437bfbebSnyanmisaka     struct {
1244*437bfbebSnyanmisaka         RK_U32 cmv_th_rt_cnt0    : 16;
1245*437bfbebSnyanmisaka         RK_U32 cmv_th_rt_cnt1    : 16;
1246*437bfbebSnyanmisaka     } st_cmv_rt_num0;
1247*437bfbebSnyanmisaka 
1248*437bfbebSnyanmisaka     /* 0x0000410c reg4163 */
1249*437bfbebSnyanmisaka     struct {
1250*437bfbebSnyanmisaka         RK_U32 cmv_th_rt_cnt2    : 16;
1251*437bfbebSnyanmisaka         RK_U32 cmv_th_rt_cnt3    : 16;
1252*437bfbebSnyanmisaka     } st_cmv_rt_num1;
1253*437bfbebSnyanmisaka 
1254*437bfbebSnyanmisaka     /* 0x00004110 reg4164 */
1255*437bfbebSnyanmisaka     struct {
1256*437bfbebSnyanmisaka         RK_U32 cmv_th_lb_cnt0    : 16;
1257*437bfbebSnyanmisaka         RK_U32 cmv_th_lb_cnt1    : 16;
1258*437bfbebSnyanmisaka     } st_cmv_lb_num0;
1259*437bfbebSnyanmisaka 
1260*437bfbebSnyanmisaka     /* 0x00004114 reg4165 */
1261*437bfbebSnyanmisaka     struct {
1262*437bfbebSnyanmisaka         RK_U32 cmv_th_lb_cnt2    : 16;
1263*437bfbebSnyanmisaka         RK_U32 cmv_th_lb_cnt3    : 16;
1264*437bfbebSnyanmisaka     } st_cmv_lb_num1;
1265*437bfbebSnyanmisaka 
1266*437bfbebSnyanmisaka     /* 0x00004118 reg4166 */
1267*437bfbebSnyanmisaka     struct {
1268*437bfbebSnyanmisaka         RK_U32 cmv_th_rb_cnt0    : 16;
1269*437bfbebSnyanmisaka         RK_U32 cmv_th_rb_cnt1    : 16;
1270*437bfbebSnyanmisaka     } st_cmv_rb_num0;
1271*437bfbebSnyanmisaka 
1272*437bfbebSnyanmisaka     /* 0x0000411c reg4167 */
1273*437bfbebSnyanmisaka     struct {
1274*437bfbebSnyanmisaka         RK_U32 cmv_th_rb_cnt2    : 16;
1275*437bfbebSnyanmisaka         RK_U32 cmv_th_rb_cnt3    : 16;
1276*437bfbebSnyanmisaka     } st_cmv_rb_num1;
1277*437bfbebSnyanmisaka 
1278*437bfbebSnyanmisaka     /* 0x00004120 reg4168 */
1279*437bfbebSnyanmisaka     struct {
1280*437bfbebSnyanmisaka         RK_U32 org_y_r_max_value    : 8;
1281*437bfbebSnyanmisaka         RK_U32 org_y_r_min_value    : 8;
1282*437bfbebSnyanmisaka         RK_U32 org_u_g_max_value    : 8;
1283*437bfbebSnyanmisaka         RK_U32 org_u_g_min_value    : 8;
1284*437bfbebSnyanmisaka     } st_vsp_org_value0;
1285*437bfbebSnyanmisaka 
1286*437bfbebSnyanmisaka     /* 0x00004124 reg4169 */
1287*437bfbebSnyanmisaka     struct {
1288*437bfbebSnyanmisaka         RK_U32 org_v_b_max_value    : 8;
1289*437bfbebSnyanmisaka         RK_U32 org_v_b_min_value    : 8;
1290*437bfbebSnyanmisaka         RK_U32 reserved             : 16;
1291*437bfbebSnyanmisaka     } st_vsp_org_value1;
1292*437bfbebSnyanmisaka 
1293*437bfbebSnyanmisaka     /* 0x4128 - 0x412c */
1294*437bfbebSnyanmisaka     RK_U32 reserved4170_4171[2];
1295*437bfbebSnyanmisaka 
1296*437bfbebSnyanmisaka     /* 0x00004130 reg4172 */
1297*437bfbebSnyanmisaka     RK_U32 dsp_y_sum;
1298*437bfbebSnyanmisaka 
1299*437bfbebSnyanmisaka     /* 0x00004134 reg4173 */
1300*437bfbebSnyanmisaka     RK_U32 acc_zero_mv;
1301*437bfbebSnyanmisaka 
1302*437bfbebSnyanmisaka     /* 0x00004138 reg4174 */
1303*437bfbebSnyanmisaka     RK_U32 acc_dist0;
1304*437bfbebSnyanmisaka 
1305*437bfbebSnyanmisaka     /* 0x0000413c reg4175 */
1306*437bfbebSnyanmisaka     RK_U32 acc_block_num;
1307*437bfbebSnyanmisaka 
1308*437bfbebSnyanmisaka     /* 0x00004140 reg4176 */
1309*437bfbebSnyanmisaka     struct {
1310*437bfbebSnyanmisaka         RK_U32 num0_point_skin    : 15;
1311*437bfbebSnyanmisaka         RK_U32 acc_cmplx_num      : 17;
1312*437bfbebSnyanmisaka     } st_skin_sum0;
1313*437bfbebSnyanmisaka 
1314*437bfbebSnyanmisaka     /* 0x00004144 reg4177 */
1315*437bfbebSnyanmisaka     struct {
1316*437bfbebSnyanmisaka         RK_U32 num1_point_skin    : 15;
1317*437bfbebSnyanmisaka         RK_U32 acc_cover16_num    : 17;
1318*437bfbebSnyanmisaka     } st_skin_sum1;
1319*437bfbebSnyanmisaka 
1320*437bfbebSnyanmisaka     /* 0x00004148 reg4178 */
1321*437bfbebSnyanmisaka     struct {
1322*437bfbebSnyanmisaka         RK_U32 num2_point_skin    : 15;
1323*437bfbebSnyanmisaka         RK_U32 acc_bndry16_num    : 17;
1324*437bfbebSnyanmisaka     } st_skin_sum2;
1325*437bfbebSnyanmisaka 
1326*437bfbebSnyanmisaka     /* 0x0000414c reg4179 */
1327*437bfbebSnyanmisaka     RK_U32 num0_grdnt_point_dep0;
1328*437bfbebSnyanmisaka 
1329*437bfbebSnyanmisaka     /* 0x00004150 reg4180 */
1330*437bfbebSnyanmisaka     RK_U32 num1_grdnt_point_dep0;
1331*437bfbebSnyanmisaka 
1332*437bfbebSnyanmisaka     /* 0x00004154 reg4181 */
1333*437bfbebSnyanmisaka     RK_U32 num2_grdnt_point_dep0;
1334*437bfbebSnyanmisaka 
1335*437bfbebSnyanmisaka     /* 0x4158 - 0x417c */
1336*437bfbebSnyanmisaka     RK_U32 reserved4182_4191[10];
1337*437bfbebSnyanmisaka 
1338*437bfbebSnyanmisaka     /* 0x00004180 reg4192 - 0x0000424c reg4243*/
1339*437bfbebSnyanmisaka     RK_U32 st_b8_qp[52];
1340*437bfbebSnyanmisaka } Vepu510Status;
1341*437bfbebSnyanmisaka 
1342*437bfbebSnyanmisaka /* class: dbg/st/axipn */
1343*437bfbebSnyanmisaka /* 0x00005000 reg5120 - 0x0000230 reg5260*/
1344*437bfbebSnyanmisaka //TODO:
1345*437bfbebSnyanmisaka typedef struct Vepu510Dbg_t {
1346*437bfbebSnyanmisaka     /* 0x00005000 reg5120 */
1347*437bfbebSnyanmisaka     struct {
1348*437bfbebSnyanmisaka         RK_U32 vsp0_pos_x    : 16;
1349*437bfbebSnyanmisaka         RK_U32 vsp0_pos_y    : 16;
1350*437bfbebSnyanmisaka     } st_ppl_pos_vsp0;
1351*437bfbebSnyanmisaka 
1352*437bfbebSnyanmisaka     /* 0x00005004 reg5121 */
1353*437bfbebSnyanmisaka     struct {
1354*437bfbebSnyanmisaka         RK_U32 vsp1_pos_x    : 16;
1355*437bfbebSnyanmisaka         RK_U32 vsp1_pos_y    : 16;
1356*437bfbebSnyanmisaka     } st_ppl_pos_vsp1;
1357*437bfbebSnyanmisaka 
1358*437bfbebSnyanmisaka     /* 0x00005008 reg5122 */
1359*437bfbebSnyanmisaka     struct {
1360*437bfbebSnyanmisaka         RK_U32 cme_pos_x    : 16;
1361*437bfbebSnyanmisaka         RK_U32 cme_pos_y    : 16;
1362*437bfbebSnyanmisaka     } st_ppl_pos_cme;
1363*437bfbebSnyanmisaka 
1364*437bfbebSnyanmisaka     /* 0x0000500c reg5123 */
1365*437bfbebSnyanmisaka     struct {
1366*437bfbebSnyanmisaka         RK_U32 swin_cmd_x    : 16;
1367*437bfbebSnyanmisaka         RK_U32 swin_cmd_y    : 16;
1368*437bfbebSnyanmisaka     } st_ppl_cmd_swin;
1369*437bfbebSnyanmisaka 
1370*437bfbebSnyanmisaka     /* 0x00005010 reg5124 */
1371*437bfbebSnyanmisaka     struct {
1372*437bfbebSnyanmisaka         RK_U32 swin_pos_x    : 16;
1373*437bfbebSnyanmisaka         RK_U32 swin_pos_y    : 16;
1374*437bfbebSnyanmisaka     } st_ppl_pos_swin;
1375*437bfbebSnyanmisaka 
1376*437bfbebSnyanmisaka     /* 0x00005014 reg5125 */
1377*437bfbebSnyanmisaka     struct {
1378*437bfbebSnyanmisaka         RK_U32 pren_pos_x    : 16;
1379*437bfbebSnyanmisaka         RK_U32 pren_pos_y    : 16;
1380*437bfbebSnyanmisaka     } st_ppl_pos_pren;
1381*437bfbebSnyanmisaka 
1382*437bfbebSnyanmisaka     /* 0x00005018 reg5126 */
1383*437bfbebSnyanmisaka     struct {
1384*437bfbebSnyanmisaka         RK_U32 rfme_pos_x    : 16;
1385*437bfbebSnyanmisaka         RK_U32 rfme_pos_y    : 16;
1386*437bfbebSnyanmisaka     } st_ppl_pos_rfme;
1387*437bfbebSnyanmisaka 
1388*437bfbebSnyanmisaka     /* 0x0000501c reg5127 */
1389*437bfbebSnyanmisaka     struct {
1390*437bfbebSnyanmisaka         RK_U32 rdo_pos_x    : 16;
1391*437bfbebSnyanmisaka         RK_U32 rdo_pos_y    : 16;
1392*437bfbebSnyanmisaka     } st_ppl_pos_rdo;
1393*437bfbebSnyanmisaka 
1394*437bfbebSnyanmisaka     /* 0x00005020 reg5128 */
1395*437bfbebSnyanmisaka     struct {
1396*437bfbebSnyanmisaka         RK_U32 lpf_pos_x    : 16;
1397*437bfbebSnyanmisaka         RK_U32 lpf_pos_y    : 16;
1398*437bfbebSnyanmisaka     } st_ppl_pos_lpf;
1399*437bfbebSnyanmisaka 
1400*437bfbebSnyanmisaka     /* 0x00005024 reg5129 */
1401*437bfbebSnyanmisaka     struct {
1402*437bfbebSnyanmisaka         RK_U32 etpy_pos_x    : 16;
1403*437bfbebSnyanmisaka         RK_U32 etpy_pos_y    : 16;
1404*437bfbebSnyanmisaka     } st_ppl_pos_etpy;
1405*437bfbebSnyanmisaka 
1406*437bfbebSnyanmisaka     /* 0x00005028 reg5130 */
1407*437bfbebSnyanmisaka     struct {
1408*437bfbebSnyanmisaka         RK_U32 vsp0_pos_x    : 16;
1409*437bfbebSnyanmisaka         RK_U32 vsp0_pos_y    : 16;
1410*437bfbebSnyanmisaka     } st_ppl_pos_jsp0;
1411*437bfbebSnyanmisaka 
1412*437bfbebSnyanmisaka     /* 0x0000502c reg5131 */
1413*437bfbebSnyanmisaka     struct {
1414*437bfbebSnyanmisaka         RK_U32 vsp1_pos_x    : 16;
1415*437bfbebSnyanmisaka         RK_U32 vsp1_pos_y    : 16;
1416*437bfbebSnyanmisaka     } st_ppl_pos_jsp1;
1417*437bfbebSnyanmisaka 
1418*437bfbebSnyanmisaka     /* 0x00005030 reg5132 */
1419*437bfbebSnyanmisaka     struct {
1420*437bfbebSnyanmisaka         RK_U32 jpeg_pos_x    : 16;
1421*437bfbebSnyanmisaka         RK_U32 jpeg_pos_y    : 16;
1422*437bfbebSnyanmisaka     } st_ppl_pos_jpeg;
1423*437bfbebSnyanmisaka 
1424*437bfbebSnyanmisaka     /* 0x5034 - 0x503c */
1425*437bfbebSnyanmisaka     RK_U32 reserved5133_5135[3];
1426*437bfbebSnyanmisaka     /* 0x00005040 reg5136 */
1427*437bfbebSnyanmisaka     struct {
1428*437bfbebSnyanmisaka         RK_U32 vsp0_org_err     : 1;
1429*437bfbebSnyanmisaka         RK_U32 vsp0_vsld_err    : 1;
1430*437bfbebSnyanmisaka         RK_U32 pp0_pp1_err      : 1;
1431*437bfbebSnyanmisaka         RK_U32 vsp0_cmd_err     : 1;
1432*437bfbebSnyanmisaka         RK_U32 reserved         : 24;
1433*437bfbebSnyanmisaka         RK_U32 vsp0_wrk         : 1;
1434*437bfbebSnyanmisaka         RK_U32 vsp0_tout        : 1;
1435*437bfbebSnyanmisaka         RK_U32 reserved1        : 2;
1436*437bfbebSnyanmisaka     } dbg_ctrl_vsp0;
1437*437bfbebSnyanmisaka 
1438*437bfbebSnyanmisaka     /* 0x00005044 reg5137 */
1439*437bfbebSnyanmisaka     struct {
1440*437bfbebSnyanmisaka         RK_U32 vsp1_org_err    : 1;
1441*437bfbebSnyanmisaka         RK_U32 vsp1_rdo_err    : 1;
1442*437bfbebSnyanmisaka         RK_U32 reserved        : 26;
1443*437bfbebSnyanmisaka         RK_U32 vsp1_wrk        : 1;
1444*437bfbebSnyanmisaka         RK_U32 vsp1_tout       : 1;
1445*437bfbebSnyanmisaka         RK_U32 reserved1       : 2;
1446*437bfbebSnyanmisaka     } dbg_ctrl_vsp1;
1447*437bfbebSnyanmisaka 
1448*437bfbebSnyanmisaka     /* 0x00005048 reg5138 */
1449*437bfbebSnyanmisaka     struct {
1450*437bfbebSnyanmisaka         RK_U32 cme_org_err     : 1;
1451*437bfbebSnyanmisaka         RK_U32 cme_roi_err     : 1;
1452*437bfbebSnyanmisaka         RK_U32 cme_win_err     : 1;
1453*437bfbebSnyanmisaka         RK_U32 cme_cmmv_err    : 1;
1454*437bfbebSnyanmisaka         RK_U32 cme_smvp_err    : 1;
1455*437bfbebSnyanmisaka         RK_U32 cme_meiw_err    : 1;
1456*437bfbebSnyanmisaka         RK_U32 cme_dist_err    : 1;
1457*437bfbebSnyanmisaka         RK_U32 cme_rdo_err     : 1;
1458*437bfbebSnyanmisaka         RK_U32 cme_madp_err    : 1;
1459*437bfbebSnyanmisaka         RK_U32 cme_mv_err      : 1;
1460*437bfbebSnyanmisaka         RK_U32 reserved        : 18;
1461*437bfbebSnyanmisaka         RK_U32 cme_wrk         : 1;
1462*437bfbebSnyanmisaka         RK_U32 cme_tout        : 1;
1463*437bfbebSnyanmisaka         RK_U32 reserved1       : 2;
1464*437bfbebSnyanmisaka     } dbg_ctrl_cme;
1465*437bfbebSnyanmisaka 
1466*437bfbebSnyanmisaka     /* 0x0000504c reg5139 */
1467*437bfbebSnyanmisaka     struct {
1468*437bfbebSnyanmisaka         RK_U32 swin_org_err    : 1;
1469*437bfbebSnyanmisaka         RK_U32 swin_ref_err    : 1;
1470*437bfbebSnyanmisaka         RK_U32 swin_cmd_err    : 1;
1471*437bfbebSnyanmisaka         RK_U32 reserved        : 25;
1472*437bfbebSnyanmisaka         RK_U32 swin_wrk        : 1;
1473*437bfbebSnyanmisaka         RK_U32 swin_tout       : 1;
1474*437bfbebSnyanmisaka         RK_U32 reserved1       : 2;
1475*437bfbebSnyanmisaka     } dbg_ctrl_swin;
1476*437bfbebSnyanmisaka 
1477*437bfbebSnyanmisaka     /* 0x00005050 reg5140 */
1478*437bfbebSnyanmisaka     struct {
1479*437bfbebSnyanmisaka         RK_U32 swin_buff_ptr     : 2;
1480*437bfbebSnyanmisaka         RK_U32 swin_buff_num0    : 2;
1481*437bfbebSnyanmisaka         RK_U32 swin_buff_num1    : 2;
1482*437bfbebSnyanmisaka         RK_U32 swin_buff_num2    : 2;
1483*437bfbebSnyanmisaka         RK_U32 reserved          : 24;
1484*437bfbebSnyanmisaka     } dbg_ppl_swin;
1485*437bfbebSnyanmisaka 
1486*437bfbebSnyanmisaka     /* 0x00005054 reg5141 */
1487*437bfbebSnyanmisaka     struct {
1488*437bfbebSnyanmisaka         RK_U32 pnra_org_err     : 1;
1489*437bfbebSnyanmisaka         RK_U32 pnra_dist_err    : 1;
1490*437bfbebSnyanmisaka         RK_U32 pnra_olm_err     : 1;
1491*437bfbebSnyanmisaka         RK_U32 reserved         : 25;
1492*437bfbebSnyanmisaka         RK_U32 pnra_wrk         : 1;
1493*437bfbebSnyanmisaka         RK_U32 pnra_tout        : 1;
1494*437bfbebSnyanmisaka         RK_U32 reserved1        : 2;
1495*437bfbebSnyanmisaka     } dbg_ctrl_pren;
1496*437bfbebSnyanmisaka 
1497*437bfbebSnyanmisaka     /* 0x00005058 reg5142 */
1498*437bfbebSnyanmisaka     struct {
1499*437bfbebSnyanmisaka         RK_U32 rfme_org_err     : 1;
1500*437bfbebSnyanmisaka         RK_U32 rfme_ref_err     : 1;
1501*437bfbebSnyanmisaka         RK_U32 rfme_cmmv_err    : 1;
1502*437bfbebSnyanmisaka         RK_U32 rfme_rfmv_err    : 1;
1503*437bfbebSnyanmisaka         RK_U32 rfme_tmvp_err    : 1;
1504*437bfbebSnyanmisaka         RK_U32 reserved         : 23;
1505*437bfbebSnyanmisaka         RK_U32 rfme_wrk         : 1;
1506*437bfbebSnyanmisaka         RK_U32 rfme_tout        : 1;
1507*437bfbebSnyanmisaka         RK_U32 reserved1        : 2;
1508*437bfbebSnyanmisaka     } dbg_ctrl_rfme;
1509*437bfbebSnyanmisaka 
1510*437bfbebSnyanmisaka     /* 0x0000505c reg5143 */
1511*437bfbebSnyanmisaka     struct {
1512*437bfbebSnyanmisaka         RK_U32 rdo_org_err        : 1;
1513*437bfbebSnyanmisaka         RK_U32 rdo_ref_err        : 1;
1514*437bfbebSnyanmisaka         RK_U32 rdo_inf_err        : 1;
1515*437bfbebSnyanmisaka         RK_U32 rdo_roi_err        : 1;
1516*437bfbebSnyanmisaka         RK_U32 rdo_rfmv_err       : 1;
1517*437bfbebSnyanmisaka         RK_U32 rdo_lbfr_err       : 1;
1518*437bfbebSnyanmisaka         RK_U32 rdo_lbfw_err       : 1;
1519*437bfbebSnyanmisaka         RK_U32 rdo_tmvp_rd_err    : 1;
1520*437bfbebSnyanmisaka         RK_U32 rdo_tmvp_wr_err    : 1;
1521*437bfbebSnyanmisaka         RK_U32 rdo_st_err         : 1;
1522*437bfbebSnyanmisaka         RK_U32 rdo_pnra_err       : 1;
1523*437bfbebSnyanmisaka         RK_U32 rdo_lpf_err        : 1;
1524*437bfbebSnyanmisaka         RK_U32 rdo_ent_err        : 1;
1525*437bfbebSnyanmisaka         RK_U32 reserved           : 15;
1526*437bfbebSnyanmisaka         RK_U32 rdo_wrk            : 1;
1527*437bfbebSnyanmisaka         RK_U32 rdo_tout           : 1;
1528*437bfbebSnyanmisaka         RK_U32 reserved1          : 2;
1529*437bfbebSnyanmisaka     } dbg_ctrl_rdo;
1530*437bfbebSnyanmisaka 
1531*437bfbebSnyanmisaka     /* 0x00005060 reg5144 */
1532*437bfbebSnyanmisaka     struct {
1533*437bfbebSnyanmisaka         RK_U32 lpf_org_err     : 1;
1534*437bfbebSnyanmisaka         RK_U32 lpf_lbfr_err    : 1;
1535*437bfbebSnyanmisaka         RK_U32 lpf_lbfw_err    : 1;
1536*437bfbebSnyanmisaka         RK_U32 lpf_rcol_err    : 1;
1537*437bfbebSnyanmisaka         RK_U32 reserved        : 24;
1538*437bfbebSnyanmisaka         RK_U32 lpf_wrk         : 1;
1539*437bfbebSnyanmisaka         RK_U32 lpf_tout        : 1;
1540*437bfbebSnyanmisaka         RK_U32 reserved1       : 2;
1541*437bfbebSnyanmisaka     } dbg_ctrl_lpf;
1542*437bfbebSnyanmisaka 
1543*437bfbebSnyanmisaka     /* 0x00005064 reg5145 */
1544*437bfbebSnyanmisaka     struct {
1545*437bfbebSnyanmisaka         RK_U32 etpy_bsw_err    : 1;
1546*437bfbebSnyanmisaka         RK_U32 reserved        : 27;
1547*437bfbebSnyanmisaka         RK_U32 etpy_wrk        : 1;
1548*437bfbebSnyanmisaka         RK_U32 etpy_tout       : 1;
1549*437bfbebSnyanmisaka         RK_U32 reserved1       : 2;
1550*437bfbebSnyanmisaka     } dbg_ctrl_etpy;
1551*437bfbebSnyanmisaka 
1552*437bfbebSnyanmisaka     /* 0x00005068 reg5146 */
1553*437bfbebSnyanmisaka     struct {
1554*437bfbebSnyanmisaka         RK_U32 jsp0_org_err     : 1;
1555*437bfbebSnyanmisaka         RK_U32 jsp0_vsld_err    : 1;
1556*437bfbebSnyanmisaka         RK_U32 pp0_pp1_err      : 1;
1557*437bfbebSnyanmisaka         RK_U32 jsp0_cmd_err     : 1;
1558*437bfbebSnyanmisaka         RK_U32 reserved         : 24;
1559*437bfbebSnyanmisaka         RK_U32 jsp0_wrk         : 1;
1560*437bfbebSnyanmisaka         RK_U32 jsp0_tout        : 1;
1561*437bfbebSnyanmisaka         RK_U32 reserved1        : 2;
1562*437bfbebSnyanmisaka     } dbg_ctrl_jsp0;
1563*437bfbebSnyanmisaka 
1564*437bfbebSnyanmisaka     /* 0x0000506c reg5147 */
1565*437bfbebSnyanmisaka     struct {
1566*437bfbebSnyanmisaka         RK_U32 jsp1_org_err     : 1;
1567*437bfbebSnyanmisaka         RK_U32 jsp1_madi_err    : 1;
1568*437bfbebSnyanmisaka         RK_U32 reserved         : 26;
1569*437bfbebSnyanmisaka         RK_U32 jsp1_wrk         : 1;
1570*437bfbebSnyanmisaka         RK_U32 jsp1_tout        : 1;
1571*437bfbebSnyanmisaka         RK_U32 reserved1        : 2;
1572*437bfbebSnyanmisaka     } dbg_ctrl_jsp1;
1573*437bfbebSnyanmisaka 
1574*437bfbebSnyanmisaka     /* 0x00005070 reg5148 */
1575*437bfbebSnyanmisaka     struct {
1576*437bfbebSnyanmisaka         RK_U32 jpeg_org_err    : 1;
1577*437bfbebSnyanmisaka         RK_U32 reserved        : 27;
1578*437bfbebSnyanmisaka         RK_U32 jpeg_wrk        : 1;
1579*437bfbebSnyanmisaka         RK_U32 jpeg_tout       : 1;
1580*437bfbebSnyanmisaka         RK_U32 reserved1       : 2;
1581*437bfbebSnyanmisaka     } dbg_ctrl_jpeg;
1582*437bfbebSnyanmisaka 
1583*437bfbebSnyanmisaka     /* 0x00005074 reg5149 */
1584*437bfbebSnyanmisaka     struct {
1585*437bfbebSnyanmisaka         RK_U32 dma_brsp_idle     : 1;
1586*437bfbebSnyanmisaka         RK_U32 jpeg_frm_done     : 1;
1587*437bfbebSnyanmisaka         RK_U32 rdo_frm_done      : 1;
1588*437bfbebSnyanmisaka         RK_U32 lpf_frm_done      : 1;
1589*437bfbebSnyanmisaka         RK_U32 ent_frm_done      : 1;
1590*437bfbebSnyanmisaka         RK_U32 ppl_ctrl_done     : 1;
1591*437bfbebSnyanmisaka         RK_U32 criw_frm_done     : 1;
1592*437bfbebSnyanmisaka         RK_U32 meiw_frm_done     : 1;
1593*437bfbebSnyanmisaka         RK_U32 smiw_frm_done     : 1;
1594*437bfbebSnyanmisaka         RK_U32 strg_rsrc_done    : 1;
1595*437bfbebSnyanmisaka         RK_U32 reserved          : 18;
1596*437bfbebSnyanmisaka         RK_U32 frm_wrk           : 1;
1597*437bfbebSnyanmisaka         RK_U32 frm_tout          : 1;
1598*437bfbebSnyanmisaka         RK_U32 reserved1         : 2;
1599*437bfbebSnyanmisaka     } dbg_tctrl0;
1600*437bfbebSnyanmisaka 
1601*437bfbebSnyanmisaka     /* 0x00005078 reg5150 */
1602*437bfbebSnyanmisaka     struct {
1603*437bfbebSnyanmisaka         RK_U32 pp0_cmd_vld      : 1;
1604*437bfbebSnyanmisaka         RK_U32 pp0_cmd_rdy      : 1;
1605*437bfbebSnyanmisaka         RK_U32 pp0_cmd_eid      : 1;
1606*437bfbebSnyanmisaka         RK_U32 cme_madp_vld     : 1;
1607*437bfbebSnyanmisaka         RK_U32 cme_madp_rdy0    : 1;
1608*437bfbebSnyanmisaka         RK_U32 cmd_madp_rdy1    : 1;
1609*437bfbebSnyanmisaka         RK_U32 cme_mv16_vld     : 1;
1610*437bfbebSnyanmisaka         RK_U32 cmd_mv16_rdy     : 1;
1611*437bfbebSnyanmisaka         RK_U32 swin_cmd_vld     : 1;
1612*437bfbebSnyanmisaka         RK_U32 swin_cmd_rdy     : 1;
1613*437bfbebSnyanmisaka         RK_U32 pnra_olm_vld     : 1;
1614*437bfbebSnyanmisaka         RK_U32 pnra_olm_rdy     : 1;
1615*437bfbebSnyanmisaka         RK_U32 lpf_rcol_vld     : 1;
1616*437bfbebSnyanmisaka         RK_U32 lpf_rcol_rdy     : 1;
1617*437bfbebSnyanmisaka         RK_U32 bsw_dat_vld      : 1;
1618*437bfbebSnyanmisaka         RK_U32 bsw_dat_rdy      : 1;
1619*437bfbebSnyanmisaka         RK_U32 slc_fifo_full    : 1;
1620*437bfbebSnyanmisaka         RK_U32 reserved         : 15;
1621*437bfbebSnyanmisaka     } dbg_tctrl1;
1622*437bfbebSnyanmisaka 
1623*437bfbebSnyanmisaka     /* 0x507c */
1624*437bfbebSnyanmisaka     RK_U32 reserved_5151;
1625*437bfbebSnyanmisaka 
1626*437bfbebSnyanmisaka     /* 0x00005080 reg5152 */
1627*437bfbebSnyanmisaka     struct {
1628*437bfbebSnyanmisaka         RK_U32 sli_num     : 15;
1629*437bfbebSnyanmisaka         RK_U32 reserved    : 17;
1630*437bfbebSnyanmisaka     } st_sli_num;
1631*437bfbebSnyanmisaka 
1632*437bfbebSnyanmisaka     /* 0x5084 - 0x50fc */
1633*437bfbebSnyanmisaka     RK_U32 reserved5153_5183[31];
1634*437bfbebSnyanmisaka 
1635*437bfbebSnyanmisaka     /* 0x00005100 reg5184 */
1636*437bfbebSnyanmisaka     struct {
1637*437bfbebSnyanmisaka         RK_U32 empty_oafifo        : 1;
1638*437bfbebSnyanmisaka         RK_U32 full_cmd_oafifo     : 1;
1639*437bfbebSnyanmisaka         RK_U32 full_data_oafifo    : 1;
1640*437bfbebSnyanmisaka         RK_U32 empty_iafifo        : 1;
1641*437bfbebSnyanmisaka 
1642*437bfbebSnyanmisaka         RK_U32 full_cmd_iafifo     : 1;
1643*437bfbebSnyanmisaka         RK_U32 full_info_iafifo    : 1;
1644*437bfbebSnyanmisaka         RK_U32 fbd_brq_st          : 4;
1645*437bfbebSnyanmisaka         RK_U32 fbd_hdr_vld         : 1;
1646*437bfbebSnyanmisaka         RK_U32 fbd_bmng_end        : 1;
1647*437bfbebSnyanmisaka 
1648*437bfbebSnyanmisaka         RK_U32 nfbd_req_st         : 4;
1649*437bfbebSnyanmisaka         RK_U32 acc_axi_cmd         : 8;
1650*437bfbebSnyanmisaka         RK_U32 reserved            : 8;
1651*437bfbebSnyanmisaka     } dbg_pp_st;
1652*437bfbebSnyanmisaka 
1653*437bfbebSnyanmisaka     /* 0x00005104 reg5185 */
1654*437bfbebSnyanmisaka     struct {
1655*437bfbebSnyanmisaka         RK_U32 r_ena_lambd        : 1;
1656*437bfbebSnyanmisaka         RK_U32 r_fst_swinw_end    : 1;
1657*437bfbebSnyanmisaka         RK_U32 r_swinw_end        : 1;
1658*437bfbebSnyanmisaka         RK_U32 r_cnt_swinw        : 1;
1659*437bfbebSnyanmisaka 
1660*437bfbebSnyanmisaka         RK_U32 r_dspw_end         : 1;
1661*437bfbebSnyanmisaka         RK_U32 r_dspw_cnt         : 1;
1662*437bfbebSnyanmisaka         RK_U32 i_sjgen_work       : 1;
1663*437bfbebSnyanmisaka         RK_U32 r_end_rspgen       : 1;
1664*437bfbebSnyanmisaka 
1665*437bfbebSnyanmisaka         RK_U32 r_cost_gate        : 1;
1666*437bfbebSnyanmisaka         RK_U32 r_ds_gate          : 1;
1667*437bfbebSnyanmisaka         RK_U32 r_mvp_gate         : 1;
1668*437bfbebSnyanmisaka         RK_U32 i_smvp_arrdy       : 1;
1669*437bfbebSnyanmisaka 
1670*437bfbebSnyanmisaka         RK_U32 i_smvp_arvld       : 1;
1671*437bfbebSnyanmisaka         RK_U32 i_stptr_wrdy       : 1;
1672*437bfbebSnyanmisaka         RK_U32 i_stptr_wvld       : 1;
1673*437bfbebSnyanmisaka         RK_U32 i_rdy_atf          : 1;
1674*437bfbebSnyanmisaka 
1675*437bfbebSnyanmisaka         RK_U32 i_vld_atf          : 1;
1676*437bfbebSnyanmisaka         RK_U32 i_rdy_bmv16        : 1;
1677*437bfbebSnyanmisaka         RK_U32 i_vld_bmv16        : 1;
1678*437bfbebSnyanmisaka         RK_U32 i_wr_dsp           : 1;
1679*437bfbebSnyanmisaka 
1680*437bfbebSnyanmisaka         RK_U32 i_rdy_dsp          : 1;
1681*437bfbebSnyanmisaka         RK_U32 i_vld_dsp          : 1;
1682*437bfbebSnyanmisaka         RK_U32 r_rdy_org          : 1;
1683*437bfbebSnyanmisaka         RK_U32 i_vld_org          : 1;
1684*437bfbebSnyanmisaka 
1685*437bfbebSnyanmisaka         RK_U32 i_rdy_state        : 1;
1686*437bfbebSnyanmisaka         RK_U32 i_vld_state        : 1;
1687*437bfbebSnyanmisaka         RK_U32 i_rdy_madp         : 1;
1688*437bfbebSnyanmisaka         RK_U32 i_vld_madp         : 1;
1689*437bfbebSnyanmisaka 
1690*437bfbebSnyanmisaka         RK_U32 i_rdy_diff         : 1;
1691*437bfbebSnyanmisaka         RK_U32 i_vld_diff         : 1;
1692*437bfbebSnyanmisaka         RK_U32 reserved           : 2;
1693*437bfbebSnyanmisaka     } dbg_cime_st;
1694*437bfbebSnyanmisaka 
1695*437bfbebSnyanmisaka     /* 0x00005108 reg5186 */
1696*437bfbebSnyanmisaka     RK_U32 swin_dbg_inf;
1697*437bfbebSnyanmisaka 
1698*437bfbebSnyanmisaka     /* 0x0000510c reg5187 */
1699*437bfbebSnyanmisaka     struct {
1700*437bfbebSnyanmisaka         RK_U32 bbrq_cmps_left_len2    : 1;
1701*437bfbebSnyanmisaka         RK_U32 bbrq_cmps_left_len1    : 1;
1702*437bfbebSnyanmisaka         RK_U32 cmps_left_len0         : 1;
1703*437bfbebSnyanmisaka         RK_U32 bbrq_rdy2              : 1;
1704*437bfbebSnyanmisaka         RK_U32 dcps_vld2              : 1;
1705*437bfbebSnyanmisaka         RK_U32 bbrq_rdy1              : 1;
1706*437bfbebSnyanmisaka         RK_U32 dcps_vld1              : 1;
1707*437bfbebSnyanmisaka         RK_U32 bbrq_rdy0              : 1;
1708*437bfbebSnyanmisaka         RK_U32 dcps_vld0              : 1;
1709*437bfbebSnyanmisaka         RK_U32 hb_rdy2                : 1;
1710*437bfbebSnyanmisaka         RK_U32 bbrq_vld2              : 1;
1711*437bfbebSnyanmisaka         RK_U32 hb_rdy1                : 1;
1712*437bfbebSnyanmisaka         RK_U32 bbrq_vld1              : 1;
1713*437bfbebSnyanmisaka         RK_U32 hb_rdy0                : 1;
1714*437bfbebSnyanmisaka         RK_U32 bbrq_vld0              : 1;
1715*437bfbebSnyanmisaka         RK_U32 idle_msb2              : 1;
1716*437bfbebSnyanmisaka         RK_U32 idle_msb1              : 1;
1717*437bfbebSnyanmisaka         RK_U32 idle_msb0              : 1;
1718*437bfbebSnyanmisaka         RK_U32 cur_state_dcps         : 1;
1719*437bfbebSnyanmisaka         RK_U32 cur_state_bbrq         : 1;
1720*437bfbebSnyanmisaka         RK_U32 cur_state_hb           : 1;
1721*437bfbebSnyanmisaka         RK_U32 cke_bbrq_dcps          : 1;
1722*437bfbebSnyanmisaka         RK_U32 cke_dcps               : 1;
1723*437bfbebSnyanmisaka         RK_U32 cke_bbrq               : 1;
1724*437bfbebSnyanmisaka         RK_U32 rdy_lwcd_rsp           : 1;
1725*437bfbebSnyanmisaka         RK_U32 vld_lwcd_rsp           : 1;
1726*437bfbebSnyanmisaka         RK_U32 rdy_lwcd_req           : 1;
1727*437bfbebSnyanmisaka         RK_U32 vld_lwcd_req           : 1;
1728*437bfbebSnyanmisaka         RK_U32 rdy_lwrsp              : 1;
1729*437bfbebSnyanmisaka         RK_U32 vld_lwrsp              : 1;
1730*437bfbebSnyanmisaka         RK_U32 rdy_lwreq              : 1;
1731*437bfbebSnyanmisaka         RK_U32 vld_lwreq              : 1;
1732*437bfbebSnyanmisaka     } dbg_fbd_hhit0;
1733*437bfbebSnyanmisaka 
1734*437bfbebSnyanmisaka     /* 0x00005110 reg5188 */
1735*437bfbebSnyanmisaka     RK_U32 rfme_dbg_inf;
1736*437bfbebSnyanmisaka 
1737*437bfbebSnyanmisaka     /* 0x00005114 reg5189 */
1738*437bfbebSnyanmisaka     struct {
1739*437bfbebSnyanmisaka         RK_U32 mscnt_clr    : 1;
1740*437bfbebSnyanmisaka         RK_U32 reserved     : 31;
1741*437bfbebSnyanmisaka     } dbg_cach_clr;
1742*437bfbebSnyanmisaka 
1743*437bfbebSnyanmisaka     /* 0x00005118 reg5190 */
1744*437bfbebSnyanmisaka     RK_U32 l1_mis;
1745*437bfbebSnyanmisaka 
1746*437bfbebSnyanmisaka     /* 0x0000511c reg5191 */
1747*437bfbebSnyanmisaka     RK_U32 l2_mis;
1748*437bfbebSnyanmisaka 
1749*437bfbebSnyanmisaka     /* 0x00005120 reg5192 */
1750*437bfbebSnyanmisaka     RK_U32 rdo_dbg0;
1751*437bfbebSnyanmisaka 
1752*437bfbebSnyanmisaka     /* 0x00005124 reg5193 */
1753*437bfbebSnyanmisaka     RK_U32 rdo_dbg1;
1754*437bfbebSnyanmisaka 
1755*437bfbebSnyanmisaka     /* 0x00005128 reg5194 */
1756*437bfbebSnyanmisaka     struct {
1757*437bfbebSnyanmisaka         RK_U32 h264_sh_st_cs    : 4;
1758*437bfbebSnyanmisaka         RK_U32 rsd_st_cs        : 4;
1759*437bfbebSnyanmisaka         RK_U32 h264_sd_st_cs    : 5;
1760*437bfbebSnyanmisaka         RK_U32 etpy_rdy         : 1;
1761*437bfbebSnyanmisaka         RK_U32 reserved         : 18;
1762*437bfbebSnyanmisaka     } dbg_etpy;
1763*437bfbebSnyanmisaka 
1764*437bfbebSnyanmisaka     /* 0x0000512c reg5195 */
1765*437bfbebSnyanmisaka     struct {
1766*437bfbebSnyanmisaka         RK_U32 chl_aw_vld        : 10;
1767*437bfbebSnyanmisaka         RK_U32 chl_aw_rdy        : 10;
1768*437bfbebSnyanmisaka         RK_U32 aw_vld_arb        : 1;
1769*437bfbebSnyanmisaka         RK_U32 aw_rdy_arb        : 1;
1770*437bfbebSnyanmisaka         RK_U32 aw_vld_crosclk    : 1;
1771*437bfbebSnyanmisaka         RK_U32 aw_rdy_crosclk    : 1;
1772*437bfbebSnyanmisaka         RK_U32 aw_rdy_mmu        : 1;
1773*437bfbebSnyanmisaka         RK_U32 aw_vld_mmu        : 1;
1774*437bfbebSnyanmisaka         RK_U32 aw_rdy_axi        : 1;
1775*437bfbebSnyanmisaka         RK_U32 aw_vld_axi        : 1;
1776*437bfbebSnyanmisaka         RK_U32 reserved          : 4;
1777*437bfbebSnyanmisaka     } dbg_dma_aw;
1778*437bfbebSnyanmisaka 
1779*437bfbebSnyanmisaka     /* 0x00005130 reg5196 */
1780*437bfbebSnyanmisaka     struct {
1781*437bfbebSnyanmisaka         RK_U32 chl_w_vld        : 10;
1782*437bfbebSnyanmisaka         RK_U32 chl_w_rdy        : 10;
1783*437bfbebSnyanmisaka         RK_U32 w_vld_arb        : 1;
1784*437bfbebSnyanmisaka         RK_U32 w_rdy_arb        : 1;
1785*437bfbebSnyanmisaka         RK_U32 w_vld_crosclk    : 1;
1786*437bfbebSnyanmisaka         RK_U32 w_rdy_crosclk    : 1;
1787*437bfbebSnyanmisaka         RK_U32 w_rdy_mmu        : 1;
1788*437bfbebSnyanmisaka         RK_U32 w_vld_mmu        : 1;
1789*437bfbebSnyanmisaka         RK_U32 w_rdy_axi        : 1;
1790*437bfbebSnyanmisaka         RK_U32 w_vld_axi        : 1;
1791*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
1792*437bfbebSnyanmisaka     } dbg_dma_w;
1793*437bfbebSnyanmisaka 
1794*437bfbebSnyanmisaka     /* 0x00005134 reg5197 */
1795*437bfbebSnyanmisaka     struct {
1796*437bfbebSnyanmisaka         RK_U32 chl_ar_vld        : 9;
1797*437bfbebSnyanmisaka         RK_U32 chl_ar_rdy        : 9;
1798*437bfbebSnyanmisaka         RK_U32 reserved          : 2;
1799*437bfbebSnyanmisaka         RK_U32 ar_vld_arb        : 1;
1800*437bfbebSnyanmisaka         RK_U32 ar_rdy_arb        : 1;
1801*437bfbebSnyanmisaka         RK_U32 ar_vld_crosclk    : 1;
1802*437bfbebSnyanmisaka         RK_U32 ar_rdy_crosclk    : 1;
1803*437bfbebSnyanmisaka         RK_U32 ar_rdy_mmu        : 1;
1804*437bfbebSnyanmisaka         RK_U32 ar_vld_mmu        : 1;
1805*437bfbebSnyanmisaka         RK_U32 ar_rdy_axi        : 1;
1806*437bfbebSnyanmisaka         RK_U32 ar_vld_axi        : 1;
1807*437bfbebSnyanmisaka         RK_U32 reserved1         : 4;
1808*437bfbebSnyanmisaka     } dbg_dma_ar;
1809*437bfbebSnyanmisaka 
1810*437bfbebSnyanmisaka     /* 0x00005138 reg5198 */
1811*437bfbebSnyanmisaka     struct {
1812*437bfbebSnyanmisaka         RK_U32 chl_r_vld        : 9;
1813*437bfbebSnyanmisaka         RK_U32 chl_r_rdy        : 9;
1814*437bfbebSnyanmisaka         RK_U32 reserved         : 2;
1815*437bfbebSnyanmisaka         RK_U32 r_vld_arb        : 1;
1816*437bfbebSnyanmisaka         RK_U32 r_rdy_arb        : 1;
1817*437bfbebSnyanmisaka         RK_U32 r_vld_crosclk    : 1;
1818*437bfbebSnyanmisaka         RK_U32 r_rdy_crosclk    : 1;
1819*437bfbebSnyanmisaka         RK_U32 r_rdy_mmu        : 1;
1820*437bfbebSnyanmisaka         RK_U32 r_vld_mmu        : 1;
1821*437bfbebSnyanmisaka         RK_U32 r_rdy_axi        : 1;
1822*437bfbebSnyanmisaka         RK_U32 r_vld_axi        : 1;
1823*437bfbebSnyanmisaka         RK_U32 b_rdy_mmu        : 1;
1824*437bfbebSnyanmisaka         RK_U32 b_vld_mmu        : 1;
1825*437bfbebSnyanmisaka         RK_U32 b_rdy_axi        : 1;
1826*437bfbebSnyanmisaka         RK_U32 b_vld_axi        : 1;
1827*437bfbebSnyanmisaka     } dbg_dma_r;
1828*437bfbebSnyanmisaka 
1829*437bfbebSnyanmisaka     /* 0x513c */
1830*437bfbebSnyanmisaka     RK_U32 reserved_5199;
1831*437bfbebSnyanmisaka 
1832*437bfbebSnyanmisaka     /* 0x00005140 reg5200 */
1833*437bfbebSnyanmisaka     struct {
1834*437bfbebSnyanmisaka         RK_U32 bsw_fsm_stus     : 4;
1835*437bfbebSnyanmisaka         RK_U32 bsw_aw_full      : 1;
1836*437bfbebSnyanmisaka         RK_U32 bsw_rdy_ent      : 1;
1837*437bfbebSnyanmisaka         RK_U32 bsw_vld_ent      : 1;
1838*437bfbebSnyanmisaka         RK_U32 jpg_bsw_stus     : 4;
1839*437bfbebSnyanmisaka         RK_U32 jpg_aw_full      : 1;
1840*437bfbebSnyanmisaka         RK_U32 jpg_bsw_rdy      : 1;
1841*437bfbebSnyanmisaka         RK_U32 jpg_bsw_vld      : 1;
1842*437bfbebSnyanmisaka         RK_U32 crpw_fsm_stus    : 3;
1843*437bfbebSnyanmisaka         RK_U32 hdwr_rdy         : 1;
1844*437bfbebSnyanmisaka         RK_U32 hdwr_vld         : 1;
1845*437bfbebSnyanmisaka         RK_U32 bdwr_rdy         : 1;
1846*437bfbebSnyanmisaka         RK_U32 bdwr_vld         : 1;
1847*437bfbebSnyanmisaka         RK_U32 nfbc_rdy         : 1;
1848*437bfbebSnyanmisaka         RK_U32 nfbc_vld         : 1;
1849*437bfbebSnyanmisaka         RK_U32 dsp_fsm_stus     : 2;
1850*437bfbebSnyanmisaka         RK_U32 dsp_wr_flg       : 1;
1851*437bfbebSnyanmisaka         RK_U32 dsp_rsy          : 1;
1852*437bfbebSnyanmisaka         RK_U32 dsp_vld          : 1;
1853*437bfbebSnyanmisaka         RK_U32 lpfw_fsm_stus    : 3;
1854*437bfbebSnyanmisaka         RK_U32 reserved         : 1;
1855*437bfbebSnyanmisaka     } dbg_dma_dbg1;
1856*437bfbebSnyanmisaka 
1857*437bfbebSnyanmisaka     /* 0x5144 */
1858*437bfbebSnyanmisaka     RK_U32 reserved_5201;
1859*437bfbebSnyanmisaka 
1860*437bfbebSnyanmisaka     /* 0x00005148 reg5202 */
1861*437bfbebSnyanmisaka     struct {
1862*437bfbebSnyanmisaka         RK_U32 rdo_st      : 20;
1863*437bfbebSnyanmisaka         RK_U32 reserved    : 12;
1864*437bfbebSnyanmisaka     } dbg_rdo_st;
1865*437bfbebSnyanmisaka 
1866*437bfbebSnyanmisaka     /* 0x0000514c reg5203 */
1867*437bfbebSnyanmisaka     struct {
1868*437bfbebSnyanmisaka         RK_U32 lpf_work               : 1;
1869*437bfbebSnyanmisaka         RK_U32 rdo_par_nrdy           : 1;
1870*437bfbebSnyanmisaka         RK_U32 rdo_rcn_nrdy           : 1;
1871*437bfbebSnyanmisaka         RK_U32 lpf_rcn_rdy            : 1;
1872*437bfbebSnyanmisaka         RK_U32 dblk_work              : 1;
1873*437bfbebSnyanmisaka         RK_U32 sao_work               : 1;
1874*437bfbebSnyanmisaka         RK_U32 reserved               : 18;
1875*437bfbebSnyanmisaka         RK_U32 tile_bdry_read         : 1;
1876*437bfbebSnyanmisaka         RK_U32 tile_bdry_write        : 1;
1877*437bfbebSnyanmisaka         RK_U32 tile_bdry_rrdy         : 1;
1878*437bfbebSnyanmisaka         RK_U32 rdo_read_tile_bdry     : 1;
1879*437bfbebSnyanmisaka         RK_U32 rdo_write_tile_bdry    : 1;
1880*437bfbebSnyanmisaka         RK_U32 reserved1              : 3;
1881*437bfbebSnyanmisaka     } dbg_lpf;
1882*437bfbebSnyanmisaka 
1883*437bfbebSnyanmisaka     /* 0x5150 */
1884*437bfbebSnyanmisaka     RK_U32 reserved_5204;
1885*437bfbebSnyanmisaka 
1886*437bfbebSnyanmisaka     /* 0x00005154 reg5205 */
1887*437bfbebSnyanmisaka     RK_U32 dbg0_cache;
1888*437bfbebSnyanmisaka 
1889*437bfbebSnyanmisaka     /* 0x00005158 reg5206 */
1890*437bfbebSnyanmisaka     RK_U32 dbg1_cache;
1891*437bfbebSnyanmisaka 
1892*437bfbebSnyanmisaka     /* 0x0000515c reg5207 */
1893*437bfbebSnyanmisaka     RK_U32 dbg2_cache;
1894*437bfbebSnyanmisaka 
1895*437bfbebSnyanmisaka     /* 0x00005160 reg5208 */
1896*437bfbebSnyanmisaka     struct {
1897*437bfbebSnyanmisaka         RK_U32 ebuf_diff_cmd    : 8;
1898*437bfbebSnyanmisaka         RK_U32 lbuf_lpf_ncnt    : 7;
1899*437bfbebSnyanmisaka         RK_U32 lbuf_lpf_cien    : 1;
1900*437bfbebSnyanmisaka         RK_U32 lbuf_rdo_ncnt    : 7;
1901*437bfbebSnyanmisaka         RK_U32 lbuf_rdo_cien    : 1;
1902*437bfbebSnyanmisaka         RK_U32 reserved         : 8;
1903*437bfbebSnyanmisaka     } dbg_lbuf0;
1904*437bfbebSnyanmisaka 
1905*437bfbebSnyanmisaka     /* 0x00005164 reg5209 */
1906*437bfbebSnyanmisaka     struct {
1907*437bfbebSnyanmisaka         RK_U32 rvld_ebfr          : 1;
1908*437bfbebSnyanmisaka         RK_U32 rrdy_ebfr          : 1;
1909*437bfbebSnyanmisaka         RK_U32 arvld_ebfr         : 1;
1910*437bfbebSnyanmisaka         RK_U32 arrdy_ebfr         : 1;
1911*437bfbebSnyanmisaka         RK_U32 wvld_ebfw          : 1;
1912*437bfbebSnyanmisaka         RK_U32 wrdy_ebfw          : 1;
1913*437bfbebSnyanmisaka         RK_U32 awvld_ebfw         : 1;
1914*437bfbebSnyanmisaka         RK_U32 awrdy_ebfw         : 1;
1915*437bfbebSnyanmisaka         RK_U32 lpf_lbuf_rvld      : 1;
1916*437bfbebSnyanmisaka         RK_U32 lpf_lbuf_rrdy      : 1;
1917*437bfbebSnyanmisaka         RK_U32 lpf_lbuf_wvld      : 1;
1918*437bfbebSnyanmisaka         RK_U32 lpf_lbuf_wrdy      : 1;
1919*437bfbebSnyanmisaka         RK_U32 rdo_lbuf_rvld      : 1;
1920*437bfbebSnyanmisaka         RK_U32 rdo_lbuf_rrdy      : 1;
1921*437bfbebSnyanmisaka         RK_U32 rdo_lbuf_wvld      : 1;
1922*437bfbebSnyanmisaka         RK_U32 rdo_lbuf_wrdy      : 1;
1923*437bfbebSnyanmisaka         RK_U32 fme_lbuf_rvld      : 1;
1924*437bfbebSnyanmisaka         RK_U32 fme_lbuf_rrdy      : 1;
1925*437bfbebSnyanmisaka         RK_U32 cme_lbuf_rvld      : 1;
1926*437bfbebSnyanmisaka         RK_U32 cme_lbuf_rrdy      : 1;
1927*437bfbebSnyanmisaka         RK_U32 smear_lbuf_rvld    : 1;
1928*437bfbebSnyanmisaka         RK_U32 smear_lbuf_rrdy    : 1;
1929*437bfbebSnyanmisaka         RK_U32 smear_lbuf_wvld    : 1;
1930*437bfbebSnyanmisaka         RK_U32 smear_lbuf_wrdy    : 1;
1931*437bfbebSnyanmisaka         RK_U32 rdo_lbufw_flag     : 1;
1932*437bfbebSnyanmisaka         RK_U32 rdo_lbufr_flag     : 1;
1933*437bfbebSnyanmisaka         RK_U32 cme_lbufr_flag     : 1;
1934*437bfbebSnyanmisaka         RK_U32 reserved           : 5;
1935*437bfbebSnyanmisaka     } dbg_lbuf1;
1936*437bfbebSnyanmisaka 
1937*437bfbebSnyanmisaka     /* 0x00005168 reg5210 */
1938*437bfbebSnyanmisaka     struct {
1939*437bfbebSnyanmisaka         RK_U32 dbg_isp_fcnt    : 8;
1940*437bfbebSnyanmisaka         RK_U32 dbg_isp_fcyc    : 24;
1941*437bfbebSnyanmisaka     } dbg_dvbm_isp0;
1942*437bfbebSnyanmisaka 
1943*437bfbebSnyanmisaka     /* 0x0000516c reg5211 */
1944*437bfbebSnyanmisaka     struct {
1945*437bfbebSnyanmisaka         RK_U32 dbg_isp_lcnt    : 14;
1946*437bfbebSnyanmisaka         RK_U32 reserved        : 1;
1947*437bfbebSnyanmisaka         RK_U32 dbg_isp_ltgl    : 1;
1948*437bfbebSnyanmisaka         RK_U32 dbg_isp_fcnt    : 8;
1949*437bfbebSnyanmisaka         RK_U32 dbg_isp_oflw    : 1;
1950*437bfbebSnyanmisaka         RK_U32 dbg_isp_ftgl    : 1;
1951*437bfbebSnyanmisaka         RK_U32 dbg_isp_full    : 1;
1952*437bfbebSnyanmisaka         RK_U32 dbg_isp_work    : 1;
1953*437bfbebSnyanmisaka         RK_U32 dbg_isp_lvld    : 1;
1954*437bfbebSnyanmisaka         RK_U32 dbg_isp_lrdy    : 1;
1955*437bfbebSnyanmisaka         RK_U32 dbg_isp_fvld    : 1;
1956*437bfbebSnyanmisaka         RK_U32 dbg_isp_frdy    : 1;
1957*437bfbebSnyanmisaka     } dbg_dvbm_isp1;
1958*437bfbebSnyanmisaka 
1959*437bfbebSnyanmisaka     /* 0x00005170 reg5212 */
1960*437bfbebSnyanmisaka     struct {
1961*437bfbebSnyanmisaka         RK_U32 dbg_bf0_isp_lcnt    : 14;
1962*437bfbebSnyanmisaka         RK_U32 dbg_bf0_isp_llst    : 1;
1963*437bfbebSnyanmisaka         RK_U32 dbg_bf0_isp_sofw    : 1;
1964*437bfbebSnyanmisaka         RK_U32 dbg_bf0_isp_fcnt    : 8;
1965*437bfbebSnyanmisaka         RK_U32 dbg_bf0_isp_pnt     : 1;
1966*437bfbebSnyanmisaka         RK_U32 reserved            : 3;
1967*437bfbebSnyanmisaka         RK_U32 dbg_bf0_vpu_pnt     : 1;
1968*437bfbebSnyanmisaka         RK_U32 reserved1           : 3;
1969*437bfbebSnyanmisaka     } dbg_dvbm_buf0_inf0;
1970*437bfbebSnyanmisaka 
1971*437bfbebSnyanmisaka     /* 0x00005174 reg5213 */
1972*437bfbebSnyanmisaka     struct {
1973*437bfbebSnyanmisaka         RK_U32 dbg_bf0_src_lcnt    : 14;
1974*437bfbebSnyanmisaka         RK_U32 dbg_bf0_src_llst    : 1;
1975*437bfbebSnyanmisaka         RK_U32 reserved            : 1;
1976*437bfbebSnyanmisaka         RK_U32 dbg_bf0_vpu_lcnt    : 14;
1977*437bfbebSnyanmisaka         RK_U32 dbg_bf0_vpu_llst    : 1;
1978*437bfbebSnyanmisaka         RK_U32 dbg_bf0_vpu_vofw    : 1;
1979*437bfbebSnyanmisaka     } dbg_dvbm_buf0_inf1;
1980*437bfbebSnyanmisaka 
1981*437bfbebSnyanmisaka     /* 0x00005178 reg5214 */
1982*437bfbebSnyanmisaka     struct {
1983*437bfbebSnyanmisaka         RK_U32 dbg_bf1_isp_lcnt    : 14;
1984*437bfbebSnyanmisaka         RK_U32 dbg_bf1_isp_llst    : 1;
1985*437bfbebSnyanmisaka         RK_U32 dbg_bf1_isp_sofw    : 1;
1986*437bfbebSnyanmisaka         RK_U32 dbg_bf1_isp_fcnt    : 1;
1987*437bfbebSnyanmisaka         RK_U32 reserved            : 7;
1988*437bfbebSnyanmisaka         RK_U32 dbg_bf1_isp_pnt     : 1;
1989*437bfbebSnyanmisaka         RK_U32 reserved1           : 3;
1990*437bfbebSnyanmisaka         RK_U32 dbg_bf1_vpu_pnt     : 1;
1991*437bfbebSnyanmisaka         RK_U32 reserved2           : 3;
1992*437bfbebSnyanmisaka     } dbg_dvbm_buf1_inf0;
1993*437bfbebSnyanmisaka 
1994*437bfbebSnyanmisaka     /* 0x0000517c reg5215 */
1995*437bfbebSnyanmisaka     struct {
1996*437bfbebSnyanmisaka         RK_U32 dbg_bf1_src_lcnt    : 14;
1997*437bfbebSnyanmisaka         RK_U32 dbg_bf1_src_llst    : 1;
1998*437bfbebSnyanmisaka         RK_U32 reserved            : 1;
1999*437bfbebSnyanmisaka         RK_U32 dbg_bf1_vpu_lcnt    : 14;
2000*437bfbebSnyanmisaka         RK_U32 dbg_bf1_vpu_llst    : 1;
2001*437bfbebSnyanmisaka         RK_U32 dbg_bf1_vpu_vofw    : 1;
2002*437bfbebSnyanmisaka     } dbg_dvbm_buf1_inf1;
2003*437bfbebSnyanmisaka 
2004*437bfbebSnyanmisaka     /* 0x00005180 reg5216 */
2005*437bfbebSnyanmisaka     struct {
2006*437bfbebSnyanmisaka         RK_U32 dbg_bf2_isp_lcnt    : 14;
2007*437bfbebSnyanmisaka         RK_U32 dbg_bf2_isp_llst    : 1;
2008*437bfbebSnyanmisaka         RK_U32 dbg_bf2_isp_sofw    : 1;
2009*437bfbebSnyanmisaka         RK_U32 dbg_bf2_isp_fcnt    : 1;
2010*437bfbebSnyanmisaka         RK_U32 reserved            : 7;
2011*437bfbebSnyanmisaka         RK_U32 dbg_bf2_isp_pnt     : 1;
2012*437bfbebSnyanmisaka         RK_U32 reserved1           : 3;
2013*437bfbebSnyanmisaka         RK_U32 dbg_bf2_vpu_pnt     : 1;
2014*437bfbebSnyanmisaka         RK_U32 reserved2           : 3;
2015*437bfbebSnyanmisaka     } dbg_dvbm_buf2_inf0;
2016*437bfbebSnyanmisaka 
2017*437bfbebSnyanmisaka     /* 0x00005184 reg5217 */
2018*437bfbebSnyanmisaka     struct {
2019*437bfbebSnyanmisaka         RK_U32 dbg_bf2_src_lcnt    : 14;
2020*437bfbebSnyanmisaka         RK_U32 dbg_bf2_src_llst    : 1;
2021*437bfbebSnyanmisaka         RK_U32 reserved            : 1;
2022*437bfbebSnyanmisaka         RK_U32 dbg_bf2_vpu_lcnt    : 14;
2023*437bfbebSnyanmisaka         RK_U32 dbg_bf2_vpu_llst    : 1;
2024*437bfbebSnyanmisaka         RK_U32 dbg_bf2_vpu_vofw    : 1;
2025*437bfbebSnyanmisaka     } dbg_dvbm_buf2_inf1;
2026*437bfbebSnyanmisaka 
2027*437bfbebSnyanmisaka     /* 0x00005188 reg5218 */
2028*437bfbebSnyanmisaka     struct {
2029*437bfbebSnyanmisaka         RK_U32 dbg_bf3_isp_lcnt    : 14;
2030*437bfbebSnyanmisaka         RK_U32 dbg_bf3_isp_llst    : 1;
2031*437bfbebSnyanmisaka         RK_U32 dbg_bf3_isp_sofw    : 1;
2032*437bfbebSnyanmisaka         RK_U32 dbg_bf3_isp_fcnt    : 1;
2033*437bfbebSnyanmisaka         RK_U32 reserved            : 7;
2034*437bfbebSnyanmisaka         RK_U32 dbg_bf3_isp_pnt     : 1;
2035*437bfbebSnyanmisaka         RK_U32 reserved1           : 3;
2036*437bfbebSnyanmisaka         RK_U32 dbg_bf3_vpu_pnt     : 1;
2037*437bfbebSnyanmisaka         RK_U32 reserved2           : 3;
2038*437bfbebSnyanmisaka     } dbg_dvbm_buf3_inf0;
2039*437bfbebSnyanmisaka 
2040*437bfbebSnyanmisaka     /* 0x0000518c reg5219 */
2041*437bfbebSnyanmisaka     struct {
2042*437bfbebSnyanmisaka         RK_U32 dbg_bf3_src_lcnt    : 14;
2043*437bfbebSnyanmisaka         RK_U32 dbg_bf3_src_llst    : 1;
2044*437bfbebSnyanmisaka         RK_U32 reserved            : 1;
2045*437bfbebSnyanmisaka         RK_U32 dbg_bf3_vpu_lcnt    : 14;
2046*437bfbebSnyanmisaka         RK_U32 dbg_bf3_vpu_llst    : 1;
2047*437bfbebSnyanmisaka         RK_U32 dbg_bf3_vpu_vofw    : 1;
2048*437bfbebSnyanmisaka     } dbg_dvbm_buf3_inf1;
2049*437bfbebSnyanmisaka 
2050*437bfbebSnyanmisaka     /* 0x00005190 reg5220 */
2051*437bfbebSnyanmisaka     struct {
2052*437bfbebSnyanmisaka         RK_U32 dbg_isp_fptr     : 3;
2053*437bfbebSnyanmisaka         RK_U32 dbg_isp_full     : 1;
2054*437bfbebSnyanmisaka         RK_U32 dbg_src_fptr     : 3;
2055*437bfbebSnyanmisaka         RK_U32 reserved         : 1;
2056*437bfbebSnyanmisaka         RK_U32 dbg_vpu_fptr     : 3;
2057*437bfbebSnyanmisaka         RK_U32 dbg_vpu_empt     : 1;
2058*437bfbebSnyanmisaka         RK_U32 dbg_vpu_lvld     : 1;
2059*437bfbebSnyanmisaka         RK_U32 dbg_vpu_lrdy     : 1;
2060*437bfbebSnyanmisaka         RK_U32 dbg_vpu_fvld     : 1;
2061*437bfbebSnyanmisaka         RK_U32 dbg_vpu_frdy     : 1;
2062*437bfbebSnyanmisaka         RK_U32 dbg_fcnt_misp    : 4;
2063*437bfbebSnyanmisaka         RK_U32 dbg_fcnt_mvpu    : 4;
2064*437bfbebSnyanmisaka         RK_U32 dbg_fcnt_sofw    : 4;
2065*437bfbebSnyanmisaka         RK_U32 dbg_fcnt_vofw    : 4;
2066*437bfbebSnyanmisaka     } dbg_dvbm_ctrl;
2067*437bfbebSnyanmisaka 
2068*437bfbebSnyanmisaka     /* 0x5194 - 0x519c */
2069*437bfbebSnyanmisaka     RK_U32 reserved5221_5223[3];
2070*437bfbebSnyanmisaka 
2071*437bfbebSnyanmisaka     /* 0x000051a0 reg5224 */
2072*437bfbebSnyanmisaka     RK_U32 dbg_dvbm_buf0_yadr;
2073*437bfbebSnyanmisaka 
2074*437bfbebSnyanmisaka     /* 0x000051a4 reg5225 */
2075*437bfbebSnyanmisaka     RK_U32 dbg_dvbm_buf0_cadr;
2076*437bfbebSnyanmisaka 
2077*437bfbebSnyanmisaka     /* 0x000051a8 reg5226 */
2078*437bfbebSnyanmisaka     RK_U32 dbg_dvbm_buf1_yadr;
2079*437bfbebSnyanmisaka 
2080*437bfbebSnyanmisaka     /* 0x000051ac reg5227 */
2081*437bfbebSnyanmisaka     RK_U32 dbg_dvbm_buf1_cadr;
2082*437bfbebSnyanmisaka 
2083*437bfbebSnyanmisaka     /* 0x000051b0 reg5228 */
2084*437bfbebSnyanmisaka     RK_U32 dbg_dvbm_buf2_yadr;
2085*437bfbebSnyanmisaka 
2086*437bfbebSnyanmisaka     /* 0x000051b4 reg5229 */
2087*437bfbebSnyanmisaka     RK_U32 dbg_dvbm_buf2_cadr;
2088*437bfbebSnyanmisaka 
2089*437bfbebSnyanmisaka     /* 0x000051b8 reg5230 */
2090*437bfbebSnyanmisaka     RK_U32 dbg_dvbm_buf3_yadr;
2091*437bfbebSnyanmisaka 
2092*437bfbebSnyanmisaka     /* 0x000051bc reg5231 */
2093*437bfbebSnyanmisaka     RK_U32 dbg_dvbm_buf3_cadr;
2094*437bfbebSnyanmisaka 
2095*437bfbebSnyanmisaka     /* 0x000051c0 reg5232 */
2096*437bfbebSnyanmisaka     struct {
2097*437bfbebSnyanmisaka         RK_U32 dchs_rx_cnt    : 11;
2098*437bfbebSnyanmisaka         RK_U32 dchs_rx_id     : 2;
2099*437bfbebSnyanmisaka         RK_U32 dchs_rx_en     : 1;
2100*437bfbebSnyanmisaka         RK_U32 dchs_rx_ack    : 1;
2101*437bfbebSnyanmisaka         RK_U32 dchs_rx_req    : 1;
2102*437bfbebSnyanmisaka         RK_U32 dchs_tx_cnt    : 11;
2103*437bfbebSnyanmisaka         RK_U32 dchs_tx_id     : 2;
2104*437bfbebSnyanmisaka         RK_U32 dchs_tx_en     : 1;
2105*437bfbebSnyanmisaka         RK_U32 dchs_tx_ack    : 1;
2106*437bfbebSnyanmisaka         RK_U32 dchs_tx_req    : 1;
2107*437bfbebSnyanmisaka     } dbg_dchs_intfc;
2108*437bfbebSnyanmisaka 
2109*437bfbebSnyanmisaka     /* 0x000051c4 reg5233 */
2110*437bfbebSnyanmisaka     struct {
2111*437bfbebSnyanmisaka         RK_U32 lpfw_tx_cnt       : 11;
2112*437bfbebSnyanmisaka         RK_U32 lpfw_tx_en        : 1;
2113*437bfbebSnyanmisaka         RK_U32 crpw_tx_cnt       : 11;
2114*437bfbebSnyanmisaka         RK_U32 crpw_tx_en        : 1;
2115*437bfbebSnyanmisaka         RK_U32 dual_err_updt     : 1;
2116*437bfbebSnyanmisaka         RK_U32 dlyc_fifo_oflw    : 1;
2117*437bfbebSnyanmisaka         RK_U32 dlyc_tx_vld       : 1;
2118*437bfbebSnyanmisaka         RK_U32 dlyc_tx_rdy       : 1;
2119*437bfbebSnyanmisaka         RK_U32 dlyc_tx_empty     : 1;
2120*437bfbebSnyanmisaka         RK_U32 dchs_tx_idle      : 1;
2121*437bfbebSnyanmisaka         RK_U32 dchs_tx_asy       : 1;
2122*437bfbebSnyanmisaka         RK_U32 dchs_tx_syn       : 1;
2123*437bfbebSnyanmisaka     } dbg_dchs_tx_inf0;
2124*437bfbebSnyanmisaka 
2125*437bfbebSnyanmisaka     /* 0x000051c8 reg5234 */
2126*437bfbebSnyanmisaka     struct {
2127*437bfbebSnyanmisaka         RK_U32 criw_tx_cnt    : 11;
2128*437bfbebSnyanmisaka         RK_U32 criw_tx_en     : 1;
2129*437bfbebSnyanmisaka         RK_U32 smrw_tx_cnt    : 11;
2130*437bfbebSnyanmisaka         RK_U32 smrw_tx_en     : 1;
2131*437bfbebSnyanmisaka         RK_U32 reserved       : 8;
2132*437bfbebSnyanmisaka     } dbg_dchs_tx_inf1;
2133*437bfbebSnyanmisaka 
2134*437bfbebSnyanmisaka     /* 0x000051cc reg5235 */
2135*437bfbebSnyanmisaka     struct {
2136*437bfbebSnyanmisaka         RK_U32 dual_rx_cnt        : 11;
2137*437bfbebSnyanmisaka         RK_U32 dual_rx_id         : 2;
2138*437bfbebSnyanmisaka         RK_U32 dual_rx_en         : 1;
2139*437bfbebSnyanmisaka         RK_U32 dual_rx_syn        : 1;
2140*437bfbebSnyanmisaka         RK_U32 dual_rx_lock       : 1;
2141*437bfbebSnyanmisaka         RK_U32 dual_lpfr_dule     : 1;
2142*437bfbebSnyanmisaka         RK_U32 dual_cime_dule     : 1;
2143*437bfbebSnyanmisaka         RK_U32 dual_clomv_dule    : 1;
2144*437bfbebSnyanmisaka         RK_U32 dual_smear_dule    : 1;
2145*437bfbebSnyanmisaka         RK_U32 reserved           : 12;
2146*437bfbebSnyanmisaka     } dbg_dchs_rx_inf0;
2147*437bfbebSnyanmisaka 
2148*437bfbebSnyanmisaka     /* 0x51d0 - 0x51fc */
2149*437bfbebSnyanmisaka     RK_U32 reserved5236_5247[12];
2150*437bfbebSnyanmisaka 
2151*437bfbebSnyanmisaka     /* 0x00005200 reg5248 */
2152*437bfbebSnyanmisaka     RK_U32 frame_cyc;
2153*437bfbebSnyanmisaka 
2154*437bfbebSnyanmisaka     /* 0x00005204 reg5249 */
2155*437bfbebSnyanmisaka     RK_U32 vsp0_fcyc;
2156*437bfbebSnyanmisaka 
2157*437bfbebSnyanmisaka     /* 0x00005208 reg5250 */
2158*437bfbebSnyanmisaka     RK_U32 vsp1_fcyc;
2159*437bfbebSnyanmisaka 
2160*437bfbebSnyanmisaka     /* 0x0000520c reg5251 */
2161*437bfbebSnyanmisaka     RK_U32 cme_fcyc;
2162*437bfbebSnyanmisaka 
2163*437bfbebSnyanmisaka     /* 0x00005210 reg5252 */
2164*437bfbebSnyanmisaka     RK_U32 ldr_fcyc;
2165*437bfbebSnyanmisaka 
2166*437bfbebSnyanmisaka     /* 0x00005214 reg5253 */
2167*437bfbebSnyanmisaka     RK_U32 rfme_fcyc;
2168*437bfbebSnyanmisaka 
2169*437bfbebSnyanmisaka     /* 0x00005218 reg5254 */
2170*437bfbebSnyanmisaka     RK_U32 fme_fcyc;
2171*437bfbebSnyanmisaka 
2172*437bfbebSnyanmisaka     /* 0x0000521c reg5255 */
2173*437bfbebSnyanmisaka     RK_U32 rdo_fcyc;
2174*437bfbebSnyanmisaka 
2175*437bfbebSnyanmisaka     /* 0x00005220 reg5256 */
2176*437bfbebSnyanmisaka     RK_U32 lpf_fcyc;
2177*437bfbebSnyanmisaka 
2178*437bfbebSnyanmisaka     /* 0x00005224 reg5257 */
2179*437bfbebSnyanmisaka     RK_U32 etpy_fcyc;
2180*437bfbebSnyanmisaka 
2181*437bfbebSnyanmisaka     /* 0x00005228 reg5258 */
2182*437bfbebSnyanmisaka     RK_U32 jsp0_fcyc;
2183*437bfbebSnyanmisaka 
2184*437bfbebSnyanmisaka     /* 0x0000522c reg5259 */
2185*437bfbebSnyanmisaka     RK_U32 jsp1_fcyc;
2186*437bfbebSnyanmisaka 
2187*437bfbebSnyanmisaka     /* 0x00005230 reg5260 */
2188*437bfbebSnyanmisaka     RK_U32 jpeg_fcyc;
2189*437bfbebSnyanmisaka } Vepu510Dbg;
2190*437bfbebSnyanmisaka 
2191*437bfbebSnyanmisaka /* ROI block configuration */
2192*437bfbebSnyanmisaka typedef struct Vepu510H264RoiBlkCfg {
2193*437bfbebSnyanmisaka     RK_U32 qp_adju        : 8;
2194*437bfbebSnyanmisaka     RK_U32 mdc_adju_inter : 4;
2195*437bfbebSnyanmisaka     RK_U32 mdc_adju_skip  : 4;
2196*437bfbebSnyanmisaka     RK_U32 mdc_adju_intra : 4;
2197*437bfbebSnyanmisaka     RK_U32 reserved       : 12;
2198*437bfbebSnyanmisaka } Vepu510H264RoiBlkCfg;
2199*437bfbebSnyanmisaka 
2200*437bfbebSnyanmisaka typedef struct Vepu510H265RoiBlkCfg {
2201*437bfbebSnyanmisaka     RK_U32 qp_adju        : 8;
2202*437bfbebSnyanmisaka     RK_U32 reserved       : 12;
2203*437bfbebSnyanmisaka     RK_U32 mdc_adju_inter : 4;
2204*437bfbebSnyanmisaka     RK_U32 mdc_adju_skip  : 4;
2205*437bfbebSnyanmisaka     RK_U32 mdc_adju_intra : 4;
2206*437bfbebSnyanmisaka } Vepu510H265RoiBlkCfg;
2207*437bfbebSnyanmisaka 
2208*437bfbebSnyanmisaka typedef struct Vepu510NpuOut_t {
2209*437bfbebSnyanmisaka     RK_S32 found_objects;
2210*437bfbebSnyanmisaka     /* npu object flag: one byte for each block16x16 */
2211*437bfbebSnyanmisaka     RK_U8 *object_seg_map;
2212*437bfbebSnyanmisaka } Vepu510NpuOut;
2213*437bfbebSnyanmisaka 
2214*437bfbebSnyanmisaka #ifdef __cplusplus
2215*437bfbebSnyanmisaka extern "C" {
2216*437bfbebSnyanmisaka #endif
2217*437bfbebSnyanmisaka 
2218*437bfbebSnyanmisaka MPP_RET vepu510_set_roi(void *roi_reg_base, MppEncROICfg * roi, RK_S32 w,
2219*437bfbebSnyanmisaka                         RK_S32 h);
2220*437bfbebSnyanmisaka 
2221*437bfbebSnyanmisaka #ifdef __cplusplus
2222*437bfbebSnyanmisaka }
2223*437bfbebSnyanmisaka #endif
2224*437bfbebSnyanmisaka 
2225*437bfbebSnyanmisaka #endif /* __VEPU510_COMMON_H__ */
2226