xref: /rockchip-linux_mpp/mpp/hal/rkenc/common/vepu511_common.h (revision 437bfbeb9567cca9cd9080e3f6954aa9d6a94f18)
1*437bfbebSnyanmisaka /* SPDX-License-Identifier: Apache-2.0 */
2*437bfbebSnyanmisaka /*
3*437bfbebSnyanmisaka  * Copyright (c) 2025 Rockchip Electronics Co., Ltd.
4*437bfbebSnyanmisaka  */
5*437bfbebSnyanmisaka 
6*437bfbebSnyanmisaka #ifndef __VEPU511_COMMON_H__
7*437bfbebSnyanmisaka #define __VEPU511_COMMON_H__
8*437bfbebSnyanmisaka 
9*437bfbebSnyanmisaka #include "rk_venc_cmd.h"
10*437bfbebSnyanmisaka #include "mpp_device.h"
11*437bfbebSnyanmisaka 
12*437bfbebSnyanmisaka #define VEPU511_CTL_OFFSET           (0 * sizeof(RK_U32))       /* 0x00000000 reg0    - 0x00000120 reg72 */
13*437bfbebSnyanmisaka #define VEPU511_FRAME_OFFSET         (156 * sizeof(RK_U32))     /* 0x00000270 reg156  - 0x00000538 reg334 */
14*437bfbebSnyanmisaka #define VEPU511_RC_ROI_OFFSET        (1024 * sizeof(RK_U32))    /* 0x00001000 reg1024 - 0x00001160 reg1112 */
15*437bfbebSnyanmisaka #define VEPU511_PARAM_OFFSET         (1472 * sizeof(RK_U32))    /* 0x00001700 reg1472 - 0x000019cc reg1651 */
16*437bfbebSnyanmisaka #define VEPU511_SQI_OFFSET           (2048 * sizeof(RK_U32))    /* 0x00002000 reg2048 - 0x0000216c reg2139 */
17*437bfbebSnyanmisaka #define VEPU511_SCL_OFFSET           (2176 * sizeof(RK_U32))    /* 0x00002200 reg2176 - 0x00002c9c reg2855 */
18*437bfbebSnyanmisaka #define VEPU511_JPEGTAB_OFFSET       (2856 * sizeof(RK_U32))    /* 0x00002ca0 reg2856 - 0x00002e1c reg2951 */
19*437bfbebSnyanmisaka #define VEPU511_OSD_OFFSET           (3072 * sizeof(RK_U32))    /* 0x00003000 reg3072 - 0x00003264 reg3225 */
20*437bfbebSnyanmisaka #define VEPU511_STATUS_OFFSET        (4096 * sizeof(RK_U32))    /* 0x00004000 reg4096 - 0x0000424c reg4243 */
21*437bfbebSnyanmisaka #define VEPU511_DBG_OFFSET           (5120 * sizeof(RK_U32))    /* 0x00005000 reg5120 - 0x0000523c reg5263 */
22*437bfbebSnyanmisaka #define VEPU511_REG_BASE_HW_STATUS   (0x2c)
23*437bfbebSnyanmisaka 
24*437bfbebSnyanmisaka #define VEPU511_MAX_ROI_NUM          8
25*437bfbebSnyanmisaka #define VEPU511_SLICE_FIFO_LEN       8
26*437bfbebSnyanmisaka 
27*437bfbebSnyanmisaka typedef enum qbias_ofst_e {
28*437bfbebSnyanmisaka     IFRAME_THD0 = 0,
29*437bfbebSnyanmisaka     IFRAME_THD1,
30*437bfbebSnyanmisaka     IFRAME_THD2,
31*437bfbebSnyanmisaka     IFRAME_BIAS0,
32*437bfbebSnyanmisaka     IFRAME_BIAS1,
33*437bfbebSnyanmisaka     IFRAME_BIAS2,
34*437bfbebSnyanmisaka     IFRAME_BIAS3,
35*437bfbebSnyanmisaka     PFRAME_THD0,
36*437bfbebSnyanmisaka     PFRAME_THD1,
37*437bfbebSnyanmisaka     PFRAME_THD2,
38*437bfbebSnyanmisaka     PFRAME_IBLK_BIAS0,
39*437bfbebSnyanmisaka     PFRAME_IBLK_BIAS1,
40*437bfbebSnyanmisaka     PFRAME_IBLK_BIAS2,
41*437bfbebSnyanmisaka     PFRAME_IBLK_BIAS3,
42*437bfbebSnyanmisaka     PFRAME_PBLK_BIAS0,
43*437bfbebSnyanmisaka     PFRAME_PBLK_BIAS1,
44*437bfbebSnyanmisaka     PFRAME_PBLK_BIAS2,
45*437bfbebSnyanmisaka     PFRAME_PBLK_BIAS3
46*437bfbebSnyanmisaka } QbiasOfst;
47*437bfbebSnyanmisaka 
48*437bfbebSnyanmisaka typedef struct Vepu511Online_t {
49*437bfbebSnyanmisaka     /* 0x00000270 reg156 */
50*437bfbebSnyanmisaka     struct {
51*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
52*437bfbebSnyanmisaka         RK_U32 adr_vsy_t    : 28;
53*437bfbebSnyanmisaka     } adr_vsy_t;
54*437bfbebSnyanmisaka 
55*437bfbebSnyanmisaka     /* 0x00000274 reg157 */
56*437bfbebSnyanmisaka     struct {
57*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
58*437bfbebSnyanmisaka         RK_U32 adr_vsc_t    : 28;
59*437bfbebSnyanmisaka     } adr_vsc_t;
60*437bfbebSnyanmisaka 
61*437bfbebSnyanmisaka     /* 0x00000278 reg158 */
62*437bfbebSnyanmisaka     struct {
63*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
64*437bfbebSnyanmisaka         RK_U32 adr_vsy_b    : 28;
65*437bfbebSnyanmisaka     } adr_vsy_b;
66*437bfbebSnyanmisaka 
67*437bfbebSnyanmisaka     /* 0x0000027c reg159 */
68*437bfbebSnyanmisaka     struct {
69*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
70*437bfbebSnyanmisaka         RK_U32 adr_vsc_b    : 28;
71*437bfbebSnyanmisaka     } adr_vsc_b;
72*437bfbebSnyanmisaka } vepu511_online;
73*437bfbebSnyanmisaka 
74*437bfbebSnyanmisaka typedef struct RdoB32SkipPar_t {
75*437bfbebSnyanmisaka     /* 0x00002060 reg2072 */
76*437bfbebSnyanmisaka     struct {
77*437bfbebSnyanmisaka         RK_U32 madp_thd0                : 12;
78*437bfbebSnyanmisaka         RK_U32 reserved                 : 4;
79*437bfbebSnyanmisaka         RK_U32 madp_thd1                : 12;
80*437bfbebSnyanmisaka         RK_U32 reserved1                : 1;
81*437bfbebSnyanmisaka         RK_U32 flckr_frame_qp_en        : 1;
82*437bfbebSnyanmisaka         RK_U32 flckr_lgt_chng_en        : 1;
83*437bfbebSnyanmisaka         RK_U32 flckr_en                 : 1;
84*437bfbebSnyanmisaka     } atf_thd0;
85*437bfbebSnyanmisaka 
86*437bfbebSnyanmisaka     /* 0x00002064 reg2073 */
87*437bfbebSnyanmisaka     struct {
88*437bfbebSnyanmisaka         RK_U32 madp_thd2      : 12;
89*437bfbebSnyanmisaka         RK_U32 reserved       : 4;
90*437bfbebSnyanmisaka         RK_U32 madp_thd3      : 12;
91*437bfbebSnyanmisaka         RK_U32 reserved1      : 4;
92*437bfbebSnyanmisaka     } atf_thd1;
93*437bfbebSnyanmisaka 
94*437bfbebSnyanmisaka     /* 0x00002068 reg2074 */
95*437bfbebSnyanmisaka     struct {
96*437bfbebSnyanmisaka         RK_U32 wgt0    : 8;
97*437bfbebSnyanmisaka         RK_U32 wgt1    : 8;
98*437bfbebSnyanmisaka         RK_U32 wgt2    : 8;
99*437bfbebSnyanmisaka         RK_U32 wgt3    : 8;
100*437bfbebSnyanmisaka     } atf_wgt0;
101*437bfbebSnyanmisaka 
102*437bfbebSnyanmisaka     /* 0x206c */
103*437bfbebSnyanmisaka     RK_U32 reserved_2075;
104*437bfbebSnyanmisaka } rdo_b32_skip_par;
105*437bfbebSnyanmisaka 
106*437bfbebSnyanmisaka typedef struct RdoSkipPar_t {
107*437bfbebSnyanmisaka     struct {
108*437bfbebSnyanmisaka         RK_U32 madp_thd0    : 12;
109*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
110*437bfbebSnyanmisaka         RK_U32 madp_thd1    : 12;
111*437bfbebSnyanmisaka         RK_U32 reserved1    : 4;
112*437bfbebSnyanmisaka     } atf_thd0;
113*437bfbebSnyanmisaka 
114*437bfbebSnyanmisaka     /* 0x00002064 reg2073 */
115*437bfbebSnyanmisaka     struct {
116*437bfbebSnyanmisaka         RK_U32 madp_thd2    : 12;
117*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
118*437bfbebSnyanmisaka         RK_U32 madp_thd3    : 12;
119*437bfbebSnyanmisaka         RK_U32 reserved1    : 4;
120*437bfbebSnyanmisaka     } atf_thd1;
121*437bfbebSnyanmisaka 
122*437bfbebSnyanmisaka     /* 0x00002068 reg2074 */
123*437bfbebSnyanmisaka     struct {
124*437bfbebSnyanmisaka         RK_U32 wgt0    : 8;
125*437bfbebSnyanmisaka         RK_U32 wgt1    : 8;
126*437bfbebSnyanmisaka         RK_U32 wgt2    : 8;
127*437bfbebSnyanmisaka         RK_U32 wgt3    : 8;
128*437bfbebSnyanmisaka     } atf_wgt0;
129*437bfbebSnyanmisaka 
130*437bfbebSnyanmisaka     /* 0x0000206c reg2075 */
131*437bfbebSnyanmisaka     struct {
132*437bfbebSnyanmisaka         RK_U32 wgt4         : 8;
133*437bfbebSnyanmisaka         RK_U32 reserved     : 24;
134*437bfbebSnyanmisaka     } atf_wgt1;
135*437bfbebSnyanmisaka } rdo_skip_par;
136*437bfbebSnyanmisaka 
137*437bfbebSnyanmisaka typedef struct RdoB32NoSkipPar_t {
138*437bfbebSnyanmisaka     /* 0x00002080 reg2080 */
139*437bfbebSnyanmisaka     struct {
140*437bfbebSnyanmisaka         RK_U32 madp_thd0    : 12;
141*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
142*437bfbebSnyanmisaka         RK_U32 madp_thd1    : 12;
143*437bfbebSnyanmisaka         RK_U32 reserved1    : 4;
144*437bfbebSnyanmisaka     } atf_thd0;
145*437bfbebSnyanmisaka 
146*437bfbebSnyanmisaka     /* 0x00002084 reg2081 */
147*437bfbebSnyanmisaka     struct {
148*437bfbebSnyanmisaka         RK_U32 madp_thd2            : 12;
149*437bfbebSnyanmisaka         RK_U32 reserved             : 4;
150*437bfbebSnyanmisaka         RK_U32 atf_bypass_pri_flag  : 1;
151*437bfbebSnyanmisaka         RK_U32 reserved1            : 15;
152*437bfbebSnyanmisaka     } atf_thd1;
153*437bfbebSnyanmisaka 
154*437bfbebSnyanmisaka 
155*437bfbebSnyanmisaka     /* 0x00002088 reg2082 */
156*437bfbebSnyanmisaka     struct {
157*437bfbebSnyanmisaka         RK_U32 wgt0     : 8;
158*437bfbebSnyanmisaka         RK_U32 wgt1     : 8;
159*437bfbebSnyanmisaka         RK_U32 wgt2     : 8;
160*437bfbebSnyanmisaka         RK_U32 reserved : 8;
161*437bfbebSnyanmisaka     } atf_wgt;
162*437bfbebSnyanmisaka } rdo_b32_noskip_par;
163*437bfbebSnyanmisaka 
164*437bfbebSnyanmisaka typedef struct RdoNoSkipPar_t {
165*437bfbebSnyanmisaka     /* 0x00002080 reg2080 */
166*437bfbebSnyanmisaka     struct {
167*437bfbebSnyanmisaka         RK_U32 madp_thd0    : 12;
168*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
169*437bfbebSnyanmisaka         RK_U32 madp_thd1    : 12;
170*437bfbebSnyanmisaka         RK_U32 reserved1    : 4;
171*437bfbebSnyanmisaka     } ratf_thd0;
172*437bfbebSnyanmisaka 
173*437bfbebSnyanmisaka     /* 0x00002084 reg2081 */
174*437bfbebSnyanmisaka     struct {
175*437bfbebSnyanmisaka         RK_U32 madp_thd2    : 12;
176*437bfbebSnyanmisaka         RK_U32 reserved     : 20;
177*437bfbebSnyanmisaka     } ratf_thd1;
178*437bfbebSnyanmisaka 
179*437bfbebSnyanmisaka     /* 0x00002088 reg2082 */
180*437bfbebSnyanmisaka     struct {
181*437bfbebSnyanmisaka         RK_U32 wgt0    : 8;
182*437bfbebSnyanmisaka         RK_U32 wgt1    : 8;
183*437bfbebSnyanmisaka         RK_U32 wgt2    : 8;
184*437bfbebSnyanmisaka         RK_U32 wgt3    : 8;
185*437bfbebSnyanmisaka     } atf_wgt;
186*437bfbebSnyanmisaka } rdo_noskip_par;
187*437bfbebSnyanmisaka 
188*437bfbebSnyanmisaka typedef struct Vepu511RoiRegion_t {
189*437bfbebSnyanmisaka     struct {
190*437bfbebSnyanmisaka         RK_U32 roi_lt_x    : 10;
191*437bfbebSnyanmisaka         RK_U32 reserved    : 6;
192*437bfbebSnyanmisaka         RK_U32 roi_lt_y    : 10;
193*437bfbebSnyanmisaka         RK_U32 reserved1   : 6;
194*437bfbebSnyanmisaka     } roi_pos_lt;
195*437bfbebSnyanmisaka 
196*437bfbebSnyanmisaka     struct {
197*437bfbebSnyanmisaka         RK_U32 roi_rb_x    : 10;
198*437bfbebSnyanmisaka         RK_U32 reserved    : 6;
199*437bfbebSnyanmisaka         RK_U32 roi_rb_y    : 10;
200*437bfbebSnyanmisaka         RK_U32 reserved1   : 6;
201*437bfbebSnyanmisaka     } roi_pos_rb;
202*437bfbebSnyanmisaka 
203*437bfbebSnyanmisaka     struct {
204*437bfbebSnyanmisaka         RK_U32 roi_qp_value       : 7;
205*437bfbebSnyanmisaka         RK_U32 roi_qp_adj_mode    : 1;
206*437bfbebSnyanmisaka         RK_U32 roi_pri            : 5;
207*437bfbebSnyanmisaka         RK_U32 roi_en             : 1;
208*437bfbebSnyanmisaka         RK_U32 reserved           : 18;
209*437bfbebSnyanmisaka     } roi_base;
210*437bfbebSnyanmisaka 
211*437bfbebSnyanmisaka     /* 0x0000109c reg1063 */
212*437bfbebSnyanmisaka     union {
213*437bfbebSnyanmisaka         struct {
214*437bfbebSnyanmisaka             RK_U32 mdc_intra16         : 4;
215*437bfbebSnyanmisaka             RK_U32 mdc_inter16         : 4;
216*437bfbebSnyanmisaka             RK_U32 mdc_split16         : 4;
217*437bfbebSnyanmisaka             RK_U32 mdc_res_intra16     : 4;
218*437bfbebSnyanmisaka             RK_U32 mdc_res_inter16     : 4;
219*437bfbebSnyanmisaka             RK_U32 mdc_res_zeromv16    : 4;
220*437bfbebSnyanmisaka             RK_U32 mdc_dpth_hevc       : 1;
221*437bfbebSnyanmisaka             RK_U32 reserved            : 7;
222*437bfbebSnyanmisaka         } roi0_mdc0_hevc;
223*437bfbebSnyanmisaka 
224*437bfbebSnyanmisaka         struct {
225*437bfbebSnyanmisaka             RK_U32 roi0_mdc_intra16    : 4;
226*437bfbebSnyanmisaka             RK_U32 roi0_mdc_inter16    : 4;
227*437bfbebSnyanmisaka             RK_U32 roi0_mdc_skip16     : 4;
228*437bfbebSnyanmisaka             RK_U32 reserved            : 20;
229*437bfbebSnyanmisaka         } roi0_mdc0_h264;
230*437bfbebSnyanmisaka     } reg1063;
231*437bfbebSnyanmisaka 
232*437bfbebSnyanmisaka     /* 0x000010a0 reg1064 */
233*437bfbebSnyanmisaka     struct {
234*437bfbebSnyanmisaka         RK_U32 mdc_intra32         : 4;
235*437bfbebSnyanmisaka         RK_U32 mdc_inter32         : 4;
236*437bfbebSnyanmisaka         RK_U32 mdc_split32         : 4;
237*437bfbebSnyanmisaka         RK_U32 mdc_res_intra32     : 4;
238*437bfbebSnyanmisaka         RK_U32 mdc_res_inter32     : 4;
239*437bfbebSnyanmisaka         RK_U32 mdc_res_zeromv32    : 4;
240*437bfbebSnyanmisaka         RK_U32 reserved            : 8;
241*437bfbebSnyanmisaka     } roi_mdc_hevc;
242*437bfbebSnyanmisaka } Vepu511RoiRegion;
243*437bfbebSnyanmisaka 
244*437bfbebSnyanmisaka typedef struct Vepu511RoiCfg_t {
245*437bfbebSnyanmisaka     /* 0x00001080 reg1056 */
246*437bfbebSnyanmisaka     union {
247*437bfbebSnyanmisaka         struct {
248*437bfbebSnyanmisaka             RK_U32 fmdc_adju_intra16         : 4;
249*437bfbebSnyanmisaka             RK_U32 fmdc_adju_inter16         : 4;
250*437bfbebSnyanmisaka             RK_U32 fmdc_adju_split16         : 4;
251*437bfbebSnyanmisaka             RK_U32 fmdc_adju_res_intra16     : 4;
252*437bfbebSnyanmisaka             RK_U32 fmdc_adju_res_inter16     : 4;
253*437bfbebSnyanmisaka             RK_U32 fmdc_adju_res_zeromv16    : 4;
254*437bfbebSnyanmisaka             RK_U32 fmdc_adju_pri             : 5;
255*437bfbebSnyanmisaka             RK_U32 reserved                  : 3;
256*437bfbebSnyanmisaka         } fmdc_adj0_hevc;
257*437bfbebSnyanmisaka 
258*437bfbebSnyanmisaka         struct {
259*437bfbebSnyanmisaka             RK_U32 fmdc_adju_intra16    : 4;
260*437bfbebSnyanmisaka             RK_U32 fmdc_adju_inter16    : 4;
261*437bfbebSnyanmisaka             RK_U32 fmdc_adju_skip16     : 4;
262*437bfbebSnyanmisaka             RK_U32 reserved             : 12;
263*437bfbebSnyanmisaka             RK_U32 fmdc_adj_pri         : 5;
264*437bfbebSnyanmisaka             RK_U32 reserved1            : 3;
265*437bfbebSnyanmisaka         } fmdc_adj0_h264;
266*437bfbebSnyanmisaka     } reg1056;
267*437bfbebSnyanmisaka 
268*437bfbebSnyanmisaka     /* 0x00001084 reg1057 */
269*437bfbebSnyanmisaka     struct {
270*437bfbebSnyanmisaka         RK_U32 fmdc_adju_intra32         : 4;
271*437bfbebSnyanmisaka         RK_U32 fmdc_adju_inter32         : 4;
272*437bfbebSnyanmisaka         RK_U32 fmdc_adju_split32         : 4;
273*437bfbebSnyanmisaka         RK_U32 fmdc_adju_res_intra32     : 4;
274*437bfbebSnyanmisaka         RK_U32 fmdc_adju_res_inter32     : 4;
275*437bfbebSnyanmisaka         RK_U32 fmdc_adju_res_zeromv32    : 4;
276*437bfbebSnyanmisaka         RK_U32 fmdc_adju_split8          : 4;
277*437bfbebSnyanmisaka         RK_U32 fmdc_adju_lt_ref32        : 4;
278*437bfbebSnyanmisaka     } fmdc_adj1_hevc;
279*437bfbebSnyanmisaka 
280*437bfbebSnyanmisaka     RK_U32 reserved_1058;
281*437bfbebSnyanmisaka 
282*437bfbebSnyanmisaka     /* 0x0000108c reg1059 */
283*437bfbebSnyanmisaka     struct {
284*437bfbebSnyanmisaka         RK_U32 bmap_en               : 1;
285*437bfbebSnyanmisaka         RK_U32 bmap_pri              : 5;
286*437bfbebSnyanmisaka         RK_U32 bmap_qpmin            : 6;
287*437bfbebSnyanmisaka         RK_U32 bmap_qpmax            : 6;
288*437bfbebSnyanmisaka         RK_U32 bmap_mdc_dpth         : 1;
289*437bfbebSnyanmisaka         RK_U32 reserved              : 13;
290*437bfbebSnyanmisaka     } bmap_cfg;
291*437bfbebSnyanmisaka 
292*437bfbebSnyanmisaka     /* 0x00001090 reg1060 - 0x0000112c reg1099 */
293*437bfbebSnyanmisaka     Vepu511RoiRegion regions[8];
294*437bfbebSnyanmisaka } Vepu511RoiCfg;
295*437bfbebSnyanmisaka 
296*437bfbebSnyanmisaka /* class: control/link */
297*437bfbebSnyanmisaka /* 0x00000000 reg0 - 0x00000120 reg72 */
298*437bfbebSnyanmisaka typedef struct Vepu511ControlCfg_t {
299*437bfbebSnyanmisaka     /* 0x00000000 reg0 */
300*437bfbebSnyanmisaka     struct {
301*437bfbebSnyanmisaka         RK_U32 sub_ver      : 8;
302*437bfbebSnyanmisaka         RK_U32 h264_cap     : 1;
303*437bfbebSnyanmisaka         RK_U32 hevc_cap     : 1;
304*437bfbebSnyanmisaka         RK_U32 reserved     : 2;
305*437bfbebSnyanmisaka         RK_U32 res_cap      : 4;
306*437bfbebSnyanmisaka         RK_U32 osd_cap      : 2;
307*437bfbebSnyanmisaka         RK_U32 filtr_cap    : 2;
308*437bfbebSnyanmisaka         RK_U32 bfrm_cap     : 1;
309*437bfbebSnyanmisaka         RK_U32 fbc_cap      : 2;
310*437bfbebSnyanmisaka         RK_U32 reserved1    : 1;
311*437bfbebSnyanmisaka         RK_U32 ip_id        : 8;
312*437bfbebSnyanmisaka     } version;
313*437bfbebSnyanmisaka 
314*437bfbebSnyanmisaka     /* 0x00000004 - 0x0000000c */
315*437bfbebSnyanmisaka     RK_U32 reserved1_3[3];
316*437bfbebSnyanmisaka 
317*437bfbebSnyanmisaka     /* 0x00000010 reg4 */
318*437bfbebSnyanmisaka     struct {
319*437bfbebSnyanmisaka         RK_U32 lkt_num     : 8;
320*437bfbebSnyanmisaka         RK_U32 vepu_cmd    : 3;
321*437bfbebSnyanmisaka         RK_U32 reserved    : 21;
322*437bfbebSnyanmisaka     } enc_strt;
323*437bfbebSnyanmisaka 
324*437bfbebSnyanmisaka     /* 0x00000014 reg5 */
325*437bfbebSnyanmisaka     struct {
326*437bfbebSnyanmisaka         RK_U32 safe_clr     : 1;
327*437bfbebSnyanmisaka         RK_U32 force_clr    : 1;
328*437bfbebSnyanmisaka         RK_U32 reserved     : 30;
329*437bfbebSnyanmisaka     } enc_clr;
330*437bfbebSnyanmisaka 
331*437bfbebSnyanmisaka     /* 0x00000018 reg6 */
332*437bfbebSnyanmisaka     struct {
333*437bfbebSnyanmisaka         RK_U32 vswm_lcnt_soft    : 14;
334*437bfbebSnyanmisaka         RK_U32 vswm_fcnt_soft    : 8;
335*437bfbebSnyanmisaka         RK_U32 reserved          : 2;
336*437bfbebSnyanmisaka         RK_U32 dvbm_ack_soft     : 1;
337*437bfbebSnyanmisaka         RK_U32 dvbm_ack_sel      : 1;
338*437bfbebSnyanmisaka         RK_U32 dvbm_inf_sel      : 1;
339*437bfbebSnyanmisaka         RK_U32 reserved1         : 5;
340*437bfbebSnyanmisaka     } vs_ldly;
341*437bfbebSnyanmisaka 
342*437bfbebSnyanmisaka     /* 0x0000001c */
343*437bfbebSnyanmisaka     RK_U32 reserved_7;
344*437bfbebSnyanmisaka 
345*437bfbebSnyanmisaka     /* 0x00000020 reg8 */
346*437bfbebSnyanmisaka     struct {
347*437bfbebSnyanmisaka         RK_U32 enc_done_en          : 1;
348*437bfbebSnyanmisaka         RK_U32 lkt_node_done_en     : 1;
349*437bfbebSnyanmisaka         RK_U32 sclr_done_en         : 1;
350*437bfbebSnyanmisaka         RK_U32 vslc_done_en         : 1;
351*437bfbebSnyanmisaka         RK_U32 vbsf_oflw_en         : 1;
352*437bfbebSnyanmisaka         RK_U32 vbuf_lens_en         : 1;
353*437bfbebSnyanmisaka         RK_U32 enc_err_en           : 1;
354*437bfbebSnyanmisaka         RK_U32 vsrc_err_en          : 1;
355*437bfbebSnyanmisaka         RK_U32 wdg_en               : 1;
356*437bfbebSnyanmisaka         RK_U32 lkt_err_int_en       : 1;
357*437bfbebSnyanmisaka         RK_U32 lkt_err_stop_en      : 1;
358*437bfbebSnyanmisaka         RK_U32 lkt_force_stop_en    : 1;
359*437bfbebSnyanmisaka         RK_U32 jslc_done_en         : 1;
360*437bfbebSnyanmisaka         RK_U32 jbsf_oflw_en         : 1;
361*437bfbebSnyanmisaka         RK_U32 jbuf_lens_en         : 1;
362*437bfbebSnyanmisaka         RK_U32 dvbm_err_en          : 1;
363*437bfbebSnyanmisaka         RK_U32 reserved             : 16;
364*437bfbebSnyanmisaka     } int_en;
365*437bfbebSnyanmisaka 
366*437bfbebSnyanmisaka     /* 0x00000024 reg9 */
367*437bfbebSnyanmisaka     struct {
368*437bfbebSnyanmisaka         RK_U32 enc_done_msk          : 1;
369*437bfbebSnyanmisaka         RK_U32 lkt_node_done_msk     : 1;
370*437bfbebSnyanmisaka         RK_U32 sclr_done_msk         : 1;
371*437bfbebSnyanmisaka         RK_U32 vslc_done_msk         : 1;
372*437bfbebSnyanmisaka         RK_U32 vbsf_oflw_msk         : 1;
373*437bfbebSnyanmisaka         RK_U32 vbuf_lens_msk         : 1;
374*437bfbebSnyanmisaka         RK_U32 enc_err_msk           : 1;
375*437bfbebSnyanmisaka         RK_U32 vsrc_err_msk          : 1;
376*437bfbebSnyanmisaka         RK_U32 wdg_msk               : 1;
377*437bfbebSnyanmisaka         RK_U32 lkt_err_int_msk       : 1;
378*437bfbebSnyanmisaka         RK_U32 lkt_err_stop_msk      : 1;
379*437bfbebSnyanmisaka         RK_U32 lkt_force_stop_msk    : 1;
380*437bfbebSnyanmisaka         RK_U32 jslc_done_msk         : 1;
381*437bfbebSnyanmisaka         RK_U32 jbsf_oflw_msk         : 1;
382*437bfbebSnyanmisaka         RK_U32 jbuf_lens_msk         : 1;
383*437bfbebSnyanmisaka         RK_U32 dvbm_err_msk          : 1;
384*437bfbebSnyanmisaka         RK_U32 reserved              : 16;
385*437bfbebSnyanmisaka     } int_msk;
386*437bfbebSnyanmisaka 
387*437bfbebSnyanmisaka     /* 0x00000028 reg10 */
388*437bfbebSnyanmisaka     struct {
389*437bfbebSnyanmisaka         RK_U32 enc_done_clr          : 1;
390*437bfbebSnyanmisaka         RK_U32 lkt_node_done_clr     : 1;
391*437bfbebSnyanmisaka         RK_U32 sclr_done_clr         : 1;
392*437bfbebSnyanmisaka         RK_U32 vslc_done_clr         : 1;
393*437bfbebSnyanmisaka         RK_U32 vbsf_oflw_clr         : 1;
394*437bfbebSnyanmisaka         RK_U32 vbuf_lens_clr         : 1;
395*437bfbebSnyanmisaka         RK_U32 enc_err_clr           : 1;
396*437bfbebSnyanmisaka         RK_U32 vsrc_err_clr          : 1;
397*437bfbebSnyanmisaka         RK_U32 wdg_clr               : 1;
398*437bfbebSnyanmisaka         RK_U32 lkt_err_int_clr       : 1;
399*437bfbebSnyanmisaka         RK_U32 lkt_err_stop_clr      : 1;
400*437bfbebSnyanmisaka         RK_U32 lkt_force_stop_clr    : 1;
401*437bfbebSnyanmisaka         RK_U32 jslc_done_clr         : 1;
402*437bfbebSnyanmisaka         RK_U32 jbsf_oflw_clr         : 1;
403*437bfbebSnyanmisaka         RK_U32 jbuf_lens_clr         : 1;
404*437bfbebSnyanmisaka         RK_U32 dvbm_err_clr          : 1;
405*437bfbebSnyanmisaka         RK_U32 reserved              : 16;
406*437bfbebSnyanmisaka     } int_clr;
407*437bfbebSnyanmisaka 
408*437bfbebSnyanmisaka     /* 0x0000002c reg11 */
409*437bfbebSnyanmisaka     struct {
410*437bfbebSnyanmisaka         RK_U32 enc_done_sta          : 1;
411*437bfbebSnyanmisaka         RK_U32 lkt_node_done_sta     : 1;
412*437bfbebSnyanmisaka         RK_U32 sclr_done_sta         : 1;
413*437bfbebSnyanmisaka         RK_U32 vslc_done_sta         : 1;
414*437bfbebSnyanmisaka         RK_U32 vbsf_oflw_sta         : 1;
415*437bfbebSnyanmisaka         RK_U32 vbuf_lens_sta         : 1;
416*437bfbebSnyanmisaka         RK_U32 enc_err_sta           : 1;
417*437bfbebSnyanmisaka         RK_U32 vsrc_err_sta          : 1;
418*437bfbebSnyanmisaka         RK_U32 wdg_sta               : 1;
419*437bfbebSnyanmisaka         RK_U32 lkt_err_int_sta       : 1;
420*437bfbebSnyanmisaka         RK_U32 lkt_err_stop_sta      : 1;
421*437bfbebSnyanmisaka         RK_U32 lkt_force_stop_sta    : 1;
422*437bfbebSnyanmisaka         RK_U32 jslc_done_sta         : 1;
423*437bfbebSnyanmisaka         RK_U32 jbsf_oflw_sta         : 1;
424*437bfbebSnyanmisaka         RK_U32 jbuf_lens_sta         : 1;
425*437bfbebSnyanmisaka         RK_U32 dvbm_err_sta          : 1;
426*437bfbebSnyanmisaka         RK_U32 reserved              : 16;
427*437bfbebSnyanmisaka     } int_sta;
428*437bfbebSnyanmisaka 
429*437bfbebSnyanmisaka     /* 0x00000030 reg12 */
430*437bfbebSnyanmisaka     struct {
431*437bfbebSnyanmisaka         RK_U32 jpeg_bus_edin        : 4;
432*437bfbebSnyanmisaka         RK_U32 src_bus_edin         : 4;
433*437bfbebSnyanmisaka         RK_U32 meiw_bus_edin        : 4;
434*437bfbebSnyanmisaka         RK_U32 bsw_bus_edin         : 4;
435*437bfbebSnyanmisaka         RK_U32 lktr_bus_edin        : 4;
436*437bfbebSnyanmisaka         RK_U32 roir_bus_edin        : 4;
437*437bfbebSnyanmisaka         RK_U32 lktw_bus_edin        : 4;
438*437bfbebSnyanmisaka         RK_U32 rec_nfbc_bus_edin    : 4;
439*437bfbebSnyanmisaka     } dtrns_map;
440*437bfbebSnyanmisaka 
441*437bfbebSnyanmisaka     /* 0x00000034 reg13 */
442*437bfbebSnyanmisaka     struct {
443*437bfbebSnyanmisaka         RK_U32 jsrc_bus_edin    : 4;
444*437bfbebSnyanmisaka         RK_U32 reserved         : 12;
445*437bfbebSnyanmisaka         RK_U32 axi_brsp_cke     : 10;
446*437bfbebSnyanmisaka         RK_U32 reserved1        : 6;
447*437bfbebSnyanmisaka     } dtrns_cfg;
448*437bfbebSnyanmisaka 
449*437bfbebSnyanmisaka     /* 0x00000038 reg14 */
450*437bfbebSnyanmisaka     struct {
451*437bfbebSnyanmisaka         RK_U32 vs_load_thd    : 24;
452*437bfbebSnyanmisaka         RK_U32 reserved       : 8;
453*437bfbebSnyanmisaka     } enc_wdg;
454*437bfbebSnyanmisaka 
455*437bfbebSnyanmisaka     /* 0x0000003c reg15 */
456*437bfbebSnyanmisaka     struct {
457*437bfbebSnyanmisaka         RK_U32 hurry_en      : 1;
458*437bfbebSnyanmisaka         RK_U32 hurry_low     : 3;
459*437bfbebSnyanmisaka         RK_U32 hurry_mid     : 3;
460*437bfbebSnyanmisaka         RK_U32 hurry_high    : 3;
461*437bfbebSnyanmisaka         RK_U32 reserved      : 6;
462*437bfbebSnyanmisaka         RK_U32 qos_period    : 16;
463*437bfbebSnyanmisaka     } qos_cfg;
464*437bfbebSnyanmisaka 
465*437bfbebSnyanmisaka     /* 0x00000040 reg16 */
466*437bfbebSnyanmisaka     struct {
467*437bfbebSnyanmisaka         RK_U32 qos_ar_dprt    : 4;
468*437bfbebSnyanmisaka         RK_U32 qos_ar_lprt    : 4;
469*437bfbebSnyanmisaka         RK_U32 qos_ar_mprt    : 4;
470*437bfbebSnyanmisaka         RK_U32 qos_ar_hprt    : 4;
471*437bfbebSnyanmisaka         RK_U32 qos_aw_dprt    : 4;
472*437bfbebSnyanmisaka         RK_U32 qos_aw_lprt    : 4;
473*437bfbebSnyanmisaka         RK_U32 qos_aw_mprt    : 4;
474*437bfbebSnyanmisaka         RK_U32 qos_aw_hprt    : 4;
475*437bfbebSnyanmisaka     } qos_prty;
476*437bfbebSnyanmisaka 
477*437bfbebSnyanmisaka     /* 0x00000044 reg17 */
478*437bfbebSnyanmisaka     RK_U32 hurry_thd_low;
479*437bfbebSnyanmisaka 
480*437bfbebSnyanmisaka     /* 0x00000048 reg18 */
481*437bfbebSnyanmisaka     RK_U32 hurry_thd_mid;
482*437bfbebSnyanmisaka 
483*437bfbebSnyanmisaka     /* 0x0000004c reg19 */
484*437bfbebSnyanmisaka     RK_U32 hurry_thd_high;
485*437bfbebSnyanmisaka 
486*437bfbebSnyanmisaka     /* 0x00000050 reg20 */
487*437bfbebSnyanmisaka     RK_U32 reserved_20;
488*437bfbebSnyanmisaka 
489*437bfbebSnyanmisaka     /* 0x00000054 reg21 */
490*437bfbebSnyanmisaka     struct {
491*437bfbebSnyanmisaka         RK_U32 cke              : 1;
492*437bfbebSnyanmisaka         RK_U32 resetn_hw_en     : 1;
493*437bfbebSnyanmisaka         RK_U32 rfpr_err_e       : 1;
494*437bfbebSnyanmisaka         RK_U32 sram_ckg_en      : 1;
495*437bfbebSnyanmisaka         RK_U32 link_err_stop    : 1;
496*437bfbebSnyanmisaka         RK_U32 reserved         : 27;
497*437bfbebSnyanmisaka     } opt_strg;
498*437bfbebSnyanmisaka 
499*437bfbebSnyanmisaka     /* 0x00000058 reg22 */
500*437bfbebSnyanmisaka     union {
501*437bfbebSnyanmisaka         struct {
502*437bfbebSnyanmisaka             RK_U32 tq8_ckg           : 1;
503*437bfbebSnyanmisaka             RK_U32 tq4_ckg           : 1;
504*437bfbebSnyanmisaka             RK_U32 bits_ckg_8x8      : 1;
505*437bfbebSnyanmisaka             RK_U32 bits_ckg_4x4_1    : 1;
506*437bfbebSnyanmisaka             RK_U32 bits_ckg_4x4_0    : 1;
507*437bfbebSnyanmisaka             RK_U32 inter_mode_ckg    : 1;
508*437bfbebSnyanmisaka             RK_U32 inter_ctrl_ckg    : 1;
509*437bfbebSnyanmisaka             RK_U32 inter_pred_ckg    : 1;
510*437bfbebSnyanmisaka             RK_U32 intra8_ckg        : 1;
511*437bfbebSnyanmisaka             RK_U32 intra4_ckg        : 1;
512*437bfbebSnyanmisaka             RK_U32 reserved          : 22;
513*437bfbebSnyanmisaka         } rdo_ckg_h264;
514*437bfbebSnyanmisaka 
515*437bfbebSnyanmisaka         struct {
516*437bfbebSnyanmisaka             RK_U32 recon32_ckg       : 1;
517*437bfbebSnyanmisaka             RK_U32 iqit32_ckg        : 1;
518*437bfbebSnyanmisaka             RK_U32 q32_ckg           : 1;
519*437bfbebSnyanmisaka             RK_U32 t32_ckg           : 1;
520*437bfbebSnyanmisaka             RK_U32 cabac32_ckg       : 1;
521*437bfbebSnyanmisaka             RK_U32 recon16_ckg       : 1;
522*437bfbebSnyanmisaka             RK_U32 iqit16_ckg        : 1;
523*437bfbebSnyanmisaka             RK_U32 q16_ckg           : 1;
524*437bfbebSnyanmisaka             RK_U32 t16_ckg           : 1;
525*437bfbebSnyanmisaka             RK_U32 cabac16_ckg       : 1;
526*437bfbebSnyanmisaka             RK_U32 recon8_ckg        : 1;
527*437bfbebSnyanmisaka             RK_U32 iqit8_ckg         : 1;
528*437bfbebSnyanmisaka             RK_U32 q8_ckg            : 1;
529*437bfbebSnyanmisaka             RK_U32 t8_ckg            : 1;
530*437bfbebSnyanmisaka             RK_U32 cabac8_ckg        : 1;
531*437bfbebSnyanmisaka             RK_U32 recon4_ckg        : 1;
532*437bfbebSnyanmisaka             RK_U32 iqit4_ckg         : 1;
533*437bfbebSnyanmisaka             RK_U32 q4_ckg            : 1;
534*437bfbebSnyanmisaka             RK_U32 t4_ckg            : 1;
535*437bfbebSnyanmisaka             RK_U32 cabac4_ckg        : 1;
536*437bfbebSnyanmisaka             RK_U32 intra32_ckg       : 1;
537*437bfbebSnyanmisaka             RK_U32 intra16_ckg       : 1;
538*437bfbebSnyanmisaka             RK_U32 intra8_ckg        : 1;
539*437bfbebSnyanmisaka             RK_U32 intra4_ckg        : 1;
540*437bfbebSnyanmisaka             RK_U32 inter_pred_ckg    : 1;
541*437bfbebSnyanmisaka             RK_U32 reserved          : 7;
542*437bfbebSnyanmisaka         } rdo_ckg_hevc;
543*437bfbebSnyanmisaka     } reg0022;
544*437bfbebSnyanmisaka 
545*437bfbebSnyanmisaka     /* 0x0000005c reg23 */
546*437bfbebSnyanmisaka     struct {
547*437bfbebSnyanmisaka         RK_U32 core_id     : 2;
548*437bfbebSnyanmisaka         RK_U32 reserved    : 30;
549*437bfbebSnyanmisaka     } core_id;
550*437bfbebSnyanmisaka 
551*437bfbebSnyanmisaka     /* 0x00000060 reg24 */
552*437bfbebSnyanmisaka     struct {
553*437bfbebSnyanmisaka         RK_U32 dvbm_en           : 1;
554*437bfbebSnyanmisaka         RK_U32 src_badr_sel      : 1;
555*437bfbebSnyanmisaka         RK_U32 ptr_gbck          : 1;
556*437bfbebSnyanmisaka         RK_U32 dvbm_vpu_fskp     : 1;
557*437bfbebSnyanmisaka         RK_U32 dvbm_isp_cnct     : 1;
558*437bfbebSnyanmisaka         RK_U32 dvbm_vepu_cnct    : 1;
559*437bfbebSnyanmisaka         RK_U32 vepu_expt_type    : 2;
560*437bfbebSnyanmisaka         RK_U32 vinf_dly_cycle    : 8;
561*437bfbebSnyanmisaka         RK_U32 ybuf_full_mgn     : 8;
562*437bfbebSnyanmisaka         RK_U32 ybuf_oflw_mgn     : 8;
563*437bfbebSnyanmisaka     } dvbm_cfg;
564*437bfbebSnyanmisaka 
565*437bfbebSnyanmisaka     /* 0x64 */
566*437bfbebSnyanmisaka     RK_U32 reserved_25;
567*437bfbebSnyanmisaka 
568*437bfbebSnyanmisaka     /* 0x00000068 reg26 */
569*437bfbebSnyanmisaka     struct {
570*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
571*437bfbebSnyanmisaka         RK_U32 src_y_adr_str    : 28;
572*437bfbebSnyanmisaka     } dvbm_y_sadr;
573*437bfbebSnyanmisaka 
574*437bfbebSnyanmisaka     /* 0x0000006c reg27 */
575*437bfbebSnyanmisaka     struct {
576*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
577*437bfbebSnyanmisaka         RK_U32 src_c_adr_str    : 28;
578*437bfbebSnyanmisaka     } dvbm_c_sadr;
579*437bfbebSnyanmisaka 
580*437bfbebSnyanmisaka     /* 0x00000070 reg28 */
581*437bfbebSnyanmisaka     struct {
582*437bfbebSnyanmisaka         RK_U32 reserved      : 4;
583*437bfbebSnyanmisaka         RK_U32 dvbm_y_top    : 28;
584*437bfbebSnyanmisaka     } dvbm_y_top;
585*437bfbebSnyanmisaka 
586*437bfbebSnyanmisaka     /* 0x00000074 reg29 */
587*437bfbebSnyanmisaka     struct {
588*437bfbebSnyanmisaka         RK_U32 reserved      : 4;
589*437bfbebSnyanmisaka         RK_U32 dvbm_c_top    : 28;
590*437bfbebSnyanmisaka     } dvbm_c_top;
591*437bfbebSnyanmisaka 
592*437bfbebSnyanmisaka     /* 0x00000078 reg30 */
593*437bfbebSnyanmisaka     struct {
594*437bfbebSnyanmisaka         RK_U32 reserved       : 4;
595*437bfbebSnyanmisaka         RK_U32 dvbm_y_botm    : 28;
596*437bfbebSnyanmisaka     } dvbm_y_botm;
597*437bfbebSnyanmisaka 
598*437bfbebSnyanmisaka     /* 0x0000007c reg31 */
599*437bfbebSnyanmisaka     struct {
600*437bfbebSnyanmisaka         RK_U32 reserved       : 4;
601*437bfbebSnyanmisaka         RK_U32 dvbm_c_botm    : 28;
602*437bfbebSnyanmisaka     } dvbm_c_botm;
603*437bfbebSnyanmisaka 
604*437bfbebSnyanmisaka     /* 0x00000080 reg32 */
605*437bfbebSnyanmisaka     struct {
606*437bfbebSnyanmisaka         RK_U32 dvbm_y_line_strd0    : 17;
607*437bfbebSnyanmisaka         RK_U32 reserved             : 15;
608*437bfbebSnyanmisaka     } dvbm_y_lstd0;
609*437bfbebSnyanmisaka 
610*437bfbebSnyanmisaka     /* 0x84 */
611*437bfbebSnyanmisaka     RK_U32 reserved_33;
612*437bfbebSnyanmisaka 
613*437bfbebSnyanmisaka     /* 0x00000088 reg34 */
614*437bfbebSnyanmisaka     struct {
615*437bfbebSnyanmisaka         RK_U32 reserved            : 4;
616*437bfbebSnyanmisaka         RK_U32 dvbm_y_frm_strd0    : 28;
617*437bfbebSnyanmisaka     } dvbm_y_fstd0;
618*437bfbebSnyanmisaka 
619*437bfbebSnyanmisaka     /* 0x0000008c reg35 */
620*437bfbebSnyanmisaka     struct {
621*437bfbebSnyanmisaka         RK_U32 reserved            : 4;
622*437bfbebSnyanmisaka         RK_U32 dvbm_c_frm_strd0    : 28;
623*437bfbebSnyanmisaka     } dvbm_c_fstd0;
624*437bfbebSnyanmisaka 
625*437bfbebSnyanmisaka     /* 0x00000090 reg36 */
626*437bfbebSnyanmisaka     struct {
627*437bfbebSnyanmisaka         RK_U32 dvbm_y_line_strd1    : 17;
628*437bfbebSnyanmisaka         RK_U32 reserved             : 15;
629*437bfbebSnyanmisaka     } dvbm_y_lstd1;
630*437bfbebSnyanmisaka 
631*437bfbebSnyanmisaka     /* 0x94 */
632*437bfbebSnyanmisaka     RK_U32 reserved_37;
633*437bfbebSnyanmisaka 
634*437bfbebSnyanmisaka     /* 0x00000098 reg38 */
635*437bfbebSnyanmisaka     struct {
636*437bfbebSnyanmisaka         RK_U32 reserved            : 4;
637*437bfbebSnyanmisaka         RK_U32 dvbm_y_frm_strd1    : 28;
638*437bfbebSnyanmisaka     } dvbm_y_fstd1;
639*437bfbebSnyanmisaka 
640*437bfbebSnyanmisaka     /* 0x0000009c reg39 */
641*437bfbebSnyanmisaka     struct {
642*437bfbebSnyanmisaka         RK_U32 reserved            : 4;
643*437bfbebSnyanmisaka         RK_U32 dvbm_c_frm_strd1    : 28;
644*437bfbebSnyanmisaka     } dvbm_c_fstd1;
645*437bfbebSnyanmisaka 
646*437bfbebSnyanmisaka     /* 0xa0 - 0xfc */
647*437bfbebSnyanmisaka     RK_U32 reserved40_63[24];
648*437bfbebSnyanmisaka 
649*437bfbebSnyanmisaka     /* 0x00000100 reg64 */
650*437bfbebSnyanmisaka     struct {
651*437bfbebSnyanmisaka         RK_U32 node_core_id     : 2;
652*437bfbebSnyanmisaka         RK_U32 node_int         : 1;
653*437bfbebSnyanmisaka         RK_U32 reserved         : 1;
654*437bfbebSnyanmisaka         RK_U32 task_id          : 12;
655*437bfbebSnyanmisaka         RK_U32 bsw_cntd         : 1;
656*437bfbebSnyanmisaka         RK_U32 bsw_cntd_jpeg    : 1;
657*437bfbebSnyanmisaka         RK_U32 reserved1        : 14;
658*437bfbebSnyanmisaka     } lkt_node_cfg;
659*437bfbebSnyanmisaka 
660*437bfbebSnyanmisaka     /* 0x00000104 reg65 */
661*437bfbebSnyanmisaka     struct {
662*437bfbebSnyanmisaka         RK_U32 pcfg_rd_en       : 1;
663*437bfbebSnyanmisaka         RK_U32 reserved         : 3;
664*437bfbebSnyanmisaka         RK_U32 lkt_addr_pcfg    : 28;
665*437bfbebSnyanmisaka     } lkt_addr_pcfg;
666*437bfbebSnyanmisaka 
667*437bfbebSnyanmisaka     /* 0x00000108 reg66 */
668*437bfbebSnyanmisaka     struct {
669*437bfbebSnyanmisaka         RK_U32 rc_cfg_rd_en       : 1;
670*437bfbebSnyanmisaka         RK_U32 reserved           : 3;
671*437bfbebSnyanmisaka         RK_U32 lkt_addr_rc_cfg    : 28;
672*437bfbebSnyanmisaka     } lkt_addr_rc_cfg;
673*437bfbebSnyanmisaka 
674*437bfbebSnyanmisaka     /* 0x0000010c reg67 */
675*437bfbebSnyanmisaka     struct {
676*437bfbebSnyanmisaka         RK_U32 par_cfg_rd_en       : 1;
677*437bfbebSnyanmisaka         RK_U32 reserved            : 3;
678*437bfbebSnyanmisaka         RK_U32 lkt_addr_par_cfg    : 28;
679*437bfbebSnyanmisaka     } lkt_addr_par_cfg;
680*437bfbebSnyanmisaka 
681*437bfbebSnyanmisaka     /* 0x00000110 reg68 */
682*437bfbebSnyanmisaka     struct {
683*437bfbebSnyanmisaka         RK_U32 sqi_cfg_rd_en       : 1;
684*437bfbebSnyanmisaka         RK_U32 reserved            : 3;
685*437bfbebSnyanmisaka         RK_U32 lkt_addr_sqi_cfg    : 28;
686*437bfbebSnyanmisaka     } lkt_addr_sqi_cfg;
687*437bfbebSnyanmisaka 
688*437bfbebSnyanmisaka     /* 0x00000114 reg69 */
689*437bfbebSnyanmisaka     struct {
690*437bfbebSnyanmisaka         RK_U32 scal_cfg_rd_en       : 1;
691*437bfbebSnyanmisaka         RK_U32 reserved             : 3;
692*437bfbebSnyanmisaka         RK_U32 lkt_addr_scal_cfg    : 28;
693*437bfbebSnyanmisaka     } lkt_addr_scal_cfg;
694*437bfbebSnyanmisaka 
695*437bfbebSnyanmisaka     /* 0x00000118 reg70 */
696*437bfbebSnyanmisaka     struct {
697*437bfbebSnyanmisaka         RK_U32 pp_cfg_rd_en       : 1;
698*437bfbebSnyanmisaka         RK_U32 reserved           : 3;
699*437bfbebSnyanmisaka         RK_U32 lkt_addr_pp_cfg    : 28;
700*437bfbebSnyanmisaka     } lkt_addr_osd_cfg;
701*437bfbebSnyanmisaka 
702*437bfbebSnyanmisaka     /* 0x0000011c reg71 */
703*437bfbebSnyanmisaka     struct {
704*437bfbebSnyanmisaka         RK_U32 st_rd_en       : 1;
705*437bfbebSnyanmisaka         RK_U32 st_wr_en       : 1;
706*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
707*437bfbebSnyanmisaka         RK_U32 lkt_addr_st    : 28;
708*437bfbebSnyanmisaka     } lkt_addr_st;
709*437bfbebSnyanmisaka 
710*437bfbebSnyanmisaka     /* 0x00000120 reg72 */
711*437bfbebSnyanmisaka     struct {
712*437bfbebSnyanmisaka         RK_U32 nxt_node_vld    : 1;
713*437bfbebSnyanmisaka         RK_U32 reserved        : 3;
714*437bfbebSnyanmisaka         RK_U32 lkt_addr_nxt    : 28;
715*437bfbebSnyanmisaka     } lkt_addr_nxt;
716*437bfbebSnyanmisaka } Vepu511ControlCfg;
717*437bfbebSnyanmisaka 
718*437bfbebSnyanmisaka /* 0x00000270 reg156  - 0x0000039c reg231 */
719*437bfbebSnyanmisaka typedef struct Vepu511FrmCommon_t {
720*437bfbebSnyanmisaka     /* 0x00000270 reg156 - 0x0000027c reg159 */
721*437bfbebSnyanmisaka     vepu511_online online_addr;
722*437bfbebSnyanmisaka 
723*437bfbebSnyanmisaka     /* 0x00000280 reg160 */
724*437bfbebSnyanmisaka     RK_U32 adr_src0;
725*437bfbebSnyanmisaka 
726*437bfbebSnyanmisaka     /* 0x00000284 reg161 */
727*437bfbebSnyanmisaka     RK_U32 adr_src1;
728*437bfbebSnyanmisaka 
729*437bfbebSnyanmisaka     /* 0x00000288 reg162 */
730*437bfbebSnyanmisaka     RK_U32 adr_src2;
731*437bfbebSnyanmisaka 
732*437bfbebSnyanmisaka     /* 0x0000028c reg163 */
733*437bfbebSnyanmisaka     RK_U32 rfpw_h_addr;
734*437bfbebSnyanmisaka 
735*437bfbebSnyanmisaka     /* 0x00000290 reg164 */
736*437bfbebSnyanmisaka     RK_U32 rfpw_b_addr;
737*437bfbebSnyanmisaka 
738*437bfbebSnyanmisaka     /* 0x00000294 reg165 */
739*437bfbebSnyanmisaka     RK_U32 rfpr_h_addr;
740*437bfbebSnyanmisaka 
741*437bfbebSnyanmisaka     /* 0x00000298 reg166 */
742*437bfbebSnyanmisaka     RK_U32 rfpr_b_addr;
743*437bfbebSnyanmisaka 
744*437bfbebSnyanmisaka     /* 0x0000029c reg167 */
745*437bfbebSnyanmisaka     RK_U32 colmvw_addr;
746*437bfbebSnyanmisaka 
747*437bfbebSnyanmisaka     /* 0x000002a0 reg168 */
748*437bfbebSnyanmisaka     RK_U32 colmvr_addr;
749*437bfbebSnyanmisaka 
750*437bfbebSnyanmisaka     /* 0x000002a4 reg169 */
751*437bfbebSnyanmisaka     RK_U32 dspw_addr;
752*437bfbebSnyanmisaka 
753*437bfbebSnyanmisaka     /* 0x000002a8 reg170 */
754*437bfbebSnyanmisaka     RK_U32 dspr_addr;
755*437bfbebSnyanmisaka 
756*437bfbebSnyanmisaka     /* 0x000002ac reg171 */
757*437bfbebSnyanmisaka     RK_U32 meiw_addr;
758*437bfbebSnyanmisaka 
759*437bfbebSnyanmisaka     /* 0x000002b0 reg172 */
760*437bfbebSnyanmisaka     RK_U32 bsbt_addr;
761*437bfbebSnyanmisaka 
762*437bfbebSnyanmisaka     /* 0x000002b4 reg173 */
763*437bfbebSnyanmisaka     RK_U32 bsbb_addr;
764*437bfbebSnyanmisaka 
765*437bfbebSnyanmisaka     /* 0x000002b8 reg174 */
766*437bfbebSnyanmisaka     RK_U32 adr_bsbs;
767*437bfbebSnyanmisaka 
768*437bfbebSnyanmisaka     /* 0x000002bc reg175 */
769*437bfbebSnyanmisaka     RK_U32 bsbr_addr;
770*437bfbebSnyanmisaka 
771*437bfbebSnyanmisaka     /* 0x000002c0 reg176 */
772*437bfbebSnyanmisaka     RK_U32 lpfw_addr;
773*437bfbebSnyanmisaka 
774*437bfbebSnyanmisaka     /* 0x000002c4 reg177 */
775*437bfbebSnyanmisaka     RK_U32 lpfr_addr;
776*437bfbebSnyanmisaka 
777*437bfbebSnyanmisaka     /* 0x000002c8 reg178 */
778*437bfbebSnyanmisaka     RK_U32 ebuft_addr;
779*437bfbebSnyanmisaka 
780*437bfbebSnyanmisaka     /* 0x000002cc reg179 */
781*437bfbebSnyanmisaka     RK_U32 ebufb_addr;
782*437bfbebSnyanmisaka 
783*437bfbebSnyanmisaka     /* 0x000002d0 reg180 */
784*437bfbebSnyanmisaka     RK_U32 rfpt_h_addr;
785*437bfbebSnyanmisaka 
786*437bfbebSnyanmisaka     /* 0x000002d4 reg181 */
787*437bfbebSnyanmisaka     RK_U32 rfpb_h_addr;
788*437bfbebSnyanmisaka 
789*437bfbebSnyanmisaka     /* 0x000002d8 reg182 */
790*437bfbebSnyanmisaka     RK_U32 rfpt_b_addr;
791*437bfbebSnyanmisaka 
792*437bfbebSnyanmisaka     /* 0x000002dc reg183 */
793*437bfbebSnyanmisaka     RK_U32 adr_rfpb_b;
794*437bfbebSnyanmisaka 
795*437bfbebSnyanmisaka     /* 0x000002e0 reg184 */
796*437bfbebSnyanmisaka     RK_U32 adr_smear_rd;
797*437bfbebSnyanmisaka 
798*437bfbebSnyanmisaka     /* 0x000002e4 reg185 */
799*437bfbebSnyanmisaka     RK_U32 adr_smear_wr;
800*437bfbebSnyanmisaka 
801*437bfbebSnyanmisaka     /* 0x000002e8 reg186 */
802*437bfbebSnyanmisaka     RK_U32 adr_roir;
803*437bfbebSnyanmisaka 
804*437bfbebSnyanmisaka     /* 0x000002ec reg187 */
805*437bfbebSnyanmisaka     RK_U32 eslf_badr;
806*437bfbebSnyanmisaka 
807*437bfbebSnyanmisaka     /* 0x000002f0 reg188 */
808*437bfbebSnyanmisaka     RK_U32 rfp1r_h_addr;
809*437bfbebSnyanmisaka 
810*437bfbebSnyanmisaka     /* 0x000002f4 reg189 */
811*437bfbebSnyanmisaka     RK_U32 rfp1r_b_addr;
812*437bfbebSnyanmisaka 
813*437bfbebSnyanmisaka     /* 0x000002f8 reg190 */
814*437bfbebSnyanmisaka     RK_U32 dsp1r_addr;
815*437bfbebSnyanmisaka 
816*437bfbebSnyanmisaka     /* 0x2fc */
817*437bfbebSnyanmisaka     RK_U32 reserved_191;
818*437bfbebSnyanmisaka 
819*437bfbebSnyanmisaka     /* 0x00000300 reg192 */
820*437bfbebSnyanmisaka     struct {
821*437bfbebSnyanmisaka         RK_U32 enc_stnd                : 2;
822*437bfbebSnyanmisaka         RK_U32 cur_frm_ref             : 1;
823*437bfbebSnyanmisaka         RK_U32 mei_stor                : 1;
824*437bfbebSnyanmisaka         RK_U32 bs_scp                  : 1;
825*437bfbebSnyanmisaka         RK_U32 reserved                : 3;
826*437bfbebSnyanmisaka         RK_U32 pic_qp                  : 6;
827*437bfbebSnyanmisaka         RK_U32 num_pic_tot_cur_hevc    : 5;
828*437bfbebSnyanmisaka         RK_U32 log2_ctu_num_hevc       : 5;
829*437bfbebSnyanmisaka         RK_U32 rfpr_compress_mode      : 1;
830*437bfbebSnyanmisaka         RK_U32 reserved1               : 2;
831*437bfbebSnyanmisaka         RK_U32 eslf_out_e_jpeg         : 1;
832*437bfbebSnyanmisaka         RK_U32 jpeg_slen_fifo          : 1;
833*437bfbebSnyanmisaka         RK_U32 eslf_out_e              : 1;
834*437bfbebSnyanmisaka         RK_U32 slen_fifo               : 1;
835*437bfbebSnyanmisaka         RK_U32 rec_fbc_dis             : 1;
836*437bfbebSnyanmisaka     } enc_pic;
837*437bfbebSnyanmisaka 
838*437bfbebSnyanmisaka     /* 0x00000304 reg193 */
839*437bfbebSnyanmisaka     struct {
840*437bfbebSnyanmisaka         RK_U32 dchs_txid    : 2;
841*437bfbebSnyanmisaka         RK_U32 dchs_rxid    : 2;
842*437bfbebSnyanmisaka         RK_U32 dchs_txe     : 1;
843*437bfbebSnyanmisaka         RK_U32 dchs_rxe     : 1;
844*437bfbebSnyanmisaka         RK_U32 reserved     : 2;
845*437bfbebSnyanmisaka         RK_U32 dchs_dly     : 8;
846*437bfbebSnyanmisaka         RK_U32 dchs_ofst    : 10;
847*437bfbebSnyanmisaka         RK_U32 reserved1    : 6;
848*437bfbebSnyanmisaka     } dual_core;
849*437bfbebSnyanmisaka 
850*437bfbebSnyanmisaka     /* 0x00000308 reg194 */
851*437bfbebSnyanmisaka     struct {
852*437bfbebSnyanmisaka         RK_U32 frame_id        : 8;
853*437bfbebSnyanmisaka         RK_U32 frm_id_match    : 1;
854*437bfbebSnyanmisaka         RK_U32 reserved        : 3;
855*437bfbebSnyanmisaka         RK_U32 source_id       : 1;
856*437bfbebSnyanmisaka         RK_U32 src_id_match    : 1;
857*437bfbebSnyanmisaka         RK_U32 reserved1       : 2;
858*437bfbebSnyanmisaka         RK_U32 ch_id           : 2;
859*437bfbebSnyanmisaka         RK_U32 vrsp_rtn_en     : 1;
860*437bfbebSnyanmisaka         RK_U32 vinf_req_en     : 1;
861*437bfbebSnyanmisaka         RK_U32 reserved2       : 12;
862*437bfbebSnyanmisaka     } enc_id;
863*437bfbebSnyanmisaka 
864*437bfbebSnyanmisaka     /* 0x0000030c reg195 */
865*437bfbebSnyanmisaka     RK_U32 bsp_size;
866*437bfbebSnyanmisaka 
867*437bfbebSnyanmisaka     /* 0x00000310 reg196 */
868*437bfbebSnyanmisaka     struct {
869*437bfbebSnyanmisaka         RK_U32 pic_wd8_m1    : 11;
870*437bfbebSnyanmisaka         RK_U32 reserved      : 5;
871*437bfbebSnyanmisaka         RK_U32 pic_hd8_m1    : 11;
872*437bfbebSnyanmisaka         RK_U32 reserved1     : 5;
873*437bfbebSnyanmisaka     } enc_rsl;
874*437bfbebSnyanmisaka 
875*437bfbebSnyanmisaka     /* 0x00000314 reg197 */
876*437bfbebSnyanmisaka     struct {
877*437bfbebSnyanmisaka         RK_U32 pic_wfill    : 6;
878*437bfbebSnyanmisaka         RK_U32 reserved     : 10;
879*437bfbebSnyanmisaka         RK_U32 pic_hfill    : 6;
880*437bfbebSnyanmisaka         RK_U32 reserved1    : 10;
881*437bfbebSnyanmisaka     } src_fill;
882*437bfbebSnyanmisaka 
883*437bfbebSnyanmisaka     /* 0x00000318 reg198 */
884*437bfbebSnyanmisaka     struct {
885*437bfbebSnyanmisaka         RK_U32 alpha_swap            : 1;
886*437bfbebSnyanmisaka         RK_U32 rbuv_swap             : 1;
887*437bfbebSnyanmisaka         RK_U32 src_cfmt              : 4;
888*437bfbebSnyanmisaka         RK_U32 src_rcne              : 1;
889*437bfbebSnyanmisaka         RK_U32 out_fmt               : 1;
890*437bfbebSnyanmisaka         RK_U32 src_range_trns_en     : 1;
891*437bfbebSnyanmisaka         RK_U32 src_range_trns_sel    : 1;
892*437bfbebSnyanmisaka         RK_U32 chroma_ds_mode        : 1;
893*437bfbebSnyanmisaka         RK_U32 reserved              : 21;
894*437bfbebSnyanmisaka     } src_fmt;
895*437bfbebSnyanmisaka 
896*437bfbebSnyanmisaka     /* 0x0000031c reg199 */
897*437bfbebSnyanmisaka     struct {
898*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2y    : 9;
899*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2y    : 9;
900*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2y    : 9;
901*437bfbebSnyanmisaka         RK_U32 reserved       : 5;
902*437bfbebSnyanmisaka     } src_udfy;
903*437bfbebSnyanmisaka 
904*437bfbebSnyanmisaka     /* 0x00000320 reg200 */
905*437bfbebSnyanmisaka     struct {
906*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2u    : 9;
907*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2u    : 9;
908*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2u    : 9;
909*437bfbebSnyanmisaka         RK_U32 reserved       : 5;
910*437bfbebSnyanmisaka     } src_udfu;
911*437bfbebSnyanmisaka 
912*437bfbebSnyanmisaka     /* 0x00000324 reg201 */
913*437bfbebSnyanmisaka     struct {
914*437bfbebSnyanmisaka         RK_U32 csc_wgt_b2v    : 9;
915*437bfbebSnyanmisaka         RK_U32 csc_wgt_g2v    : 9;
916*437bfbebSnyanmisaka         RK_U32 csc_wgt_r2v    : 9;
917*437bfbebSnyanmisaka         RK_U32 reserved       : 5;
918*437bfbebSnyanmisaka     } src_udfv;
919*437bfbebSnyanmisaka 
920*437bfbebSnyanmisaka     /* 0x00000328 reg202 */
921*437bfbebSnyanmisaka     struct {
922*437bfbebSnyanmisaka         RK_U32 csc_ofst_v    : 8;
923*437bfbebSnyanmisaka         RK_U32 csc_ofst_u    : 8;
924*437bfbebSnyanmisaka         RK_U32 csc_ofst_y    : 5;
925*437bfbebSnyanmisaka         RK_U32 reserved      : 11;
926*437bfbebSnyanmisaka     } src_udfo;
927*437bfbebSnyanmisaka 
928*437bfbebSnyanmisaka     /* 0x0000032c reg203 */
929*437bfbebSnyanmisaka     struct {
930*437bfbebSnyanmisaka         RK_U32 cr_force_value     : 8;
931*437bfbebSnyanmisaka         RK_U32 cb_force_value     : 8;
932*437bfbebSnyanmisaka         RK_U32 chroma_force_en    : 1;
933*437bfbebSnyanmisaka         RK_U32 reserved           : 9;
934*437bfbebSnyanmisaka         RK_U32 src_mirr           : 1;
935*437bfbebSnyanmisaka         RK_U32 src_rot            : 2;
936*437bfbebSnyanmisaka         RK_U32 tile4x4_en         : 1;
937*437bfbebSnyanmisaka         RK_U32 rkfbcd_en          : 1;
938*437bfbebSnyanmisaka         RK_U32 reserved1          : 1;
939*437bfbebSnyanmisaka     } src_proc;
940*437bfbebSnyanmisaka 
941*437bfbebSnyanmisaka     /* 0x00000330 reg204 */
942*437bfbebSnyanmisaka     struct {
943*437bfbebSnyanmisaka         RK_U32 pic_ofst_x    : 14;
944*437bfbebSnyanmisaka         RK_U32 reserved      : 2;
945*437bfbebSnyanmisaka         RK_U32 pic_ofst_y    : 14;
946*437bfbebSnyanmisaka         RK_U32 reserved1     : 2;
947*437bfbebSnyanmisaka     } pic_ofst;
948*437bfbebSnyanmisaka 
949*437bfbebSnyanmisaka     /* 0x00000334 reg205 */
950*437bfbebSnyanmisaka     struct {
951*437bfbebSnyanmisaka         RK_U32 src_strd0    : 21;
952*437bfbebSnyanmisaka         RK_U32 reserved     : 11;
953*437bfbebSnyanmisaka     } src_strd0;
954*437bfbebSnyanmisaka 
955*437bfbebSnyanmisaka     /* 0x00000338 reg206 */
956*437bfbebSnyanmisaka     struct {
957*437bfbebSnyanmisaka         RK_U32 src_strd1    : 16;
958*437bfbebSnyanmisaka         RK_U32 reserved     : 16;
959*437bfbebSnyanmisaka     } src_strd1;
960*437bfbebSnyanmisaka 
961*437bfbebSnyanmisaka     /* 0x0000033c reg207 */
962*437bfbebSnyanmisaka     struct {
963*437bfbebSnyanmisaka         RK_U32 pp_corner_filter_strength      : 2;
964*437bfbebSnyanmisaka         RK_U32 reserved                       : 2;
965*437bfbebSnyanmisaka         RK_U32 pp_edge_filter_strength        : 2;
966*437bfbebSnyanmisaka         RK_U32 reserved1                      : 2;
967*437bfbebSnyanmisaka         RK_U32 pp_internal_filter_strength    : 2;
968*437bfbebSnyanmisaka         RK_U32 reserved2                      : 22;
969*437bfbebSnyanmisaka     } src_flt_cfg;
970*437bfbebSnyanmisaka 
971*437bfbebSnyanmisaka     /* 0x340 - 0x34c */
972*437bfbebSnyanmisaka     RK_U32 reserved208_211[4];
973*437bfbebSnyanmisaka 
974*437bfbebSnyanmisaka     /* 0x00000350 reg212 */
975*437bfbebSnyanmisaka     struct {
976*437bfbebSnyanmisaka         RK_U32 rc_en         : 1;
977*437bfbebSnyanmisaka         RK_U32 aq_en         : 1;
978*437bfbebSnyanmisaka         RK_U32 reserved      : 10;
979*437bfbebSnyanmisaka         RK_U32 rc_ctu_num    : 20;
980*437bfbebSnyanmisaka     } rc_cfg;
981*437bfbebSnyanmisaka 
982*437bfbebSnyanmisaka     /* 0x00000354 reg213 */
983*437bfbebSnyanmisaka     struct {
984*437bfbebSnyanmisaka         RK_U32 reserved       : 16;
985*437bfbebSnyanmisaka         RK_U32 rc_qp_range    : 4;
986*437bfbebSnyanmisaka         RK_U32 rc_max_qp      : 6;
987*437bfbebSnyanmisaka         RK_U32 rc_min_qp      : 6;
988*437bfbebSnyanmisaka     } rc_qp;
989*437bfbebSnyanmisaka 
990*437bfbebSnyanmisaka     /* 0x00000358 reg214 */
991*437bfbebSnyanmisaka     struct {
992*437bfbebSnyanmisaka         RK_U32 ctu_ebit    : 20;
993*437bfbebSnyanmisaka         RK_U32 reserved    : 12;
994*437bfbebSnyanmisaka     } rc_tgt;
995*437bfbebSnyanmisaka 
996*437bfbebSnyanmisaka     /* 0x0000035c reg215 */
997*437bfbebSnyanmisaka     struct {
998*437bfbebSnyanmisaka         RK_U32 eslf_rptr    : 10;
999*437bfbebSnyanmisaka         RK_U32 eslf_wptr    : 10;
1000*437bfbebSnyanmisaka         RK_U32 eslf_blen    : 10;
1001*437bfbebSnyanmisaka         RK_U32 eslf_updt    : 2;
1002*437bfbebSnyanmisaka     } eslf_buf;
1003*437bfbebSnyanmisaka 
1004*437bfbebSnyanmisaka     /* 0x00000360 reg216 */
1005*437bfbebSnyanmisaka     struct {
1006*437bfbebSnyanmisaka         RK_U32 sli_splt          : 1;
1007*437bfbebSnyanmisaka         RK_U32 sli_splt_mode     : 1;
1008*437bfbebSnyanmisaka         RK_U32 sli_splt_cpst     : 1;
1009*437bfbebSnyanmisaka         RK_U32 reserved          : 12;
1010*437bfbebSnyanmisaka         RK_U32 sli_flsh          : 1;
1011*437bfbebSnyanmisaka         RK_U32 sli_max_num_m1    : 15;
1012*437bfbebSnyanmisaka         RK_U32 reserved1         : 1;
1013*437bfbebSnyanmisaka     } sli_splt;
1014*437bfbebSnyanmisaka 
1015*437bfbebSnyanmisaka     /* 0x00000364 reg217 */
1016*437bfbebSnyanmisaka     struct {
1017*437bfbebSnyanmisaka         RK_U32 sli_splt_byte    : 20;
1018*437bfbebSnyanmisaka         RK_U32 reserved         : 12;
1019*437bfbebSnyanmisaka     } sli_byte;
1020*437bfbebSnyanmisaka 
1021*437bfbebSnyanmisaka     /* 0x00000368 reg218 */
1022*437bfbebSnyanmisaka     struct {
1023*437bfbebSnyanmisaka         RK_U32 sli_splt_cnum_m1    : 20;
1024*437bfbebSnyanmisaka         RK_U32 reserved            : 12;
1025*437bfbebSnyanmisaka     } sli_cnum;
1026*437bfbebSnyanmisaka 
1027*437bfbebSnyanmisaka     /* 0x0000036c reg219 */
1028*437bfbebSnyanmisaka     struct {
1029*437bfbebSnyanmisaka         RK_U32 uvc_partition0_len    : 12;
1030*437bfbebSnyanmisaka         RK_U32 uvc_partition_len     : 12;
1031*437bfbebSnyanmisaka         RK_U32 uvc_skip_len          : 6;
1032*437bfbebSnyanmisaka         RK_U32 reserved              : 2;
1033*437bfbebSnyanmisaka     } vbs_pad;
1034*437bfbebSnyanmisaka 
1035*437bfbebSnyanmisaka     /* 0x00000370 reg220 */
1036*437bfbebSnyanmisaka     struct {
1037*437bfbebSnyanmisaka         RK_U32 cime_srch_dwnh    : 4;
1038*437bfbebSnyanmisaka         RK_U32 cime_srch_uph     : 4;
1039*437bfbebSnyanmisaka         RK_U32 cime_srch_rgtw    : 4;
1040*437bfbebSnyanmisaka         RK_U32 cime_srch_lftw    : 4;
1041*437bfbebSnyanmisaka         RK_U32 dlt_frm_num       : 16;
1042*437bfbebSnyanmisaka     } me_rnge;
1043*437bfbebSnyanmisaka 
1044*437bfbebSnyanmisaka     /* 0x00000374 reg221 */
1045*437bfbebSnyanmisaka     struct {
1046*437bfbebSnyanmisaka         RK_U32 srgn_max_num      : 7;
1047*437bfbebSnyanmisaka         RK_U32 cime_dist_thre    : 13;
1048*437bfbebSnyanmisaka         RK_U32 rme_srch_h        : 2;
1049*437bfbebSnyanmisaka         RK_U32 rme_srch_v        : 2;
1050*437bfbebSnyanmisaka         RK_U32 rme_dis           : 3;
1051*437bfbebSnyanmisaka         RK_U32 reserved          : 1;
1052*437bfbebSnyanmisaka         RK_U32 fme_dis           : 3;
1053*437bfbebSnyanmisaka         RK_U32 reserved1         : 1;
1054*437bfbebSnyanmisaka     } me_cfg;
1055*437bfbebSnyanmisaka 
1056*437bfbebSnyanmisaka     /* 0x00000378 reg222 */
1057*437bfbebSnyanmisaka     struct {
1058*437bfbebSnyanmisaka         RK_U32 cime_zero_thre     : 13;
1059*437bfbebSnyanmisaka         RK_U32 reserved           : 15;
1060*437bfbebSnyanmisaka         RK_U32 fme_prefsu_en      : 2;
1061*437bfbebSnyanmisaka         RK_U32 colmv_stor_hevc    : 1;
1062*437bfbebSnyanmisaka         RK_U32 colmv_load_hevc    : 1;
1063*437bfbebSnyanmisaka     } me_cach;
1064*437bfbebSnyanmisaka 
1065*437bfbebSnyanmisaka     /* 0x0000037c reg223 */
1066*437bfbebSnyanmisaka     struct {
1067*437bfbebSnyanmisaka         RK_U32 ref_num                    : 1;
1068*437bfbebSnyanmisaka         RK_U32 thre_zero_sad_dep0_cme     : 6;
1069*437bfbebSnyanmisaka         RK_U32 thre_zero_sad_dep1_cme     : 6;
1070*437bfbebSnyanmisaka         RK_U32 thre_zero_diff_dep1_cme    : 3;
1071*437bfbebSnyanmisaka         RK_U32 thre_zero_num_dep1_cme     : 3;
1072*437bfbebSnyanmisaka         RK_U32 thre_num_hit_dep1_cme      : 2;
1073*437bfbebSnyanmisaka         RK_U32 reserved                   : 7;
1074*437bfbebSnyanmisaka         RK_U32 rfpw_mode                  : 1;
1075*437bfbebSnyanmisaka         RK_U32 rfpr_mode                  : 1;
1076*437bfbebSnyanmisaka         RK_U32 rfp1r_mode                 : 1;
1077*437bfbebSnyanmisaka         RK_U32 reserved1                  : 1;
1078*437bfbebSnyanmisaka     } me_ref_comb;
1079*437bfbebSnyanmisaka 
1080*437bfbebSnyanmisaka     /* 0x380 - 0x39c */
1081*437bfbebSnyanmisaka     RK_U32 reserved224_231[8];
1082*437bfbebSnyanmisaka 
1083*437bfbebSnyanmisaka } Vepu511FrmCommon;
1084*437bfbebSnyanmisaka 
1085*437bfbebSnyanmisaka /* 0x520 reg328 - 0x538 reg334 */
1086*437bfbebSnyanmisaka typedef struct Vepu511PpFrameCfg_t {
1087*437bfbebSnyanmisaka     /* 0x00000520 reg328 */
1088*437bfbebSnyanmisaka     RK_U32 adr_md_vpp;
1089*437bfbebSnyanmisaka 
1090*437bfbebSnyanmisaka     /* 0x00000524 reg329 */
1091*437bfbebSnyanmisaka     RK_U32 adr_od_vpp;
1092*437bfbebSnyanmisaka 
1093*437bfbebSnyanmisaka     /* 0x00000528 reg330 */
1094*437bfbebSnyanmisaka     RK_U32 adr_ref_mdw;
1095*437bfbebSnyanmisaka 
1096*437bfbebSnyanmisaka     /* 0x0000052c reg331 */
1097*437bfbebSnyanmisaka     RK_U32 adr_ref_mdr;
1098*437bfbebSnyanmisaka 
1099*437bfbebSnyanmisaka     /* 0x00000530 reg332 */
1100*437bfbebSnyanmisaka     struct {
1101*437bfbebSnyanmisaka         RK_U32 sto_stride_md          : 8;
1102*437bfbebSnyanmisaka         RK_U32 sto_stride_od          : 8;
1103*437bfbebSnyanmisaka         RK_U32 cur_frm_en_md          : 1;
1104*437bfbebSnyanmisaka         RK_U32 ref_frm_en_md          : 1;
1105*437bfbebSnyanmisaka         RK_U32 switch_sad_md          : 2;
1106*437bfbebSnyanmisaka         RK_U32 night_mode_en_md       : 1;
1107*437bfbebSnyanmisaka         RK_U32 flycatkin_flt_en_md    : 1;
1108*437bfbebSnyanmisaka         RK_U32 en_od                  : 1;
1109*437bfbebSnyanmisaka         RK_U32 background_en_od       : 1;
1110*437bfbebSnyanmisaka         RK_U32 sad_comp_en_od         : 1;
1111*437bfbebSnyanmisaka         RK_U32 reserved               : 6;
1112*437bfbebSnyanmisaka         RK_U32 vepu_pp_en             : 1;
1113*437bfbebSnyanmisaka     } vpp_base_cfg;
1114*437bfbebSnyanmisaka 
1115*437bfbebSnyanmisaka     /* 0x00000534 reg333 */
1116*437bfbebSnyanmisaka     struct {
1117*437bfbebSnyanmisaka         RK_U32 thres_sad_md          : 12;
1118*437bfbebSnyanmisaka         RK_U32 thres_move_md         : 3;
1119*437bfbebSnyanmisaka         RK_U32 reserved              : 1;
1120*437bfbebSnyanmisaka         RK_U32 thres_dust_move_md    : 4;
1121*437bfbebSnyanmisaka         RK_U32 thres_dust_blk_md     : 3;
1122*437bfbebSnyanmisaka         RK_U32 reserved1             : 1;
1123*437bfbebSnyanmisaka         RK_U32 thres_dust_chng_md    : 8;
1124*437bfbebSnyanmisaka     } thd_md_vpp;
1125*437bfbebSnyanmisaka 
1126*437bfbebSnyanmisaka     /* 0x00000538 reg334 */
1127*437bfbebSnyanmisaka     struct {
1128*437bfbebSnyanmisaka         RK_U32 thres_complex_od        : 12;
1129*437bfbebSnyanmisaka         RK_U32 thres_complex_cnt_od    : 3;
1130*437bfbebSnyanmisaka         RK_U32 thres_sad_od            : 14;
1131*437bfbebSnyanmisaka         RK_U32 reserved                : 3;
1132*437bfbebSnyanmisaka     } thd_od_vpp;
1133*437bfbebSnyanmisaka } Vepu511PpFrameCfg;
1134*437bfbebSnyanmisaka 
1135*437bfbebSnyanmisaka /* class: rc/roi/aq/klut */
1136*437bfbebSnyanmisaka /* 0x00001000 reg1024 - 0x00001160 reg1112 */
1137*437bfbebSnyanmisaka typedef struct Vepu511RcRoi_t {
1138*437bfbebSnyanmisaka     /* 0x00001000 reg1024 */
1139*437bfbebSnyanmisaka     struct {
1140*437bfbebSnyanmisaka         RK_U32 qp_adj0     : 5;
1141*437bfbebSnyanmisaka         RK_U32 qp_adj1     : 5;
1142*437bfbebSnyanmisaka         RK_U32 qp_adj2     : 5;
1143*437bfbebSnyanmisaka         RK_U32 qp_adj3     : 5;
1144*437bfbebSnyanmisaka         RK_U32 qp_adj4     : 5;
1145*437bfbebSnyanmisaka         RK_U32 reserved    : 7;
1146*437bfbebSnyanmisaka     } rc_adj0;
1147*437bfbebSnyanmisaka 
1148*437bfbebSnyanmisaka     /* 0x00001004 reg1025 */
1149*437bfbebSnyanmisaka     struct {
1150*437bfbebSnyanmisaka         RK_U32 qp_adj5     : 5;
1151*437bfbebSnyanmisaka         RK_U32 qp_adj6     : 5;
1152*437bfbebSnyanmisaka         RK_U32 qp_adj7     : 5;
1153*437bfbebSnyanmisaka         RK_U32 qp_adj8     : 5;
1154*437bfbebSnyanmisaka         RK_U32 reserved    : 12;
1155*437bfbebSnyanmisaka     } rc_adj1;
1156*437bfbebSnyanmisaka 
1157*437bfbebSnyanmisaka     /* 0x00001008 reg1026 - 0x00001028 reg1034 */
1158*437bfbebSnyanmisaka     RK_U32 rc_dthd_0_8[9];
1159*437bfbebSnyanmisaka 
1160*437bfbebSnyanmisaka     /* 0x102c */
1161*437bfbebSnyanmisaka     RK_U32 reserved_1035;
1162*437bfbebSnyanmisaka 
1163*437bfbebSnyanmisaka     /* 0x00001030 reg1036 */
1164*437bfbebSnyanmisaka     struct {
1165*437bfbebSnyanmisaka         RK_U32 qpmin_area0    : 6;
1166*437bfbebSnyanmisaka         RK_U32 qpmax_area0    : 6;
1167*437bfbebSnyanmisaka         RK_U32 qpmin_area1    : 6;
1168*437bfbebSnyanmisaka         RK_U32 qpmax_area1    : 6;
1169*437bfbebSnyanmisaka         RK_U32 qpmin_area2    : 6;
1170*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
1171*437bfbebSnyanmisaka     } roi_qthd0;
1172*437bfbebSnyanmisaka 
1173*437bfbebSnyanmisaka     /* 0x00001034 reg1037 */
1174*437bfbebSnyanmisaka     struct {
1175*437bfbebSnyanmisaka         RK_U32 qpmax_area2    : 6;
1176*437bfbebSnyanmisaka         RK_U32 qpmin_area3    : 6;
1177*437bfbebSnyanmisaka         RK_U32 qpmax_area3    : 6;
1178*437bfbebSnyanmisaka         RK_U32 qpmin_area4    : 6;
1179*437bfbebSnyanmisaka         RK_U32 qpmax_area4    : 6;
1180*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
1181*437bfbebSnyanmisaka     } roi_qthd1;
1182*437bfbebSnyanmisaka 
1183*437bfbebSnyanmisaka     /* 0x00001038 reg1038 */
1184*437bfbebSnyanmisaka     struct {
1185*437bfbebSnyanmisaka         RK_U32 qpmin_area5    : 6;
1186*437bfbebSnyanmisaka         RK_U32 qpmax_area5    : 6;
1187*437bfbebSnyanmisaka         RK_U32 qpmin_area6    : 6;
1188*437bfbebSnyanmisaka         RK_U32 qpmax_area6    : 6;
1189*437bfbebSnyanmisaka         RK_U32 qpmin_area7    : 6;
1190*437bfbebSnyanmisaka         RK_U32 reserved       : 2;
1191*437bfbebSnyanmisaka     } roi_qthd2;
1192*437bfbebSnyanmisaka 
1193*437bfbebSnyanmisaka     /* 0x0000103c reg1039 */
1194*437bfbebSnyanmisaka     struct {
1195*437bfbebSnyanmisaka         RK_U32 qpmax_area7    : 6;
1196*437bfbebSnyanmisaka         RK_U32 reserved       : 26;
1197*437bfbebSnyanmisaka     } roi_qthd3;
1198*437bfbebSnyanmisaka 
1199*437bfbebSnyanmisaka     /* 0x00001040 reg1040 */
1200*437bfbebSnyanmisaka     RK_U32 reserved_1040;
1201*437bfbebSnyanmisaka 
1202*437bfbebSnyanmisaka     /* 0x00001044 reg1041 - 0x00001050 reg1044 */
1203*437bfbebSnyanmisaka     RK_U8 aq_tthd[16];
1204*437bfbebSnyanmisaka 
1205*437bfbebSnyanmisaka     /* 0x00001054 reg1045 */
1206*437bfbebSnyanmisaka     struct {
1207*437bfbebSnyanmisaka         RK_S32 aq_stp_s0     : 5;
1208*437bfbebSnyanmisaka         RK_S32 aq_stp_0t1    : 5;
1209*437bfbebSnyanmisaka         RK_S32 aq_stp_1t2    : 5;
1210*437bfbebSnyanmisaka         RK_S32 aq_stp_2t3    : 5;
1211*437bfbebSnyanmisaka         RK_S32 aq_stp_3t4    : 5;
1212*437bfbebSnyanmisaka         RK_S32 aq_stp_4t5    : 5;
1213*437bfbebSnyanmisaka         RK_S32 reserved      : 2;
1214*437bfbebSnyanmisaka     } aq_stp0;
1215*437bfbebSnyanmisaka 
1216*437bfbebSnyanmisaka     /* 0x00001058 reg1046 */
1217*437bfbebSnyanmisaka     struct {
1218*437bfbebSnyanmisaka         RK_S32 aq_stp_5t6      : 5;
1219*437bfbebSnyanmisaka         RK_S32 aq_stp_6t7      : 5;
1220*437bfbebSnyanmisaka         RK_S32 aq_stp_7t8      : 5;
1221*437bfbebSnyanmisaka         RK_S32 aq_stp_8t9      : 5;
1222*437bfbebSnyanmisaka         RK_S32 aq_stp_9t10     : 5;
1223*437bfbebSnyanmisaka         RK_S32 aq_stp_10t11    : 5;
1224*437bfbebSnyanmisaka         RK_S32 reserved        : 2;
1225*437bfbebSnyanmisaka     } aq_stp1;
1226*437bfbebSnyanmisaka 
1227*437bfbebSnyanmisaka     /* 0x0000105c reg1047 */
1228*437bfbebSnyanmisaka     struct {
1229*437bfbebSnyanmisaka         RK_S32 aq_stp_11t12    : 5;
1230*437bfbebSnyanmisaka         RK_S32 aq_stp_12t13    : 5;
1231*437bfbebSnyanmisaka         RK_S32 aq_stp_13t14    : 5;
1232*437bfbebSnyanmisaka         RK_S32 aq_stp_14t15    : 5;
1233*437bfbebSnyanmisaka         RK_S32 aq_stp_b15      : 5;
1234*437bfbebSnyanmisaka         RK_U32 reserved        : 7;
1235*437bfbebSnyanmisaka     } aq_stp2;
1236*437bfbebSnyanmisaka 
1237*437bfbebSnyanmisaka     /* 0x00001060 reg1048 */
1238*437bfbebSnyanmisaka     struct {
1239*437bfbebSnyanmisaka         RK_U32 aq16_rnge         : 4;
1240*437bfbebSnyanmisaka         RK_U32 aq32_rnge         : 4;
1241*437bfbebSnyanmisaka         RK_U32 aq8_rnge          : 5;
1242*437bfbebSnyanmisaka         RK_U32 aq16_dif0         : 5;
1243*437bfbebSnyanmisaka         RK_U32 aq16_dif1         : 5;
1244*437bfbebSnyanmisaka         RK_U32 reserved          : 1;
1245*437bfbebSnyanmisaka         RK_U32 aq_cme_en         : 1;
1246*437bfbebSnyanmisaka         RK_U32 aq_subj_cme_en    : 1;
1247*437bfbebSnyanmisaka         RK_U32 aq_rme_en         : 1;
1248*437bfbebSnyanmisaka         RK_U32 aq_subj_rme_en    : 1;
1249*437bfbebSnyanmisaka         RK_U32 reserved1         : 4;
1250*437bfbebSnyanmisaka     } aq_clip;
1251*437bfbebSnyanmisaka 
1252*437bfbebSnyanmisaka     /* 0x00001064 reg1049 */
1253*437bfbebSnyanmisaka     struct {
1254*437bfbebSnyanmisaka         RK_U32 madi_th0    : 8;
1255*437bfbebSnyanmisaka         RK_U32 madi_th1    : 8;
1256*437bfbebSnyanmisaka         RK_U32 madi_th2    : 8;
1257*437bfbebSnyanmisaka         RK_U32 reserved    : 8;
1258*437bfbebSnyanmisaka     } madi_st_thd;
1259*437bfbebSnyanmisaka 
1260*437bfbebSnyanmisaka     /* 0x00001068 reg1050 */
1261*437bfbebSnyanmisaka     struct {
1262*437bfbebSnyanmisaka         RK_U32 madp_th0     : 12;
1263*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
1264*437bfbebSnyanmisaka         RK_U32 madp_th1     : 12;
1265*437bfbebSnyanmisaka         RK_U32 reserved1    : 4;
1266*437bfbebSnyanmisaka     } madp_st_thd0;
1267*437bfbebSnyanmisaka 
1268*437bfbebSnyanmisaka     /* 0x0000106c reg1051 */
1269*437bfbebSnyanmisaka     struct {
1270*437bfbebSnyanmisaka         RK_U32 madp_th2    : 12;
1271*437bfbebSnyanmisaka         RK_U32 reserved    : 20;
1272*437bfbebSnyanmisaka     } madp_st_thd1;
1273*437bfbebSnyanmisaka 
1274*437bfbebSnyanmisaka     /* 0x1070 - 0x1078 */
1275*437bfbebSnyanmisaka     RK_U32 reserved1052_1054[3];
1276*437bfbebSnyanmisaka 
1277*437bfbebSnyanmisaka     /* 0x0000107c reg1055 */
1278*437bfbebSnyanmisaka     struct {
1279*437bfbebSnyanmisaka         RK_U32 chrm_klut_ofst    : 4;
1280*437bfbebSnyanmisaka         RK_U32 reserved          : 28;
1281*437bfbebSnyanmisaka     } klut_ofst;
1282*437bfbebSnyanmisaka 
1283*437bfbebSnyanmisaka     /*0x00001080 reg1056 - 0x0000112c reg1099 */
1284*437bfbebSnyanmisaka     Vepu511RoiCfg roi_cfg;
1285*437bfbebSnyanmisaka 
1286*437bfbebSnyanmisaka     /* 0x00001130 reg1100 */
1287*437bfbebSnyanmisaka     struct {
1288*437bfbebSnyanmisaka         RK_U32 base_thre_rough_mad32_intra           : 4;
1289*437bfbebSnyanmisaka         RK_U32 delta0_thre_rough_mad32_intra         : 4;
1290*437bfbebSnyanmisaka         RK_U32 delta1_thre_rough_mad32_intra         : 6;
1291*437bfbebSnyanmisaka         RK_U32 delta2_thre_rough_mad32_intra         : 6;
1292*437bfbebSnyanmisaka         RK_U32 delta3_thre_rough_mad32_intra         : 7;
1293*437bfbebSnyanmisaka         RK_U32 delta4_thre_rough_mad32_intra_low5    : 5;
1294*437bfbebSnyanmisaka     } cudecis_thd0;
1295*437bfbebSnyanmisaka 
1296*437bfbebSnyanmisaka     /* 0x00001134 reg1101 */
1297*437bfbebSnyanmisaka     struct {
1298*437bfbebSnyanmisaka         RK_U32 delta4_thre_rough_mad32_intra_high2    : 2;
1299*437bfbebSnyanmisaka         RK_U32 delta5_thre_rough_mad32_intra          : 7;
1300*437bfbebSnyanmisaka         RK_U32 delta6_thre_rough_mad32_intra          : 7;
1301*437bfbebSnyanmisaka         RK_U32 base_thre_fine_mad32_intra             : 4;
1302*437bfbebSnyanmisaka         RK_U32 delta0_thre_fine_mad32_intra           : 4;
1303*437bfbebSnyanmisaka         RK_U32 delta1_thre_fine_mad32_intra           : 5;
1304*437bfbebSnyanmisaka         RK_U32 delta2_thre_fine_mad32_intra_low3      : 3;
1305*437bfbebSnyanmisaka     } cudecis_thd1;
1306*437bfbebSnyanmisaka 
1307*437bfbebSnyanmisaka     /* 0x00001138 reg1102 */
1308*437bfbebSnyanmisaka     struct {
1309*437bfbebSnyanmisaka         RK_U32 delta2_thre_fine_mad32_intra_high2    : 2;
1310*437bfbebSnyanmisaka         RK_U32 delta3_thre_fine_mad32_intra          : 5;
1311*437bfbebSnyanmisaka         RK_U32 delta4_thre_fine_mad32_intra          : 5;
1312*437bfbebSnyanmisaka         RK_U32 delta5_thre_fine_mad32_intra          : 6;
1313*437bfbebSnyanmisaka         RK_U32 delta6_thre_fine_mad32_intra          : 6;
1314*437bfbebSnyanmisaka         RK_U32 base_thre_str_edge_mad32_intra        : 3;
1315*437bfbebSnyanmisaka         RK_U32 delta0_thre_str_edge_mad32_intra      : 2;
1316*437bfbebSnyanmisaka         RK_U32 delta1_thre_str_edge_mad32_intra      : 3;
1317*437bfbebSnyanmisaka     } cudecis_thd2;
1318*437bfbebSnyanmisaka 
1319*437bfbebSnyanmisaka     /* 0x0000113c reg1103 */
1320*437bfbebSnyanmisaka     struct {
1321*437bfbebSnyanmisaka         RK_U32 delta2_thre_str_edge_mad32_intra      : 3;
1322*437bfbebSnyanmisaka         RK_U32 delta3_thre_str_edge_mad32_intra      : 4;
1323*437bfbebSnyanmisaka         RK_U32 base_thre_str_edge_bgrad32_intra      : 5;
1324*437bfbebSnyanmisaka         RK_U32 delta0_thre_str_edge_bgrad32_intra    : 2;
1325*437bfbebSnyanmisaka         RK_U32 delta1_thre_str_edge_bgrad32_intra    : 3;
1326*437bfbebSnyanmisaka         RK_U32 delta2_thre_str_edge_bgrad32_intra    : 4;
1327*437bfbebSnyanmisaka         RK_U32 delta3_thre_str_edge_bgrad32_intra    : 5;
1328*437bfbebSnyanmisaka         RK_U32 base_thre_mad16_intra                 : 3;
1329*437bfbebSnyanmisaka         RK_U32 delta0_thre_mad16_intra               : 3;
1330*437bfbebSnyanmisaka     } cudecis_thd3;
1331*437bfbebSnyanmisaka 
1332*437bfbebSnyanmisaka     /* 0x00001140 reg1104 */
1333*437bfbebSnyanmisaka     struct {
1334*437bfbebSnyanmisaka         RK_U32 delta1_thre_mad16_intra          : 3;
1335*437bfbebSnyanmisaka         RK_U32 delta2_thre_mad16_intra          : 4;
1336*437bfbebSnyanmisaka         RK_U32 delta3_thre_mad16_intra          : 5;
1337*437bfbebSnyanmisaka         RK_U32 delta4_thre_mad16_intra          : 5;
1338*437bfbebSnyanmisaka         RK_U32 delta5_thre_mad16_intra          : 6;
1339*437bfbebSnyanmisaka         RK_U32 delta6_thre_mad16_intra          : 6;
1340*437bfbebSnyanmisaka         RK_U32 delta0_thre_mad16_ratio_intra    : 3;
1341*437bfbebSnyanmisaka     } cudecis_thd4;
1342*437bfbebSnyanmisaka 
1343*437bfbebSnyanmisaka     /* 0x00001144 reg1105 */
1344*437bfbebSnyanmisaka     struct {
1345*437bfbebSnyanmisaka         RK_U32 delta1_thre_mad16_ratio_intra           : 3;
1346*437bfbebSnyanmisaka         RK_U32 delta2_thre_mad16_ratio_intra           : 3;
1347*437bfbebSnyanmisaka         RK_U32 delta3_thre_mad16_ratio_intra           : 3;
1348*437bfbebSnyanmisaka         RK_U32 delta4_thre_mad16_ratio_intra           : 3;
1349*437bfbebSnyanmisaka         RK_U32 delta5_thre_mad16_ratio_intra           : 3;
1350*437bfbebSnyanmisaka         RK_U32 delta6_thre_mad16_ratio_intra           : 3;
1351*437bfbebSnyanmisaka         RK_U32 delta7_thre_mad16_ratio_intra           : 3;
1352*437bfbebSnyanmisaka         RK_U32 delta0_thre_rough_bgrad32_intra         : 3;
1353*437bfbebSnyanmisaka         RK_U32 delta1_thre_rough_bgrad32_intra         : 4;
1354*437bfbebSnyanmisaka         RK_U32 delta2_thre_rough_bgrad32_intra_low4    : 4;
1355*437bfbebSnyanmisaka     } cudecis_thd5;
1356*437bfbebSnyanmisaka 
1357*437bfbebSnyanmisaka     /* 0x00001148 reg1106 */
1358*437bfbebSnyanmisaka     struct {
1359*437bfbebSnyanmisaka         RK_U32 delta2_thre_rough_bgrad32_intra_high2    : 2;
1360*437bfbebSnyanmisaka         RK_U32 delta3_thre_rough_bgrad32_intra          : 10;
1361*437bfbebSnyanmisaka         RK_U32 delta4_thre_rough_bgrad32_intra          : 10;
1362*437bfbebSnyanmisaka         RK_U32 delta5_thre_rough_bgrad32_intra_low10    : 10;
1363*437bfbebSnyanmisaka     } cudecis_thd6;
1364*437bfbebSnyanmisaka 
1365*437bfbebSnyanmisaka     /* 0x0000114c reg1107 */
1366*437bfbebSnyanmisaka     struct {
1367*437bfbebSnyanmisaka         RK_U32 delta5_thre_rough_bgrad32_intra_high1    : 1;
1368*437bfbebSnyanmisaka         RK_U32 delta6_thre_rough_bgrad32_intra          : 12;
1369*437bfbebSnyanmisaka         RK_U32 delta7_thre_rough_bgrad32_intra          : 13;
1370*437bfbebSnyanmisaka         RK_U32 delta0_thre_bgrad16_ratio_intra          : 4;
1371*437bfbebSnyanmisaka         RK_U32 delta1_thre_bgrad16_ratio_intra_low2     : 2;
1372*437bfbebSnyanmisaka     } cudecis_thd7;
1373*437bfbebSnyanmisaka 
1374*437bfbebSnyanmisaka     /* 0x00001150 reg1108 */
1375*437bfbebSnyanmisaka     struct {
1376*437bfbebSnyanmisaka         RK_U32 delta1_thre_bgrad16_ratio_intra_high2    : 2;
1377*437bfbebSnyanmisaka         RK_U32 delta2_thre_bgrad16_ratio_intra          : 4;
1378*437bfbebSnyanmisaka         RK_U32 delta3_thre_bgrad16_ratio_intra          : 4;
1379*437bfbebSnyanmisaka         RK_U32 delta4_thre_bgrad16_ratio_intra          : 4;
1380*437bfbebSnyanmisaka         RK_U32 delta5_thre_bgrad16_ratio_intra          : 4;
1381*437bfbebSnyanmisaka         RK_U32 delta6_thre_bgrad16_ratio_intra          : 4;
1382*437bfbebSnyanmisaka         RK_U32 delta7_thre_bgrad16_ratio_intra          : 4;
1383*437bfbebSnyanmisaka         RK_U32 delta0_thre_fme_ratio_inter              : 3;
1384*437bfbebSnyanmisaka         RK_U32 delta1_thre_fme_ratio_inter              : 3;
1385*437bfbebSnyanmisaka     } cudecis_thd8;
1386*437bfbebSnyanmisaka 
1387*437bfbebSnyanmisaka     /* 0x00001154 reg1109 */
1388*437bfbebSnyanmisaka     struct {
1389*437bfbebSnyanmisaka         RK_U32 delta2_thre_fme_ratio_inter    : 3;
1390*437bfbebSnyanmisaka         RK_U32 delta3_thre_fme_ratio_inter    : 3;
1391*437bfbebSnyanmisaka         RK_U32 delta4_thre_fme_ratio_inter    : 3;
1392*437bfbebSnyanmisaka         RK_U32 delta5_thre_fme_ratio_inter    : 3;
1393*437bfbebSnyanmisaka         RK_U32 delta6_thre_fme_ratio_inter    : 3;
1394*437bfbebSnyanmisaka         RK_U32 delta7_thre_fme_ratio_inter    : 3;
1395*437bfbebSnyanmisaka         RK_U32 base_thre_fme32_inter          : 3;
1396*437bfbebSnyanmisaka         RK_U32 delta0_thre_fme32_inter        : 3;
1397*437bfbebSnyanmisaka         RK_U32 delta1_thre_fme32_inter        : 4;
1398*437bfbebSnyanmisaka         RK_U32 delta2_thre_fme32_inter        : 4;
1399*437bfbebSnyanmisaka     } cudecis_thd9;
1400*437bfbebSnyanmisaka 
1401*437bfbebSnyanmisaka     /* 0x00001158 reg1110 */
1402*437bfbebSnyanmisaka     struct {
1403*437bfbebSnyanmisaka         RK_U32 delta3_thre_fme32_inter    : 5;
1404*437bfbebSnyanmisaka         RK_U32 delta4_thre_fme32_inter    : 6;
1405*437bfbebSnyanmisaka         RK_U32 delta5_thre_fme32_inter    : 7;
1406*437bfbebSnyanmisaka         RK_U32 delta6_thre_fme32_inter    : 8;
1407*437bfbebSnyanmisaka         RK_U32 thre_cme32_inter           : 6;
1408*437bfbebSnyanmisaka     } cudecis_thd10;
1409*437bfbebSnyanmisaka 
1410*437bfbebSnyanmisaka     /* 0x0000115c reg1111 */
1411*437bfbebSnyanmisaka     struct {
1412*437bfbebSnyanmisaka         RK_U32 delta0_thre_mad_fme_ratio_inter    : 4;
1413*437bfbebSnyanmisaka         RK_U32 delta1_thre_mad_fme_ratio_inter    : 4;
1414*437bfbebSnyanmisaka         RK_U32 delta2_thre_mad_fme_ratio_inter    : 4;
1415*437bfbebSnyanmisaka         RK_U32 delta3_thre_mad_fme_ratio_inter    : 4;
1416*437bfbebSnyanmisaka         RK_U32 delta4_thre_mad_fme_ratio_inter    : 4;
1417*437bfbebSnyanmisaka         RK_U32 delta5_thre_mad_fme_ratio_inter    : 4;
1418*437bfbebSnyanmisaka         RK_U32 delta6_thre_mad_fme_ratio_inter    : 4;
1419*437bfbebSnyanmisaka         RK_U32 delta7_thre_mad_fme_ratio_inter    : 4;
1420*437bfbebSnyanmisaka     } cudecis_thd11;
1421*437bfbebSnyanmisaka 
1422*437bfbebSnyanmisaka     /* 0x00001160 reg1112 */
1423*437bfbebSnyanmisaka     struct {
1424*437bfbebSnyanmisaka         RK_U32 delta0_thre_mad_fme_ratio_inter    : 4;
1425*437bfbebSnyanmisaka         RK_U32 delta1_thre_mad_fme_ratio_inter    : 4;
1426*437bfbebSnyanmisaka         RK_U32 delta2_thre_mad_fme_ratio_inter    : 4;
1427*437bfbebSnyanmisaka         RK_U32 delta3_thre_mad_fme_ratio_inter    : 4;
1428*437bfbebSnyanmisaka         RK_U32 delta4_thre_mad_fme_ratio_inter    : 4;
1429*437bfbebSnyanmisaka         RK_U32 delta5_thre_mad_fme_ratio_inter    : 4;
1430*437bfbebSnyanmisaka         RK_U32 delta6_thre_mad_fme_ratio_inter    : 4;
1431*437bfbebSnyanmisaka         RK_U32 delta7_thre_mad_fme_ratio_inter    : 4;
1432*437bfbebSnyanmisaka     } cudecis_thd12;
1433*437bfbebSnyanmisaka } Vepu511RcRoi;
1434*437bfbebSnyanmisaka 
1435*437bfbebSnyanmisaka typedef struct Vepu511OsdRegion_t {
1436*437bfbebSnyanmisaka     struct {
1437*437bfbebSnyanmisaka         RK_U32 osd_en                : 1;
1438*437bfbebSnyanmisaka         RK_U32 reserved              : 4;
1439*437bfbebSnyanmisaka         RK_U32 osd_qp_adj_en         : 1;
1440*437bfbebSnyanmisaka         RK_U32 osd_range_trns_en     : 1;
1441*437bfbebSnyanmisaka         RK_U32 osd_range_trns_sel    : 1;
1442*437bfbebSnyanmisaka         RK_U32 osd_fmt               : 4;
1443*437bfbebSnyanmisaka         RK_U32 osd_alpha_swap        : 1;
1444*437bfbebSnyanmisaka         RK_U32 osd_rbuv_swap         : 1;
1445*437bfbebSnyanmisaka         RK_U32 reserved1             : 8;
1446*437bfbebSnyanmisaka         RK_U32 osd_fg_alpha          : 8;
1447*437bfbebSnyanmisaka         RK_U32 osd_fg_alpha_sel      : 2;
1448*437bfbebSnyanmisaka     } cfg0;
1449*437bfbebSnyanmisaka 
1450*437bfbebSnyanmisaka     struct {
1451*437bfbebSnyanmisaka         RK_U32 osd_lt_xcrd    : 14;
1452*437bfbebSnyanmisaka         RK_U32 osd_lt_ycrd    : 14;
1453*437bfbebSnyanmisaka         RK_U32 osd_endn       : 4;
1454*437bfbebSnyanmisaka     } cfg1;
1455*437bfbebSnyanmisaka 
1456*437bfbebSnyanmisaka     struct {
1457*437bfbebSnyanmisaka         RK_U32 osd_rb_xcrd    : 14;
1458*437bfbebSnyanmisaka         RK_U32 osd_rb_ycrd    : 14;
1459*437bfbebSnyanmisaka         RK_U32 reserved        : 4;
1460*437bfbebSnyanmisaka     } cfg2;
1461*437bfbebSnyanmisaka 
1462*437bfbebSnyanmisaka     RK_U32 osd_st_addr;
1463*437bfbebSnyanmisaka 
1464*437bfbebSnyanmisaka     RK_U32 reserved;
1465*437bfbebSnyanmisaka 
1466*437bfbebSnyanmisaka     struct {
1467*437bfbebSnyanmisaka         RK_U32 osd_stride        : 17;
1468*437bfbebSnyanmisaka         RK_U32 reserved          : 8;
1469*437bfbebSnyanmisaka         RK_U32 osd_ch_ds_mode    : 1;
1470*437bfbebSnyanmisaka         RK_U32 reserved1         : 6;
1471*437bfbebSnyanmisaka     } cfg5;
1472*437bfbebSnyanmisaka 
1473*437bfbebSnyanmisaka     RK_U8 lut[8];
1474*437bfbebSnyanmisaka 
1475*437bfbebSnyanmisaka     /* only for h.264/h.h265, jpeg no use */
1476*437bfbebSnyanmisaka     struct {
1477*437bfbebSnyanmisaka         RK_U32 osd_qp_adj_sel    : 1;
1478*437bfbebSnyanmisaka         RK_U32 osd_qp            : 7;
1479*437bfbebSnyanmisaka         RK_U32 osd_qp_max        : 6;
1480*437bfbebSnyanmisaka         RK_U32 osd_qp_min        : 6;
1481*437bfbebSnyanmisaka         RK_U32 osd_qp_prj        : 5;
1482*437bfbebSnyanmisaka         RK_U32 reserved          : 7;
1483*437bfbebSnyanmisaka     } cfg8;
1484*437bfbebSnyanmisaka } Vepu511OsdRegion;
1485*437bfbebSnyanmisaka 
1486*437bfbebSnyanmisaka /* class: osd */
1487*437bfbebSnyanmisaka /* 0x00003000 reg3072 - 0x00003134 reg3149 */
1488*437bfbebSnyanmisaka typedef struct Vepu511Osd_t {
1489*437bfbebSnyanmisaka     /* 0x00003000 reg3072 - 0x0000311c reg3143*/
1490*437bfbebSnyanmisaka     Vepu511OsdRegion osd_regions[8];
1491*437bfbebSnyanmisaka 
1492*437bfbebSnyanmisaka     /* 0x00003120 reg3144 */
1493*437bfbebSnyanmisaka     struct {
1494*437bfbebSnyanmisaka         RK_U32 osd_csc_yr    : 9;
1495*437bfbebSnyanmisaka         RK_U32 osd_csc_yg    : 9;
1496*437bfbebSnyanmisaka         RK_U32 osd_csc_yb    : 9;
1497*437bfbebSnyanmisaka         RK_U32 reserved      : 5;
1498*437bfbebSnyanmisaka     } osd_whi_cfg0;
1499*437bfbebSnyanmisaka 
1500*437bfbebSnyanmisaka     /* 0x00003124 reg3145 */
1501*437bfbebSnyanmisaka     struct {
1502*437bfbebSnyanmisaka         RK_U32 osd_csc_ur    : 9;
1503*437bfbebSnyanmisaka         RK_U32 osd_csc_ug    : 9;
1504*437bfbebSnyanmisaka         RK_U32 osd_csc_ub    : 9;
1505*437bfbebSnyanmisaka         RK_U32 reserved      : 5;
1506*437bfbebSnyanmisaka     } osd_whi_cfg1;
1507*437bfbebSnyanmisaka 
1508*437bfbebSnyanmisaka     /* 0x00003128 reg3146 */
1509*437bfbebSnyanmisaka     struct {
1510*437bfbebSnyanmisaka         RK_U32 osd_csc_vr    : 9;
1511*437bfbebSnyanmisaka         RK_U32 osd_csc_vg    : 9;
1512*437bfbebSnyanmisaka         RK_U32 osd_csc_vb    : 9;
1513*437bfbebSnyanmisaka         RK_U32 reserved      : 5;
1514*437bfbebSnyanmisaka     } osd_whi_cfg2;
1515*437bfbebSnyanmisaka 
1516*437bfbebSnyanmisaka     /* 0x0000312c reg3147 */
1517*437bfbebSnyanmisaka     struct {
1518*437bfbebSnyanmisaka         RK_U32 osd_csc_ofst_y    : 8;
1519*437bfbebSnyanmisaka         RK_U32 osd_csc_ofst_u    : 8;
1520*437bfbebSnyanmisaka         RK_U32 osd_csc_ofst_v    : 8;
1521*437bfbebSnyanmisaka         RK_U32 reserved          : 8;
1522*437bfbebSnyanmisaka     } osd_whi_cfg3;
1523*437bfbebSnyanmisaka } Vepu511Osd;
1524*437bfbebSnyanmisaka 
1525*437bfbebSnyanmisaka /* class: osd */
1526*437bfbebSnyanmisaka /*0x00003000 reg3072 - 0x00003264 reg3225 */
1527*437bfbebSnyanmisaka typedef struct Vepu511OsdRegs_t {
1528*437bfbebSnyanmisaka     /*0x00003000 reg3072 - 0x0000312c reg3147 */
1529*437bfbebSnyanmisaka     Vepu511Osd osd_comb_cfg;
1530*437bfbebSnyanmisaka 
1531*437bfbebSnyanmisaka     /* 0x00003130 reg3148 - 0x00003134 reg3149 */
1532*437bfbebSnyanmisaka     RK_U32 reserve[2];
1533*437bfbebSnyanmisaka 
1534*437bfbebSnyanmisaka     /*0x00003138 reg3150 - 0x00003264 reg3225 */
1535*437bfbebSnyanmisaka     Vepu511Osd osd_jpeg_cfg;
1536*437bfbebSnyanmisaka } Vepu511OsdRegs;
1537*437bfbebSnyanmisaka 
1538*437bfbebSnyanmisaka /* class: st */
1539*437bfbebSnyanmisaka /* 0x00004000 reg4096 - 0x0000424c reg4243*/
1540*437bfbebSnyanmisaka typedef struct Vepu511Status_t {
1541*437bfbebSnyanmisaka     /* 0x00004000 reg4096 */
1542*437bfbebSnyanmisaka     RK_U32 bs_lgth_l32;
1543*437bfbebSnyanmisaka 
1544*437bfbebSnyanmisaka     /* 0x00004004 reg4097 */
1545*437bfbebSnyanmisaka     struct {
1546*437bfbebSnyanmisaka         RK_U32 bs_lgth_h8       : 8;
1547*437bfbebSnyanmisaka         RK_U32 st_rc_lst_dqp    : 6;
1548*437bfbebSnyanmisaka         RK_U32 reserved         : 2;
1549*437bfbebSnyanmisaka         RK_U32 sse_l16          : 16;
1550*437bfbebSnyanmisaka     } st_sse_bsl;
1551*437bfbebSnyanmisaka 
1552*437bfbebSnyanmisaka     /* 0x00004008 reg4098 */
1553*437bfbebSnyanmisaka     RK_U32 sse_h32;
1554*437bfbebSnyanmisaka 
1555*437bfbebSnyanmisaka     /* 0x0000400c reg4099 */
1556*437bfbebSnyanmisaka     RK_U32 qp_sum;
1557*437bfbebSnyanmisaka 
1558*437bfbebSnyanmisaka     /* 0x00004010 reg4100 */
1559*437bfbebSnyanmisaka     struct {
1560*437bfbebSnyanmisaka         RK_U32 sao_cnum    : 16;
1561*437bfbebSnyanmisaka         RK_U32 sao_ynum    : 16;
1562*437bfbebSnyanmisaka     } st_sao;
1563*437bfbebSnyanmisaka 
1564*437bfbebSnyanmisaka     /* 0x00004014 reg4101 */
1565*437bfbebSnyanmisaka     RK_U32 rdo_head_bits;
1566*437bfbebSnyanmisaka 
1567*437bfbebSnyanmisaka     /* 0x00004018 reg4102 */
1568*437bfbebSnyanmisaka     struct {
1569*437bfbebSnyanmisaka         RK_U32 rdo_head_bits_h8    : 8;
1570*437bfbebSnyanmisaka         RK_U32 reserved            : 8;
1571*437bfbebSnyanmisaka         RK_U32 rdo_res_bits_l16    : 16;
1572*437bfbebSnyanmisaka     } st_head_res_bl;
1573*437bfbebSnyanmisaka 
1574*437bfbebSnyanmisaka     /* 0x0000401c reg4103 */
1575*437bfbebSnyanmisaka     RK_U32 rdo_res_bits_h24;
1576*437bfbebSnyanmisaka 
1577*437bfbebSnyanmisaka     /* 0x00004020 reg4104 */
1578*437bfbebSnyanmisaka     struct {
1579*437bfbebSnyanmisaka         RK_U32 st_enc             : 2;
1580*437bfbebSnyanmisaka         RK_U32 st_sclr            : 1;
1581*437bfbebSnyanmisaka         RK_U32 vepu_fbd_err       : 5;
1582*437bfbebSnyanmisaka         RK_U32 isp_src_oflw       : 1;
1583*437bfbebSnyanmisaka         RK_U32 vepu_src_oflw      : 1;
1584*437bfbebSnyanmisaka         RK_U32 vepu_sid_nmch      : 1;
1585*437bfbebSnyanmisaka         RK_U32 vepu_fcnt_nmch     : 1;
1586*437bfbebSnyanmisaka         RK_U32 reserved           : 4;
1587*437bfbebSnyanmisaka         RK_U32 dvbm_finf_wful     : 1;
1588*437bfbebSnyanmisaka         RK_U32 dvbm_linf_wful     : 1;
1589*437bfbebSnyanmisaka         RK_U32 dvbm_fsid_nmch     : 1;
1590*437bfbebSnyanmisaka         RK_U32 dvbm_fcnt_early    : 1;
1591*437bfbebSnyanmisaka         RK_U32 dvbm_fcnt_late     : 1;
1592*437bfbebSnyanmisaka         RK_U32 dvbm_isp_oflw      : 1;
1593*437bfbebSnyanmisaka         RK_U32 dvbm_vepu_oflw     : 1;
1594*437bfbebSnyanmisaka         RK_U32 isp_time_out       : 1;
1595*437bfbebSnyanmisaka         RK_U32 dvbm_vsrc_fcnt     : 8;
1596*437bfbebSnyanmisaka     } st_enc;
1597*437bfbebSnyanmisaka 
1598*437bfbebSnyanmisaka     /* 0x00004024 reg4105 */
1599*437bfbebSnyanmisaka     struct {
1600*437bfbebSnyanmisaka         RK_U32 fnum_cfg_done    : 8;
1601*437bfbebSnyanmisaka         RK_U32 fnum_cfg         : 8;
1602*437bfbebSnyanmisaka         RK_U32 fnum_int         : 8;
1603*437bfbebSnyanmisaka         RK_U32 fnum_enc_done    : 8;
1604*437bfbebSnyanmisaka     } st_lkt;
1605*437bfbebSnyanmisaka 
1606*437bfbebSnyanmisaka     /* 0x00004028 reg4106 */
1607*437bfbebSnyanmisaka     struct {
1608*437bfbebSnyanmisaka         RK_U32 reserved     : 4;
1609*437bfbebSnyanmisaka         RK_U32 node_addr    : 28;
1610*437bfbebSnyanmisaka     } st_nadr;
1611*437bfbebSnyanmisaka 
1612*437bfbebSnyanmisaka     /* 0x0000402c reg4107 */
1613*437bfbebSnyanmisaka     RK_U32 vbsbw_addr;
1614*437bfbebSnyanmisaka 
1615*437bfbebSnyanmisaka     /* 0x00004030 reg4108 */
1616*437bfbebSnyanmisaka     struct {
1617*437bfbebSnyanmisaka         RK_U32 axib_idl     : 8;
1618*437bfbebSnyanmisaka         RK_U32 axib_ovfl    : 8;
1619*437bfbebSnyanmisaka         RK_U32 axib_err     : 8;
1620*437bfbebSnyanmisaka         RK_U32 axir_err     : 8;
1621*437bfbebSnyanmisaka     } st_bus;
1622*437bfbebSnyanmisaka 
1623*437bfbebSnyanmisaka     /* 0x00004034 reg4109 */
1624*437bfbebSnyanmisaka     struct {
1625*437bfbebSnyanmisaka         RK_U32 sli_num_video     : 8;
1626*437bfbebSnyanmisaka         RK_U32 sli_num_jpeg      : 8;
1627*437bfbebSnyanmisaka         RK_U32 bpkt_num_video    : 7;
1628*437bfbebSnyanmisaka         RK_U32 bpkt_lst_video    : 1;
1629*437bfbebSnyanmisaka         RK_U32 bpkt_num_jpeg     : 7;
1630*437bfbebSnyanmisaka         RK_U32 bpkt_lst_jpeg     : 1;
1631*437bfbebSnyanmisaka     } st_snum;
1632*437bfbebSnyanmisaka 
1633*437bfbebSnyanmisaka     /* 0x00004038 reg4110 */
1634*437bfbebSnyanmisaka     struct {
1635*437bfbebSnyanmisaka         RK_U32 sli_len    : 30;
1636*437bfbebSnyanmisaka         RK_U32 sli_lst    : 1;
1637*437bfbebSnyanmisaka         RK_U32 sli_sid    : 1;
1638*437bfbebSnyanmisaka     } st_slen;
1639*437bfbebSnyanmisaka 
1640*437bfbebSnyanmisaka     /* 0x0000403c reg4111 */
1641*437bfbebSnyanmisaka     struct {
1642*437bfbebSnyanmisaka         RK_U32 task_id_proc    : 12;
1643*437bfbebSnyanmisaka         RK_U32 task_id_done    : 12;
1644*437bfbebSnyanmisaka         RK_U32 task_done       : 1;
1645*437bfbebSnyanmisaka         RK_U32 task_lkt_err    : 3;
1646*437bfbebSnyanmisaka         RK_U32 reserved        : 4;
1647*437bfbebSnyanmisaka     } st_link_task;
1648*437bfbebSnyanmisaka 
1649*437bfbebSnyanmisaka     /* 0x00004040 reg4112 */
1650*437bfbebSnyanmisaka     struct {
1651*437bfbebSnyanmisaka         RK_U32 eslf_nptr     : 10;
1652*437bfbebSnyanmisaka         RK_U32 eslf_empty    : 1;
1653*437bfbebSnyanmisaka         RK_U32 eslf_full     : 1;
1654*437bfbebSnyanmisaka         RK_U32 eslf_sid      : 1;
1655*437bfbebSnyanmisaka         RK_U32 reserved      : 19;
1656*437bfbebSnyanmisaka     } st_eslf_nptr;
1657*437bfbebSnyanmisaka 
1658*437bfbebSnyanmisaka     /* 0x00004044 reg4113 */
1659*437bfbebSnyanmisaka     struct {
1660*437bfbebSnyanmisaka         RK_U32 vsrd_posy         : 10;
1661*437bfbebSnyanmisaka         RK_U32 reserved          : 5;
1662*437bfbebSnyanmisaka         RK_U32 vsrd_fend         : 1;
1663*437bfbebSnyanmisaka         RK_U32 vsrd_posy_jpeg    : 10;
1664*437bfbebSnyanmisaka         RK_U32 reserved1         : 5;
1665*437bfbebSnyanmisaka         RK_U32 vsrd_fend_jpeg    : 1;
1666*437bfbebSnyanmisaka     } st_vlsd_rlvl;
1667*437bfbebSnyanmisaka 
1668*437bfbebSnyanmisaka     /* 0x00004048 reg4114 */
1669*437bfbebSnyanmisaka     struct {
1670*437bfbebSnyanmisaka         RK_U32 eslf_nptr_jpeg     : 10;
1671*437bfbebSnyanmisaka         RK_U32 eslf_empty_jpeg    : 1;
1672*437bfbebSnyanmisaka         RK_U32 eslf_full_jpeg     : 1;
1673*437bfbebSnyanmisaka         RK_U32 eslf_sid_jpeg      : 1;
1674*437bfbebSnyanmisaka         RK_U32 reserved           : 19;
1675*437bfbebSnyanmisaka     } st_eslf_nptr_jpeg;
1676*437bfbebSnyanmisaka 
1677*437bfbebSnyanmisaka     /* 0x404c - 0x405c */
1678*437bfbebSnyanmisaka     RK_U32 reserved4115_4119[5];
1679*437bfbebSnyanmisaka 
1680*437bfbebSnyanmisaka     /* 0x00004060 reg4120 */
1681*437bfbebSnyanmisaka     struct {
1682*437bfbebSnyanmisaka         RK_U32 sli_len_jpeg    : 30;
1683*437bfbebSnyanmisaka         RK_U32 sli_lst_jpeg    : 1;
1684*437bfbebSnyanmisaka         RK_U32 sli_sid_jpeg    : 1;
1685*437bfbebSnyanmisaka     } st_slen_jpeg;
1686*437bfbebSnyanmisaka 
1687*437bfbebSnyanmisaka     /* 0x00004064 reg4121 */
1688*437bfbebSnyanmisaka     RK_U32 jpeg_head_bits_l32;
1689*437bfbebSnyanmisaka 
1690*437bfbebSnyanmisaka     /* 0x00004068 reg4122 */
1691*437bfbebSnyanmisaka     struct {
1692*437bfbebSnyanmisaka         RK_U32 jpeg_head_bits_h8    : 1;
1693*437bfbebSnyanmisaka         RK_U32 reserved             : 31;
1694*437bfbebSnyanmisaka     } st_bsl_h8_jpeg;
1695*437bfbebSnyanmisaka 
1696*437bfbebSnyanmisaka     /* 0x0000406c reg4123 */
1697*437bfbebSnyanmisaka     RK_U32 jbsbw_addr;
1698*437bfbebSnyanmisaka 
1699*437bfbebSnyanmisaka     /* 0x00004070 reg4124 */
1700*437bfbebSnyanmisaka     RK_U32 luma_pix_sum_od;
1701*437bfbebSnyanmisaka 
1702*437bfbebSnyanmisaka     /* 0x4074 - 0x407c */
1703*437bfbebSnyanmisaka     RK_U32 reserved4125_4127[3];
1704*437bfbebSnyanmisaka 
1705*437bfbebSnyanmisaka     /* 0x00004080 reg4128 */
1706*437bfbebSnyanmisaka     struct {
1707*437bfbebSnyanmisaka         RK_U32 pnum_p64    : 17;
1708*437bfbebSnyanmisaka         RK_U32 reserved    : 15;
1709*437bfbebSnyanmisaka     } st_pnum_p64;
1710*437bfbebSnyanmisaka 
1711*437bfbebSnyanmisaka     /* 0x00004084 reg4129 */
1712*437bfbebSnyanmisaka     struct {
1713*437bfbebSnyanmisaka         RK_U32 pnum_p32    : 19;
1714*437bfbebSnyanmisaka         RK_U32 reserved    : 13;
1715*437bfbebSnyanmisaka     } st_pnum_p32;
1716*437bfbebSnyanmisaka 
1717*437bfbebSnyanmisaka     /* 0x00004088 reg4130 */
1718*437bfbebSnyanmisaka     struct {
1719*437bfbebSnyanmisaka         RK_U32 pnum_p16    : 21;
1720*437bfbebSnyanmisaka         RK_U32 reserved    : 11;
1721*437bfbebSnyanmisaka     } st_pnum_p16;
1722*437bfbebSnyanmisaka 
1723*437bfbebSnyanmisaka     /* 0x0000408c reg4131 */
1724*437bfbebSnyanmisaka     struct {
1725*437bfbebSnyanmisaka         RK_U32 pnum_p8     : 23;
1726*437bfbebSnyanmisaka         RK_U32 reserved    : 9;
1727*437bfbebSnyanmisaka     } st_pnum_p8;
1728*437bfbebSnyanmisaka 
1729*437bfbebSnyanmisaka     /* 0x00004090 reg4132 */
1730*437bfbebSnyanmisaka     struct {
1731*437bfbebSnyanmisaka         RK_U32 pnum_i32    : 19;
1732*437bfbebSnyanmisaka         RK_U32 reserved    : 13;
1733*437bfbebSnyanmisaka     } st_pnum_i32;
1734*437bfbebSnyanmisaka 
1735*437bfbebSnyanmisaka     /* 0x00004094 reg4133 */
1736*437bfbebSnyanmisaka     struct {
1737*437bfbebSnyanmisaka         RK_U32 pnum_i16    : 21;
1738*437bfbebSnyanmisaka         RK_U32 reserved    : 11;
1739*437bfbebSnyanmisaka     } st_pnum_i16;
1740*437bfbebSnyanmisaka 
1741*437bfbebSnyanmisaka     /* 0x00004098 reg4134 */
1742*437bfbebSnyanmisaka     struct {
1743*437bfbebSnyanmisaka         RK_U32 pnum_i8     : 23;
1744*437bfbebSnyanmisaka         RK_U32 reserved    : 9;
1745*437bfbebSnyanmisaka     } st_pnum_i8;
1746*437bfbebSnyanmisaka 
1747*437bfbebSnyanmisaka     /* 0x0000409c reg4135 */
1748*437bfbebSnyanmisaka     struct {
1749*437bfbebSnyanmisaka         RK_U32 pnum_i4     : 23;
1750*437bfbebSnyanmisaka         RK_U32 reserved    : 9;
1751*437bfbebSnyanmisaka     } st_pnum_i4;
1752*437bfbebSnyanmisaka 
1753*437bfbebSnyanmisaka     /* 0x000040a0 reg4136 */
1754*437bfbebSnyanmisaka     struct {
1755*437bfbebSnyanmisaka         RK_U32 num_b16     : 23;
1756*437bfbebSnyanmisaka         RK_U32 reserved    : 9;
1757*437bfbebSnyanmisaka     } st_bnum_b16;
1758*437bfbebSnyanmisaka 
1759*437bfbebSnyanmisaka     /* 0x40a4 */
1760*437bfbebSnyanmisaka     RK_U32 reserved_4137;
1761*437bfbebSnyanmisaka 
1762*437bfbebSnyanmisaka     /* 0x000040a8 reg4138 */
1763*437bfbebSnyanmisaka     RK_U32 madi16_sum;
1764*437bfbebSnyanmisaka 
1765*437bfbebSnyanmisaka     /* 0x000040ac reg4139 */
1766*437bfbebSnyanmisaka     RK_U32 madi32_sum;
1767*437bfbebSnyanmisaka 
1768*437bfbebSnyanmisaka     /* 0x000040b0 reg4140 */
1769*437bfbebSnyanmisaka     RK_U32 madp16_sum;
1770*437bfbebSnyanmisaka 
1771*437bfbebSnyanmisaka     /* 0x000040b4 reg4141 */
1772*437bfbebSnyanmisaka     struct {
1773*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt0    : 10;
1774*437bfbebSnyanmisaka         RK_U32 reserved          : 6;
1775*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt1    : 10;
1776*437bfbebSnyanmisaka         RK_U32 reserved1         : 6;
1777*437bfbebSnyanmisaka     } st_smear_cnt0;
1778*437bfbebSnyanmisaka 
1779*437bfbebSnyanmisaka     /* 0x000040b8 reg4142 */
1780*437bfbebSnyanmisaka     struct {
1781*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt2    : 10;
1782*437bfbebSnyanmisaka         RK_U32 reserved          : 6;
1783*437bfbebSnyanmisaka         RK_U32 rdo_smear_cnt3    : 10;
1784*437bfbebSnyanmisaka         RK_U32 reserved1         : 6;
1785*437bfbebSnyanmisaka     } st_smear_cnt1;
1786*437bfbebSnyanmisaka 
1787*437bfbebSnyanmisaka     /* 0x40bc */
1788*437bfbebSnyanmisaka     RK_U32 reserved_4143;
1789*437bfbebSnyanmisaka 
1790*437bfbebSnyanmisaka     /* 0x000040c0 reg4144 */
1791*437bfbebSnyanmisaka     struct {
1792*437bfbebSnyanmisaka         RK_U32 madi_th_lt_cnt0    : 16;
1793*437bfbebSnyanmisaka         RK_U32 madi_th_lt_cnt1    : 16;
1794*437bfbebSnyanmisaka     } st_madi_lt_num0;
1795*437bfbebSnyanmisaka 
1796*437bfbebSnyanmisaka     /* 0x000040c4 reg4145 */
1797*437bfbebSnyanmisaka     struct {
1798*437bfbebSnyanmisaka         RK_U32 madi_th_lt_cnt2    : 16;
1799*437bfbebSnyanmisaka         RK_U32 madi_th_lt_cnt3    : 16;
1800*437bfbebSnyanmisaka     } st_madi_lt_num1;
1801*437bfbebSnyanmisaka 
1802*437bfbebSnyanmisaka     /* 0x000040c8 reg4146 */
1803*437bfbebSnyanmisaka     struct {
1804*437bfbebSnyanmisaka         RK_U32 madi_th_rt_cnt0    : 16;
1805*437bfbebSnyanmisaka         RK_U32 madi_th_rt_cnt1    : 16;
1806*437bfbebSnyanmisaka     } st_madi_rt_num0;
1807*437bfbebSnyanmisaka 
1808*437bfbebSnyanmisaka     /* 0x000040cc reg4147 */
1809*437bfbebSnyanmisaka     struct {
1810*437bfbebSnyanmisaka         RK_U32 madi_th_rt_cnt2    : 16;
1811*437bfbebSnyanmisaka         RK_U32 madi_th_rt_cnt3    : 16;
1812*437bfbebSnyanmisaka     } st_madi_rt_num1;
1813*437bfbebSnyanmisaka 
1814*437bfbebSnyanmisaka     /* 0x000040d0 reg4148 */
1815*437bfbebSnyanmisaka     struct {
1816*437bfbebSnyanmisaka         RK_U32 madi_th_lb_cnt0    : 16;
1817*437bfbebSnyanmisaka         RK_U32 madi_th_lb_cnt1    : 16;
1818*437bfbebSnyanmisaka     } st_madi_lb_num0;
1819*437bfbebSnyanmisaka 
1820*437bfbebSnyanmisaka     /* 0x000040d4 reg4149 */
1821*437bfbebSnyanmisaka     struct {
1822*437bfbebSnyanmisaka         RK_U32 madi_th_lb_cnt2    : 16;
1823*437bfbebSnyanmisaka         RK_U32 madi_th_lb_cnt3    : 16;
1824*437bfbebSnyanmisaka     } st_madi_lb_num1;
1825*437bfbebSnyanmisaka 
1826*437bfbebSnyanmisaka     /* 0x000040d8 reg4150 */
1827*437bfbebSnyanmisaka     struct {
1828*437bfbebSnyanmisaka         RK_U32 madi_th_rb_cnt0    : 16;
1829*437bfbebSnyanmisaka         RK_U32 madi_th_rb_cnt1    : 16;
1830*437bfbebSnyanmisaka     } st_madi_rb_num0;
1831*437bfbebSnyanmisaka 
1832*437bfbebSnyanmisaka     /* 0x000040dc reg4151 */
1833*437bfbebSnyanmisaka     struct {
1834*437bfbebSnyanmisaka         RK_U32 madi_th_rb_cnt2    : 16;
1835*437bfbebSnyanmisaka         RK_U32 madi_th_rb_cnt3    : 16;
1836*437bfbebSnyanmisaka     } st_madi_rb_num1;
1837*437bfbebSnyanmisaka 
1838*437bfbebSnyanmisaka     /* 0x000040e0 reg4152 */
1839*437bfbebSnyanmisaka     struct {
1840*437bfbebSnyanmisaka         RK_U32 madp_th_lt_cnt0    : 16;
1841*437bfbebSnyanmisaka         RK_U32 madp_th_lt_cnt1    : 16;
1842*437bfbebSnyanmisaka     } st_madp_lt_num0;
1843*437bfbebSnyanmisaka 
1844*437bfbebSnyanmisaka     /* 0x000040e4 reg4153 */
1845*437bfbebSnyanmisaka     struct {
1846*437bfbebSnyanmisaka         RK_U32 madp_th_lt_cnt2    : 16;
1847*437bfbebSnyanmisaka         RK_U32 madp_th_lt_cnt3    : 16;
1848*437bfbebSnyanmisaka     } st_madp_lt_num1;
1849*437bfbebSnyanmisaka 
1850*437bfbebSnyanmisaka     /* 0x000040e8 reg4154 */
1851*437bfbebSnyanmisaka     struct {
1852*437bfbebSnyanmisaka         RK_U32 madp_th_rt_cnt0    : 16;
1853*437bfbebSnyanmisaka         RK_U32 madp_th_rt_cnt1    : 16;
1854*437bfbebSnyanmisaka     } st_madp_rt_num0;
1855*437bfbebSnyanmisaka 
1856*437bfbebSnyanmisaka     /* 0x000040ec reg4155 */
1857*437bfbebSnyanmisaka     struct {
1858*437bfbebSnyanmisaka         RK_U32 madp_th_rt_cnt2    : 16;
1859*437bfbebSnyanmisaka         RK_U32 madp_th_rt_cnt3    : 16;
1860*437bfbebSnyanmisaka     } st_madp_rt_num1;
1861*437bfbebSnyanmisaka 
1862*437bfbebSnyanmisaka     /* 0x000040f0 reg4156 */
1863*437bfbebSnyanmisaka     struct {
1864*437bfbebSnyanmisaka         RK_U32 madp_th_lb_cnt0    : 16;
1865*437bfbebSnyanmisaka         RK_U32 madp_th_lb_cnt1    : 16;
1866*437bfbebSnyanmisaka     } st_madp_lb_num0;
1867*437bfbebSnyanmisaka 
1868*437bfbebSnyanmisaka     /* 0x000040f4 reg4157 */
1869*437bfbebSnyanmisaka     struct {
1870*437bfbebSnyanmisaka         RK_U32 madp_th_lb_cnt2    : 16;
1871*437bfbebSnyanmisaka         RK_U32 madp_th_lb_cnt3    : 16;
1872*437bfbebSnyanmisaka     } st_madp_lb_num1;
1873*437bfbebSnyanmisaka 
1874*437bfbebSnyanmisaka     /* 0x000040f8 reg4158 */
1875*437bfbebSnyanmisaka     struct {
1876*437bfbebSnyanmisaka         RK_U32 madp_th_rb_cnt0    : 16;
1877*437bfbebSnyanmisaka         RK_U32 madp_th_rb_cnt1    : 16;
1878*437bfbebSnyanmisaka     } st_madp_rb_num0;
1879*437bfbebSnyanmisaka 
1880*437bfbebSnyanmisaka     /* 0x000040fc reg4159 */
1881*437bfbebSnyanmisaka     struct {
1882*437bfbebSnyanmisaka         RK_U32 madp_th_rb_cnt2    : 16;
1883*437bfbebSnyanmisaka         RK_U32 madp_th_rb_cnt3    : 16;
1884*437bfbebSnyanmisaka     } st_madp_rb_num1;
1885*437bfbebSnyanmisaka 
1886*437bfbebSnyanmisaka     /* 0x00004100 reg4160 */
1887*437bfbebSnyanmisaka     struct {
1888*437bfbebSnyanmisaka         RK_U32 cmv_th_lt_cnt0    : 16;
1889*437bfbebSnyanmisaka         RK_U32 cmv_th_lt_cnt1    : 16;
1890*437bfbebSnyanmisaka     } st_cmv_lt_num0;
1891*437bfbebSnyanmisaka 
1892*437bfbebSnyanmisaka     /* 0x00004104 reg4161 */
1893*437bfbebSnyanmisaka     struct {
1894*437bfbebSnyanmisaka         RK_U32 cmv_th_lt_cnt2    : 16;
1895*437bfbebSnyanmisaka         RK_U32 cmv_th_lt_cnt3    : 16;
1896*437bfbebSnyanmisaka     } st_cmv_lt_num1;
1897*437bfbebSnyanmisaka 
1898*437bfbebSnyanmisaka     /* 0x00004108 reg4162 */
1899*437bfbebSnyanmisaka     struct {
1900*437bfbebSnyanmisaka         RK_U32 cmv_th_rt_cnt0    : 16;
1901*437bfbebSnyanmisaka         RK_U32 cmv_th_rt_cnt1    : 16;
1902*437bfbebSnyanmisaka     } st_cmv_rt_num0;
1903*437bfbebSnyanmisaka 
1904*437bfbebSnyanmisaka     /* 0x0000410c reg4163 */
1905*437bfbebSnyanmisaka     struct {
1906*437bfbebSnyanmisaka         RK_U32 cmv_th_rt_cnt2    : 16;
1907*437bfbebSnyanmisaka         RK_U32 cmv_th_rt_cnt3    : 16;
1908*437bfbebSnyanmisaka     } st_cmv_rt_num1;
1909*437bfbebSnyanmisaka 
1910*437bfbebSnyanmisaka     /* 0x00004110 reg4164 */
1911*437bfbebSnyanmisaka     struct {
1912*437bfbebSnyanmisaka         RK_U32 cmv_th_lb_cnt0    : 16;
1913*437bfbebSnyanmisaka         RK_U32 cmv_th_lb_cnt1    : 16;
1914*437bfbebSnyanmisaka     } st_cmv_lb_num0;
1915*437bfbebSnyanmisaka 
1916*437bfbebSnyanmisaka     /* 0x00004114 reg4165 */
1917*437bfbebSnyanmisaka     struct {
1918*437bfbebSnyanmisaka         RK_U32 cmv_th_lb_cnt2    : 16;
1919*437bfbebSnyanmisaka         RK_U32 cmv_th_lb_cnt3    : 16;
1920*437bfbebSnyanmisaka     } st_cmv_lb_num1;
1921*437bfbebSnyanmisaka 
1922*437bfbebSnyanmisaka     /* 0x00004118 reg4166 */
1923*437bfbebSnyanmisaka     struct {
1924*437bfbebSnyanmisaka         RK_U32 cmv_th_rb_cnt0    : 16;
1925*437bfbebSnyanmisaka         RK_U32 cmv_th_rb_cnt1    : 16;
1926*437bfbebSnyanmisaka     } st_cmv_rb_num0;
1927*437bfbebSnyanmisaka 
1928*437bfbebSnyanmisaka     /* 0x0000411c reg4167 */
1929*437bfbebSnyanmisaka     struct {
1930*437bfbebSnyanmisaka         RK_U32 cmv_th_rb_cnt2    : 16;
1931*437bfbebSnyanmisaka         RK_U32 cmv_th_rb_cnt3    : 16;
1932*437bfbebSnyanmisaka     } st_cmv_rb_num1;
1933*437bfbebSnyanmisaka 
1934*437bfbebSnyanmisaka     /* 0x00004120 reg4168 */
1935*437bfbebSnyanmisaka     struct {
1936*437bfbebSnyanmisaka         RK_U32 org_y_r_max_value    : 8;
1937*437bfbebSnyanmisaka         RK_U32 org_y_r_min_value    : 8;
1938*437bfbebSnyanmisaka         RK_U32 org_u_g_max_value    : 8;
1939*437bfbebSnyanmisaka         RK_U32 org_u_g_min_value    : 8;
1940*437bfbebSnyanmisaka     } st_vsp_org_value0;
1941*437bfbebSnyanmisaka 
1942*437bfbebSnyanmisaka     /* 0x00004124 reg4169 */
1943*437bfbebSnyanmisaka     struct {
1944*437bfbebSnyanmisaka         RK_U32 org_v_b_max_value    : 8;
1945*437bfbebSnyanmisaka         RK_U32 org_v_b_min_value    : 8;
1946*437bfbebSnyanmisaka         RK_U32 reserved             : 16;
1947*437bfbebSnyanmisaka     } st_vsp_org_value1;
1948*437bfbebSnyanmisaka 
1949*437bfbebSnyanmisaka     /* 0x00004128 reg4170 */
1950*437bfbebSnyanmisaka     struct {
1951*437bfbebSnyanmisaka         RK_U32 jpeg_y_r_max_value    : 8;
1952*437bfbebSnyanmisaka         RK_U32 jpeg_y_r_min_value    : 8;
1953*437bfbebSnyanmisaka         RK_U32 jpeg_u_g_max_value    : 8;
1954*437bfbebSnyanmisaka         RK_U32 jpeg_u_g_min_value    : 8;
1955*437bfbebSnyanmisaka     } st_vsp_jpeg_value0;
1956*437bfbebSnyanmisaka 
1957*437bfbebSnyanmisaka     /* 0x0000412c reg4171 */
1958*437bfbebSnyanmisaka     struct {
1959*437bfbebSnyanmisaka         RK_U32 jpeg_v_b_max_value    : 8;
1960*437bfbebSnyanmisaka         RK_U32 jpeg_v_b_min_value    : 8;
1961*437bfbebSnyanmisaka         RK_U32 reserved              : 16;
1962*437bfbebSnyanmisaka     } st_vsp_jpeg_value1;
1963*437bfbebSnyanmisaka 
1964*437bfbebSnyanmisaka     /* 0x00004130 reg4172 */
1965*437bfbebSnyanmisaka     RK_U32 dsp_y_sum;
1966*437bfbebSnyanmisaka 
1967*437bfbebSnyanmisaka     /* 0x00004134 reg4173 */
1968*437bfbebSnyanmisaka     RK_U32 acc_zero_mv;
1969*437bfbebSnyanmisaka 
1970*437bfbebSnyanmisaka     /* 0x00004138 reg4174 */
1971*437bfbebSnyanmisaka     struct {
1972*437bfbebSnyanmisaka         RK_U32 ref1_inter8_num    : 23;
1973*437bfbebSnyanmisaka         RK_U32 reserved           : 9;
1974*437bfbebSnyanmisaka     } st_ref1_inter8;
1975*437bfbebSnyanmisaka 
1976*437bfbebSnyanmisaka     /* 0x0000413c reg4175 */
1977*437bfbebSnyanmisaka     struct {
1978*437bfbebSnyanmisaka         RK_U32 acc_block_num    : 18;
1979*437bfbebSnyanmisaka         RK_U32 reserved         : 14;
1980*437bfbebSnyanmisaka     } st_blk_avb_sum;
1981*437bfbebSnyanmisaka 
1982*437bfbebSnyanmisaka     /* 0x00004140 reg4176 */
1983*437bfbebSnyanmisaka     struct {
1984*437bfbebSnyanmisaka         RK_U32 num0_point_skin    : 15;
1985*437bfbebSnyanmisaka         RK_U32 acc_cmplx_num      : 17;
1986*437bfbebSnyanmisaka     } st_skin_sum0;
1987*437bfbebSnyanmisaka 
1988*437bfbebSnyanmisaka     /* 0x00004144 reg4177 */
1989*437bfbebSnyanmisaka     struct {
1990*437bfbebSnyanmisaka         RK_U32 num1_point_skin    : 15;
1991*437bfbebSnyanmisaka         RK_U32 acc_cover16_num    : 17;
1992*437bfbebSnyanmisaka     } st_skin_sum1;
1993*437bfbebSnyanmisaka 
1994*437bfbebSnyanmisaka     /* 0x00004148 reg4178 */
1995*437bfbebSnyanmisaka     struct {
1996*437bfbebSnyanmisaka         RK_U32 num2_point_skin    : 15;
1997*437bfbebSnyanmisaka         RK_U32 acc_bndry16_num    : 17;
1998*437bfbebSnyanmisaka     } st_skin_sum2;
1999*437bfbebSnyanmisaka 
2000*437bfbebSnyanmisaka     /* 0x0000414c reg4179 */
2001*437bfbebSnyanmisaka     RK_U32 num0_grdnt_point_dep0;
2002*437bfbebSnyanmisaka 
2003*437bfbebSnyanmisaka     /* 0x00004150 reg4180 */
2004*437bfbebSnyanmisaka     RK_U32 num1_grdnt_point_dep0;
2005*437bfbebSnyanmisaka 
2006*437bfbebSnyanmisaka     /* 0x00004154 reg4181 */
2007*437bfbebSnyanmisaka     RK_U32 num2_grdnt_point_dep0;
2008*437bfbebSnyanmisaka 
2009*437bfbebSnyanmisaka     /* 0x00004158 reg4182 */
2010*437bfbebSnyanmisaka     struct {
2011*437bfbebSnyanmisaka         RK_U32 ref1_inter32_num    : 19;
2012*437bfbebSnyanmisaka         RK_U32 reserved            : 13;
2013*437bfbebSnyanmisaka     } st_ref1_inter32;
2014*437bfbebSnyanmisaka 
2015*437bfbebSnyanmisaka     /* 0x0000415c reg4183 */
2016*437bfbebSnyanmisaka     struct {
2017*437bfbebSnyanmisaka         RK_U32 ref1_inter16_num    : 21;
2018*437bfbebSnyanmisaka         RK_U32 reserved            : 11;
2019*437bfbebSnyanmisaka     } st_ref1_inter16;
2020*437bfbebSnyanmisaka 
2021*437bfbebSnyanmisaka     /* 0x4160 - 0x417c */
2022*437bfbebSnyanmisaka     RK_U32 reserved4184_4191[8];
2023*437bfbebSnyanmisaka 
2024*437bfbebSnyanmisaka     /* 0x00004180 reg4192 - 0x0000424c reg4243*/
2025*437bfbebSnyanmisaka     RK_U32 st_b8_qp[52];
2026*437bfbebSnyanmisaka } Vepu511Status;
2027*437bfbebSnyanmisaka 
2028*437bfbebSnyanmisaka /* class: dbg/st/axipn */
2029*437bfbebSnyanmisaka /* 0x00005000 reg5120 - 0x0000523c reg5263 */
2030*437bfbebSnyanmisaka typedef struct Vepu511Dbg_t {
2031*437bfbebSnyanmisaka     /* 0x00005000 reg5120 */
2032*437bfbebSnyanmisaka     struct {
2033*437bfbebSnyanmisaka         RK_U32 vsp0_pos_x    : 16;
2034*437bfbebSnyanmisaka         RK_U32 vsp0_pos_y    : 16;
2035*437bfbebSnyanmisaka     } st_ppl_pos_vsp0;
2036*437bfbebSnyanmisaka 
2037*437bfbebSnyanmisaka     /* 0x00005004 reg5121 */
2038*437bfbebSnyanmisaka     struct {
2039*437bfbebSnyanmisaka         RK_U32 vsp1_pos_x    : 16;
2040*437bfbebSnyanmisaka         RK_U32 vsp1_pos_y    : 16;
2041*437bfbebSnyanmisaka     } st_ppl_pos_vsp1;
2042*437bfbebSnyanmisaka 
2043*437bfbebSnyanmisaka     /* 0x00005008 reg5122 */
2044*437bfbebSnyanmisaka     struct {
2045*437bfbebSnyanmisaka         RK_U32 vsp2_pos_x    : 16;
2046*437bfbebSnyanmisaka         RK_U32 vsp2_pos_y    : 16;
2047*437bfbebSnyanmisaka     } st_ppl_pos_vsp2;
2048*437bfbebSnyanmisaka 
2049*437bfbebSnyanmisaka     /* 0x0000500c reg5123 */
2050*437bfbebSnyanmisaka     struct {
2051*437bfbebSnyanmisaka         RK_U32 cme_pos_x    : 16;
2052*437bfbebSnyanmisaka         RK_U32 cme_pos_y    : 16;
2053*437bfbebSnyanmisaka     } st_ppl_pos_cme;
2054*437bfbebSnyanmisaka 
2055*437bfbebSnyanmisaka     /* 0x00005010 reg5124 */
2056*437bfbebSnyanmisaka     struct {
2057*437bfbebSnyanmisaka         RK_U32 swin_cmd_x    : 16;
2058*437bfbebSnyanmisaka         RK_U32 swin_cmd_y    : 16;
2059*437bfbebSnyanmisaka     } st_ppl_cmd_swin;
2060*437bfbebSnyanmisaka 
2061*437bfbebSnyanmisaka     /* 0x00005014 reg5125 */
2062*437bfbebSnyanmisaka     struct {
2063*437bfbebSnyanmisaka         RK_U32 swin_pos_x    : 16;
2064*437bfbebSnyanmisaka         RK_U32 swin_pos_y    : 16;
2065*437bfbebSnyanmisaka     } st_ppl_pos_swin;
2066*437bfbebSnyanmisaka     /* 0x00005018 reg5126 */
2067*437bfbebSnyanmisaka     struct {
2068*437bfbebSnyanmisaka         RK_U32 pren_pos_x    : 16;
2069*437bfbebSnyanmisaka         RK_U32 pren_pos_y    : 16;
2070*437bfbebSnyanmisaka     } st_ppl_pos_pren;
2071*437bfbebSnyanmisaka 
2072*437bfbebSnyanmisaka     /* 0x0000501c reg5127 */
2073*437bfbebSnyanmisaka     struct {
2074*437bfbebSnyanmisaka         RK_U32 rfme_pos_x    : 16;
2075*437bfbebSnyanmisaka         RK_U32 rfme_pos_y    : 16;
2076*437bfbebSnyanmisaka     } st_ppl_pos_rfme;
2077*437bfbebSnyanmisaka 
2078*437bfbebSnyanmisaka     /* 0x00005020 reg5128 */
2079*437bfbebSnyanmisaka     struct {
2080*437bfbebSnyanmisaka         RK_U32 rdo_pos_x    : 16;
2081*437bfbebSnyanmisaka         RK_U32 rdo_pos_y    : 16;
2082*437bfbebSnyanmisaka     } st_ppl_pos_rdo;
2083*437bfbebSnyanmisaka 
2084*437bfbebSnyanmisaka     /* 0x00005024 reg5129 */
2085*437bfbebSnyanmisaka     struct {
2086*437bfbebSnyanmisaka         RK_U32 lpf_pos_x    : 16;
2087*437bfbebSnyanmisaka         RK_U32 lpf_pos_y    : 16;
2088*437bfbebSnyanmisaka     } st_ppl_pos_lpf;
2089*437bfbebSnyanmisaka 
2090*437bfbebSnyanmisaka     /* 0x00005028 reg5130 */
2091*437bfbebSnyanmisaka     struct {
2092*437bfbebSnyanmisaka         RK_U32 etpy_pos_x    : 16;
2093*437bfbebSnyanmisaka         RK_U32 etpy_pos_y    : 16;
2094*437bfbebSnyanmisaka     } st_ppl_pos_etpy;
2095*437bfbebSnyanmisaka 
2096*437bfbebSnyanmisaka     /* 0x0000502c reg5131 */
2097*437bfbebSnyanmisaka     struct {
2098*437bfbebSnyanmisaka         RK_U32 jsp0_pos_x    : 16;
2099*437bfbebSnyanmisaka         RK_U32 jsp0_pos_y    : 16;
2100*437bfbebSnyanmisaka     } st_ppl_pos_jsp0;
2101*437bfbebSnyanmisaka 
2102*437bfbebSnyanmisaka     /* 0x00005030 reg5132 */
2103*437bfbebSnyanmisaka     struct {
2104*437bfbebSnyanmisaka         RK_U32 jsp1_pos_x    : 16;
2105*437bfbebSnyanmisaka         RK_U32 jsp1_pos_y    : 16;
2106*437bfbebSnyanmisaka     } st_ppl_pos_jsp1;
2107*437bfbebSnyanmisaka 
2108*437bfbebSnyanmisaka     /* 0x00005034 reg5133 */
2109*437bfbebSnyanmisaka     struct {
2110*437bfbebSnyanmisaka         RK_U32 jsp2_pos_x    : 16;
2111*437bfbebSnyanmisaka         RK_U32 jsp2_pos_y    : 16;
2112*437bfbebSnyanmisaka     } st_ppl_pos_jsp2;
2113*437bfbebSnyanmisaka 
2114*437bfbebSnyanmisaka     /* 0x00005038 reg5134 */
2115*437bfbebSnyanmisaka     struct {
2116*437bfbebSnyanmisaka         RK_U32 jpeg_pos_x    : 16;
2117*437bfbebSnyanmisaka         RK_U32 jpeg_pos_y    : 16;
2118*437bfbebSnyanmisaka     } st_ppl_pos_jpeg;
2119*437bfbebSnyanmisaka 
2120*437bfbebSnyanmisaka     /* 0x0000503c reg5135 */
2121*437bfbebSnyanmisaka     struct {
2122*437bfbebSnyanmisaka         RK_U32 vhdr_pos_y    : 16;
2123*437bfbebSnyanmisaka         RK_U32 jhdr_pos_y    : 16;
2124*437bfbebSnyanmisaka     } dbg_pos_pp_hdr;
2125*437bfbebSnyanmisaka 
2126*437bfbebSnyanmisaka     /* 0x00005040 reg5136 */
2127*437bfbebSnyanmisaka     struct {
2128*437bfbebSnyanmisaka         RK_U32 reserved         : 7;
2129*437bfbebSnyanmisaka         RK_U32 vsp0_cmd_flst    : 1;
2130*437bfbebSnyanmisaka         RK_U32 reserved1        : 24;
2131*437bfbebSnyanmisaka     } dbg_ctrl_vsp0;
2132*437bfbebSnyanmisaka 
2133*437bfbebSnyanmisaka     /* 0x00005044 reg5137 - 0x00005048 reg5138*/
2134*437bfbebSnyanmisaka     RK_U32 reserved[2];
2135*437bfbebSnyanmisaka 
2136*437bfbebSnyanmisaka     /* 0x0000504c reg5139 */
2137*437bfbebSnyanmisaka     struct {
2138*437bfbebSnyanmisaka         RK_U32 cme_madp_vld       : 1;
2139*437bfbebSnyanmisaka         RK_U32 cme_madp_rdy0      : 1;
2140*437bfbebSnyanmisaka         RK_U32 cme_madp_rdy1      : 1;
2141*437bfbebSnyanmisaka         RK_U32 reserved           : 1;
2142*437bfbebSnyanmisaka         RK_U32 cme_mv16_vld       : 1;
2143*437bfbebSnyanmisaka         RK_U32 cme_mv16_rdy       : 1;
2144*437bfbebSnyanmisaka         RK_U32 cme_st_vld         : 1;
2145*437bfbebSnyanmisaka         RK_U32 cme_st_rdy         : 1;
2146*437bfbebSnyanmisaka         RK_U32 cme_stat_vld       : 1;
2147*437bfbebSnyanmisaka         RK_U32 cme_stat_rdy       : 1;
2148*437bfbebSnyanmisaka         RK_U32 cme_diff_vld       : 1;
2149*437bfbebSnyanmisaka         RK_U32 cme_diff_rdy       : 1;
2150*437bfbebSnyanmisaka         RK_U32 cme_cmmv_vld       : 1;
2151*437bfbebSnyanmisaka         RK_U32 cme_cmmv_rdy       : 1;
2152*437bfbebSnyanmisaka         RK_U32 cme_smvp_vld       : 1;
2153*437bfbebSnyanmisaka         RK_U32 cme_smvp_rdy       : 1;
2154*437bfbebSnyanmisaka         RK_U32 rdo_tmvp_rvld      : 1;
2155*437bfbebSnyanmisaka         RK_U32 rdo_tmvp_rrdy      : 1;
2156*437bfbebSnyanmisaka         RK_U32 rdo_tmvp_wvld      : 1;
2157*437bfbebSnyanmisaka         RK_U32 rdo_tmvp_wrdy      : 1;
2158*437bfbebSnyanmisaka         RK_U32 rdo_lbf_wvld       : 1;
2159*437bfbebSnyanmisaka         RK_U32 rdo_lbf_wrdy       : 1;
2160*437bfbebSnyanmisaka         RK_U32 rdo_lbf_rvld       : 1;
2161*437bfbebSnyanmisaka         RK_U32 rdo_lbf_rrdy       : 1;
2162*437bfbebSnyanmisaka         RK_U32 rdo_rfmv_rvld      : 1;
2163*437bfbebSnyanmisaka         RK_U32 rdo_rfmv_rrdy      : 1;
2164*437bfbebSnyanmisaka         RK_U32 rdo_hevc_qp_vld    : 1;
2165*437bfbebSnyanmisaka         RK_U32 rdo_hevc_qp_rdy    : 1;
2166*437bfbebSnyanmisaka         RK_U32 reserved1          : 4;
2167*437bfbebSnyanmisaka     } dbg_hs_ppl;
2168*437bfbebSnyanmisaka 
2169*437bfbebSnyanmisaka     /* 0x00005050 reg5140 */
2170*437bfbebSnyanmisaka     struct {
2171*437bfbebSnyanmisaka         RK_U32 swin_org_err      : 1;
2172*437bfbebSnyanmisaka         RK_U32 swin_ref_err      : 1;
2173*437bfbebSnyanmisaka         RK_U32 reserved          : 10;
2174*437bfbebSnyanmisaka         RK_U32 swin_cmd_vld      : 1;
2175*437bfbebSnyanmisaka         RK_U32 swin_cmd_rdy      : 1;
2176*437bfbebSnyanmisaka         RK_U32 reserved1         : 2;
2177*437bfbebSnyanmisaka         RK_U32 swin_buff_ptr     : 2;
2178*437bfbebSnyanmisaka         RK_U32 swin_buff_num0    : 2;
2179*437bfbebSnyanmisaka         RK_U32 swin_buff_num1    : 2;
2180*437bfbebSnyanmisaka         RK_U32 swin_buff_num2    : 2;
2181*437bfbebSnyanmisaka         RK_U32 reserved2         : 4;
2182*437bfbebSnyanmisaka         RK_U32 swin_wrk          : 1;
2183*437bfbebSnyanmisaka         RK_U32 swin_tout         : 1;
2184*437bfbebSnyanmisaka         RK_U32 reserved3         : 2;
2185*437bfbebSnyanmisaka     } dbg_ctrl_swin;
2186*437bfbebSnyanmisaka 
2187*437bfbebSnyanmisaka     /* 0x00005054 reg5141 */
2188*437bfbebSnyanmisaka     struct {
2189*437bfbebSnyanmisaka         RK_U32 pnra_org_err     : 1;
2190*437bfbebSnyanmisaka         RK_U32 pnra_qp_err      : 1;
2191*437bfbebSnyanmisaka         RK_U32 pnra_rfme_err    : 1;
2192*437bfbebSnyanmisaka         RK_U32 reserved         : 9;
2193*437bfbebSnyanmisaka         RK_U32 pnra_olm_vld     : 1;
2194*437bfbebSnyanmisaka         RK_U32 pnra_olm_rdy     : 1;
2195*437bfbebSnyanmisaka         RK_U32 pnra_subj_vld    : 1;
2196*437bfbebSnyanmisaka         RK_U32 pnra_subj_rdy    : 1;
2197*437bfbebSnyanmisaka         RK_U32 reserved1        : 8;
2198*437bfbebSnyanmisaka         RK_U32 pnra_wrk_ena     : 1;
2199*437bfbebSnyanmisaka         RK_U32 reserved2        : 3;
2200*437bfbebSnyanmisaka         RK_U32 pnra_wrk         : 1;
2201*437bfbebSnyanmisaka         RK_U32 pnra_tout        : 1;
2202*437bfbebSnyanmisaka         RK_U32 reserved3        : 2;
2203*437bfbebSnyanmisaka     } dbg_ctrl_pren;
2204*437bfbebSnyanmisaka 
2205*437bfbebSnyanmisaka     /* 0x00005058 reg5142 */
2206*437bfbebSnyanmisaka     struct {
2207*437bfbebSnyanmisaka         RK_U32 rfme_org_err     : 1;
2208*437bfbebSnyanmisaka         RK_U32 rfme_ref_err     : 1;
2209*437bfbebSnyanmisaka         RK_U32 rfme_cmmv_err    : 1;
2210*437bfbebSnyanmisaka         RK_U32 rfme_rfmv_err    : 1;
2211*437bfbebSnyanmisaka         RK_U32 rfme_tmvp_err    : 1;
2212*437bfbebSnyanmisaka         RK_U32 rfme_qp_err      : 1;
2213*437bfbebSnyanmisaka         RK_U32 rfme_pnra_err    : 1;
2214*437bfbebSnyanmisaka         RK_U32 reserved         : 5;
2215*437bfbebSnyanmisaka         RK_U32 rfme_tmvp_vld    : 1;
2216*437bfbebSnyanmisaka         RK_U32 rfme_tmvp_rdy    : 1;
2217*437bfbebSnyanmisaka         RK_U32 rfme_smvp_vld    : 1;
2218*437bfbebSnyanmisaka         RK_U32 rfme_smvp_rdy    : 1;
2219*437bfbebSnyanmisaka         RK_U32 rfme_cmmv_vld    : 1;
2220*437bfbebSnyanmisaka         RK_U32 rfme_cmmv_rdy    : 1;
2221*437bfbebSnyanmisaka         RK_U32 rfme_rfmv_vld    : 1;
2222*437bfbebSnyanmisaka         RK_U32 rfme_rfmv_rdy    : 1;
2223*437bfbebSnyanmisaka         RK_U32 reserved1        : 8;
2224*437bfbebSnyanmisaka         RK_U32 rfme_wrk         : 1;
2225*437bfbebSnyanmisaka         RK_U32 rfme_tout        : 1;
2226*437bfbebSnyanmisaka         RK_U32 reserved2        : 2;
2227*437bfbebSnyanmisaka     } dbg_ctrl_rfme;
2228*437bfbebSnyanmisaka 
2229*437bfbebSnyanmisaka     /* 0x0000505c reg5143 */
2230*437bfbebSnyanmisaka     struct {
2231*437bfbebSnyanmisaka         RK_U32 rdo_org_err         : 1;
2232*437bfbebSnyanmisaka         RK_U32 rdo_ref_err         : 1;
2233*437bfbebSnyanmisaka         RK_U32 rdo_inf_err         : 1;
2234*437bfbebSnyanmisaka         RK_U32 rdo_coef_err        : 1;
2235*437bfbebSnyanmisaka         RK_U32 rdo_lbfr_err        : 1;
2236*437bfbebSnyanmisaka         RK_U32 rdo_lbfw_err        : 1;
2237*437bfbebSnyanmisaka         RK_U32 rdo_madi_lbf_err    : 1;
2238*437bfbebSnyanmisaka         RK_U32 rdo_tmvp_wr_err     : 1;
2239*437bfbebSnyanmisaka         RK_U32 rdo_smear_err       : 1;
2240*437bfbebSnyanmisaka         RK_U32 rdo_mbqp_err        : 1;
2241*437bfbebSnyanmisaka         RK_U32 rdo_rc_err          : 1;
2242*437bfbebSnyanmisaka         RK_U32 rdo_ent_err         : 1;
2243*437bfbebSnyanmisaka         RK_U32 rdo_lpf_err         : 1;
2244*437bfbebSnyanmisaka         RK_U32 rdo_st_err          : 1;
2245*437bfbebSnyanmisaka         RK_U32 rdo_tmvp_rd_err     : 1;
2246*437bfbebSnyanmisaka         RK_U32 rdo_rfmv_err        : 1;
2247*437bfbebSnyanmisaka         RK_U32 reserved            : 12;
2248*437bfbebSnyanmisaka         RK_U32 rdo_wrk             : 1;
2249*437bfbebSnyanmisaka         RK_U32 rdo_tout            : 1;
2250*437bfbebSnyanmisaka         RK_U32 reserved1           : 2;
2251*437bfbebSnyanmisaka     } dbg_ctrl_rdo;
2252*437bfbebSnyanmisaka 
2253*437bfbebSnyanmisaka     /* 0x00005060 reg5144 */
2254*437bfbebSnyanmisaka     struct {
2255*437bfbebSnyanmisaka         RK_U32 lpf_org_err     : 1;
2256*437bfbebSnyanmisaka         RK_U32 lpf_rdo_err     : 1;
2257*437bfbebSnyanmisaka         RK_U32 reserved        : 10;
2258*437bfbebSnyanmisaka         RK_U32 lpf_rcol_vld    : 1;
2259*437bfbebSnyanmisaka         RK_U32 lpf_rcol_rdy    : 1;
2260*437bfbebSnyanmisaka         RK_U32 lpf_lbf_wvld    : 1;
2261*437bfbebSnyanmisaka         RK_U32 lpf_lbf_wrdy    : 1;
2262*437bfbebSnyanmisaka         RK_U32 lpf_lbf_rvld    : 1;
2263*437bfbebSnyanmisaka         RK_U32 lpf_lbf_rrdy    : 1;
2264*437bfbebSnyanmisaka         RK_U32 reserved1       : 6;
2265*437bfbebSnyanmisaka         RK_U32 lpf_wrk_ena     : 1;
2266*437bfbebSnyanmisaka         RK_U32 reserved2       : 3;
2267*437bfbebSnyanmisaka         RK_U32 lpf_wrk         : 1;
2268*437bfbebSnyanmisaka         RK_U32 lpf_tout        : 1;
2269*437bfbebSnyanmisaka         RK_U32 reserved3       : 2;
2270*437bfbebSnyanmisaka     } dbg_ctrl_lpf;
2271*437bfbebSnyanmisaka 
2272*437bfbebSnyanmisaka     /* 0x00005064 reg5145 */
2273*437bfbebSnyanmisaka     struct {
2274*437bfbebSnyanmisaka         RK_U32 reserved         : 12;
2275*437bfbebSnyanmisaka         RK_U32 etpy_slf_full    : 1;
2276*437bfbebSnyanmisaka         RK_U32 etpy_bsw_vld     : 1;
2277*437bfbebSnyanmisaka         RK_U32 etpy_bsw_rdy     : 1;
2278*437bfbebSnyanmisaka         RK_U32 reserved1        : 9;
2279*437bfbebSnyanmisaka         RK_U32 etpy_wrk_ena     : 1;
2280*437bfbebSnyanmisaka         RK_U32 reserved2        : 3;
2281*437bfbebSnyanmisaka         RK_U32 etpy_wrk         : 1;
2282*437bfbebSnyanmisaka         RK_U32 etpy_tout        : 1;
2283*437bfbebSnyanmisaka         RK_U32 reserved3        : 2;
2284*437bfbebSnyanmisaka     } dbg_ctrl_etpy;
2285*437bfbebSnyanmisaka 
2286*437bfbebSnyanmisaka     /* 0x00005068 reg5146 */
2287*437bfbebSnyanmisaka     struct {
2288*437bfbebSnyanmisaka         RK_U32 jhdr_src_err      : 1;
2289*437bfbebSnyanmisaka         RK_U32 jhdr_cmd_flst     : 1;
2290*437bfbebSnyanmisaka         RK_U32 reserved          : 2;
2291*437bfbebSnyanmisaka         RK_U32 jsp0_org_err      : 1;
2292*437bfbebSnyanmisaka         RK_U32 jsp0_pp2_err      : 1;
2293*437bfbebSnyanmisaka         RK_U32 jsp0_paral_err    : 1;
2294*437bfbebSnyanmisaka         RK_U32 jsp0_cmd_flst     : 1;
2295*437bfbebSnyanmisaka         RK_U32 jhdr_vld          : 1;
2296*437bfbebSnyanmisaka         RK_U32 jhdr_rdy          : 1;
2297*437bfbebSnyanmisaka         RK_U32 jsp0_cmd_vld      : 1;
2298*437bfbebSnyanmisaka         RK_U32 jsp0_cmd_rdy      : 1;
2299*437bfbebSnyanmisaka         RK_U32 reserved1         : 12;
2300*437bfbebSnyanmisaka         RK_U32 jsp0_wrk_ena      : 1;
2301*437bfbebSnyanmisaka         RK_U32 reserved2         : 3;
2302*437bfbebSnyanmisaka         RK_U32 jsp0_wrk          : 1;
2303*437bfbebSnyanmisaka         RK_U32 jsp0_tout         : 1;
2304*437bfbebSnyanmisaka         RK_U32 reserved3         : 2;
2305*437bfbebSnyanmisaka     } dbg_ctrl_jsp0;
2306*437bfbebSnyanmisaka 
2307*437bfbebSnyanmisaka     /* 0x0000506c reg5147 */
2308*437bfbebSnyanmisaka     struct {
2309*437bfbebSnyanmisaka         RK_U32 jsp2_org_err     : 1;
2310*437bfbebSnyanmisaka         RK_U32 reserved         : 11;
2311*437bfbebSnyanmisaka         RK_U32 jsp2_madi_vld    : 1;
2312*437bfbebSnyanmisaka         RK_U32 jsp2_madi_rdy    : 1;
2313*437bfbebSnyanmisaka         RK_U32 reserved1        : 10;
2314*437bfbebSnyanmisaka         RK_U32 jsp2_wrk_ena     : 1;
2315*437bfbebSnyanmisaka         RK_U32 reserved2        : 3;
2316*437bfbebSnyanmisaka         RK_U32 jsp2_wrk         : 1;
2317*437bfbebSnyanmisaka         RK_U32 jsp2_tout        : 1;
2318*437bfbebSnyanmisaka         RK_U32 reserved3        : 2;
2319*437bfbebSnyanmisaka     } dbg_ctrl_jsp2;
2320*437bfbebSnyanmisaka 
2321*437bfbebSnyanmisaka     /* 0x00005070 reg5148 */
2322*437bfbebSnyanmisaka     struct {
2323*437bfbebSnyanmisaka         RK_U32 jpeg_org_err    : 1;
2324*437bfbebSnyanmisaka         RK_U32 jpeg_st_err     : 1;
2325*437bfbebSnyanmisaka         RK_U32 reserved        : 10;
2326*437bfbebSnyanmisaka         RK_U32 jpg_slf_full    : 1;
2327*437bfbebSnyanmisaka         RK_U32 jpg_bsw_vld     : 1;
2328*437bfbebSnyanmisaka         RK_U32 jpg_bsw_rdy     : 1;
2329*437bfbebSnyanmisaka         RK_U32 reserved1       : 9;
2330*437bfbebSnyanmisaka         RK_U32 jpeg_wrk_ena    : 1;
2331*437bfbebSnyanmisaka         RK_U32 reserved2       : 3;
2332*437bfbebSnyanmisaka         RK_U32 jpeg_wrk        : 1;
2333*437bfbebSnyanmisaka         RK_U32 jpeg_tout       : 1;
2334*437bfbebSnyanmisaka         RK_U32 reserved3       : 2;
2335*437bfbebSnyanmisaka     } dbg_ctrl_jpeg;
2336*437bfbebSnyanmisaka 
2337*437bfbebSnyanmisaka     /* 0x00005074 reg5149 */
2338*437bfbebSnyanmisaka     struct {
2339*437bfbebSnyanmisaka         RK_U32 vsp1_org_err    : 1;
2340*437bfbebSnyanmisaka         RK_U32 reserved        : 7;
2341*437bfbebSnyanmisaka         RK_U32 vsp1_wrk_ena    : 1;
2342*437bfbebSnyanmisaka         RK_U32 reserved1       : 3;
2343*437bfbebSnyanmisaka         RK_U32 vsp1_wrk        : 1;
2344*437bfbebSnyanmisaka         RK_U32 vsp1_tout       : 1;
2345*437bfbebSnyanmisaka         RK_U32 reserved2       : 2;
2346*437bfbebSnyanmisaka         RK_U32 jsp1_org_err    : 1;
2347*437bfbebSnyanmisaka         RK_U32 reserved3       : 7;
2348*437bfbebSnyanmisaka         RK_U32 jsp1_wrk_ena    : 1;
2349*437bfbebSnyanmisaka         RK_U32 reserved4       : 3;
2350*437bfbebSnyanmisaka         RK_U32 jsp1_wrk        : 1;
2351*437bfbebSnyanmisaka         RK_U32 jsp1_tout       : 1;
2352*437bfbebSnyanmisaka         RK_U32 reserved5       : 2;
2353*437bfbebSnyanmisaka     } dbg_ctrl_pp1;
2354*437bfbebSnyanmisaka 
2355*437bfbebSnyanmisaka     /* 0x00005078 reg5150 */
2356*437bfbebSnyanmisaka     struct {
2357*437bfbebSnyanmisaka         RK_U32 pp2_frm_done     : 1;
2358*437bfbebSnyanmisaka         RK_U32 cime_frm_done    : 1;
2359*437bfbebSnyanmisaka         RK_U32 jpeg_frm_done    : 1;
2360*437bfbebSnyanmisaka         RK_U32 rdo_frm_done     : 1;
2361*437bfbebSnyanmisaka         RK_U32 lpf_frm_done     : 1;
2362*437bfbebSnyanmisaka         RK_U32 ent_frm_done     : 1;
2363*437bfbebSnyanmisaka         RK_U32 reserved         : 2;
2364*437bfbebSnyanmisaka         RK_U32 criw_frm_done    : 1;
2365*437bfbebSnyanmisaka         RK_U32 meiw_frm_done    : 1;
2366*437bfbebSnyanmisaka         RK_U32 smiw_frm_done    : 1;
2367*437bfbebSnyanmisaka         RK_U32 dma_frm_idle     : 1;
2368*437bfbebSnyanmisaka         RK_U32 reserved1        : 12;
2369*437bfbebSnyanmisaka         RK_U32 video_ena        : 1;
2370*437bfbebSnyanmisaka         RK_U32 jpeg_ena         : 1;
2371*437bfbebSnyanmisaka         RK_U32 vepu_pp_ena      : 1;
2372*437bfbebSnyanmisaka         RK_U32 reserved2        : 1;
2373*437bfbebSnyanmisaka         RK_U32 frm_wrk          : 1;
2374*437bfbebSnyanmisaka         RK_U32 frm_tout         : 1;
2375*437bfbebSnyanmisaka         RK_U32 reserved3        : 2;
2376*437bfbebSnyanmisaka     } dbg_tctrl;
2377*437bfbebSnyanmisaka 
2378*437bfbebSnyanmisaka     /* 0x0000507c reg5151 */
2379*437bfbebSnyanmisaka     struct {
2380*437bfbebSnyanmisaka         RK_U32 enc_frm_cur     : 3;
2381*437bfbebSnyanmisaka         RK_U32 lkt_src_paus    : 1;
2382*437bfbebSnyanmisaka         RK_U32 lkt_cfg_paus    : 1;
2383*437bfbebSnyanmisaka         RK_U32 reserved        : 27;
2384*437bfbebSnyanmisaka     } dbg_frm_task;
2385*437bfbebSnyanmisaka 
2386*437bfbebSnyanmisaka     /* 0x00005080 reg5152 */
2387*437bfbebSnyanmisaka     struct {
2388*437bfbebSnyanmisaka         RK_U32 sli_num     : 15;
2389*437bfbebSnyanmisaka         RK_U32 reserved    : 17;
2390*437bfbebSnyanmisaka     } st_sli_num;
2391*437bfbebSnyanmisaka 
2392*437bfbebSnyanmisaka     /* 0x5084 - 0x50fc */
2393*437bfbebSnyanmisaka     RK_U32 reserved5153_5183[31];
2394*437bfbebSnyanmisaka 
2395*437bfbebSnyanmisaka     /* 0x00005100 reg5184 */
2396*437bfbebSnyanmisaka     struct {
2397*437bfbebSnyanmisaka         RK_U32 empty_oafifo        : 1;
2398*437bfbebSnyanmisaka         RK_U32 full_cmd_oafifo     : 1;
2399*437bfbebSnyanmisaka         RK_U32 full_data_oafifo    : 1;
2400*437bfbebSnyanmisaka         RK_U32 empty_iafifo        : 1;
2401*437bfbebSnyanmisaka 
2402*437bfbebSnyanmisaka         RK_U32 full_cmd_iafifo     : 1;
2403*437bfbebSnyanmisaka         RK_U32 full_info_iafifo    : 1;
2404*437bfbebSnyanmisaka         RK_U32 fbd_brq_st          : 4;
2405*437bfbebSnyanmisaka         RK_U32 fbd_hdr_vld         : 1;
2406*437bfbebSnyanmisaka         RK_U32 fbd_bmng_end        : 1;
2407*437bfbebSnyanmisaka 
2408*437bfbebSnyanmisaka         RK_U32 nfbd_req_st         : 4;
2409*437bfbebSnyanmisaka         RK_U32 acc_axi_cmd         : 8;
2410*437bfbebSnyanmisaka         RK_U32 reserved            : 8;
2411*437bfbebSnyanmisaka     } dbg_pp_st;
2412*437bfbebSnyanmisaka 
2413*437bfbebSnyanmisaka     /* 0x00005104 reg5185 */
2414*437bfbebSnyanmisaka     struct {
2415*437bfbebSnyanmisaka         RK_U32 r_ena_lambd        : 1;
2416*437bfbebSnyanmisaka         RK_U32 r_fst_swinw_end    : 1;
2417*437bfbebSnyanmisaka         RK_U32 r_swinw_end        : 1;
2418*437bfbebSnyanmisaka         RK_U32 r_cnt_swinw        : 1;
2419*437bfbebSnyanmisaka 
2420*437bfbebSnyanmisaka         RK_U32 r_dspw_end         : 1;
2421*437bfbebSnyanmisaka         RK_U32 r_dspw_cnt         : 1;
2422*437bfbebSnyanmisaka         RK_U32 i_sjgen_work       : 1;
2423*437bfbebSnyanmisaka         RK_U32 r_end_rspgen       : 1;
2424*437bfbebSnyanmisaka 
2425*437bfbebSnyanmisaka         RK_U32 r_cost_gate        : 1;
2426*437bfbebSnyanmisaka         RK_U32 r_ds_gate          : 1;
2427*437bfbebSnyanmisaka         RK_U32 r_mvp_gate         : 1;
2428*437bfbebSnyanmisaka         RK_U32 i_smvp_arrdy       : 1;
2429*437bfbebSnyanmisaka 
2430*437bfbebSnyanmisaka         RK_U32 i_smvp_arvld       : 1;
2431*437bfbebSnyanmisaka         RK_U32 i_stptr_wrdy       : 1;
2432*437bfbebSnyanmisaka         RK_U32 i_stptr_wvld       : 1;
2433*437bfbebSnyanmisaka         RK_U32 i_rdy_atf          : 1;
2434*437bfbebSnyanmisaka 
2435*437bfbebSnyanmisaka         RK_U32 i_vld_atf          : 1;
2436*437bfbebSnyanmisaka         RK_U32 i_rdy_bmv16        : 1;
2437*437bfbebSnyanmisaka         RK_U32 i_vld_bmv16        : 1;
2438*437bfbebSnyanmisaka         RK_U32 i_wr_dsp           : 1;
2439*437bfbebSnyanmisaka 
2440*437bfbebSnyanmisaka         RK_U32 i_rdy_dsp          : 1;
2441*437bfbebSnyanmisaka         RK_U32 i_vld_dsp          : 1;
2442*437bfbebSnyanmisaka         RK_U32 r_rdy_org          : 1;
2443*437bfbebSnyanmisaka         RK_U32 i_vld_org          : 1;
2444*437bfbebSnyanmisaka 
2445*437bfbebSnyanmisaka         RK_U32 i_rdy_state        : 1;
2446*437bfbebSnyanmisaka         RK_U32 i_vld_state        : 1;
2447*437bfbebSnyanmisaka         RK_U32 i_rdy_madp         : 1;
2448*437bfbebSnyanmisaka         RK_U32 i_vld_madp         : 1;
2449*437bfbebSnyanmisaka 
2450*437bfbebSnyanmisaka         RK_U32 i_rdy_diff         : 1;
2451*437bfbebSnyanmisaka         RK_U32 i_vld_diff         : 1;
2452*437bfbebSnyanmisaka         RK_U32 reserved           : 2;
2453*437bfbebSnyanmisaka     } dbg_cime_st;
2454*437bfbebSnyanmisaka 
2455*437bfbebSnyanmisaka     /* 0x00005108 reg5186 */
2456*437bfbebSnyanmisaka     RK_U32 swin_dbg_inf;
2457*437bfbebSnyanmisaka 
2458*437bfbebSnyanmisaka     /* 0x0000510c reg5187 */
2459*437bfbebSnyanmisaka     struct {
2460*437bfbebSnyanmisaka         RK_U32 bbrq_cmps_left_len2    : 1;
2461*437bfbebSnyanmisaka         RK_U32 bbrq_cmps_left_len1    : 1;
2462*437bfbebSnyanmisaka         RK_U32 cmps_left_len0         : 1;
2463*437bfbebSnyanmisaka         RK_U32 bbrq_rdy2              : 1;
2464*437bfbebSnyanmisaka         RK_U32 dcps_vld2              : 1;
2465*437bfbebSnyanmisaka         RK_U32 bbrq_rdy1              : 1;
2466*437bfbebSnyanmisaka         RK_U32 dcps_vld1              : 1;
2467*437bfbebSnyanmisaka         RK_U32 bbrq_rdy0              : 1;
2468*437bfbebSnyanmisaka         RK_U32 dcps_vld0              : 1;
2469*437bfbebSnyanmisaka         RK_U32 hb_rdy2                : 1;
2470*437bfbebSnyanmisaka         RK_U32 bbrq_vld2              : 1;
2471*437bfbebSnyanmisaka         RK_U32 hb_rdy1                : 1;
2472*437bfbebSnyanmisaka         RK_U32 bbrq_vld1              : 1;
2473*437bfbebSnyanmisaka         RK_U32 hb_rdy0                : 1;
2474*437bfbebSnyanmisaka         RK_U32 bbrq_vld0              : 1;
2475*437bfbebSnyanmisaka         RK_U32 idle_msb2              : 1;
2476*437bfbebSnyanmisaka         RK_U32 idle_msb1              : 1;
2477*437bfbebSnyanmisaka         RK_U32 idle_msb0              : 1;
2478*437bfbebSnyanmisaka         RK_U32 cur_state_dcps         : 1;
2479*437bfbebSnyanmisaka         RK_U32 cur_state_bbrq         : 1;
2480*437bfbebSnyanmisaka         RK_U32 cur_state_hb           : 1;
2481*437bfbebSnyanmisaka         RK_U32 cke_bbrq_dcps          : 1;
2482*437bfbebSnyanmisaka         RK_U32 cke_dcps               : 1;
2483*437bfbebSnyanmisaka         RK_U32 cke_bbrq               : 1;
2484*437bfbebSnyanmisaka         RK_U32 rdy_lwcd_rsp           : 1;
2485*437bfbebSnyanmisaka         RK_U32 vld_lwcd_rsp           : 1;
2486*437bfbebSnyanmisaka         RK_U32 rdy_lwcd_req           : 1;
2487*437bfbebSnyanmisaka         RK_U32 vld_lwcd_req           : 1;
2488*437bfbebSnyanmisaka         RK_U32 rdy_lwrsp              : 1;
2489*437bfbebSnyanmisaka         RK_U32 vld_lwrsp              : 1;
2490*437bfbebSnyanmisaka         RK_U32 rdy_lwreq              : 1;
2491*437bfbebSnyanmisaka         RK_U32 vld_lwreq              : 1;
2492*437bfbebSnyanmisaka     } dbg_fbd_hhit0;
2493*437bfbebSnyanmisaka 
2494*437bfbebSnyanmisaka     /* 0x00005110 reg5188 */
2495*437bfbebSnyanmisaka     RK_U32 rfme_dbg_inf;
2496*437bfbebSnyanmisaka 
2497*437bfbebSnyanmisaka     /* 0x5114 */
2498*437bfbebSnyanmisaka     RK_U32 reserved_5189;
2499*437bfbebSnyanmisaka 
2500*437bfbebSnyanmisaka     /* 0x00005118 reg5190 */
2501*437bfbebSnyanmisaka     RK_U32 dbg0_fbd;
2502*437bfbebSnyanmisaka 
2503*437bfbebSnyanmisaka     /* 0x0000511c reg5191 */
2504*437bfbebSnyanmisaka     RK_U32 dbg1_fbd;
2505*437bfbebSnyanmisaka 
2506*437bfbebSnyanmisaka     /* 0x00005120 reg5192 */
2507*437bfbebSnyanmisaka     RK_U32 rdo_dbg0;
2508*437bfbebSnyanmisaka 
2509*437bfbebSnyanmisaka     /* 0x00005124 reg5193 */
2510*437bfbebSnyanmisaka     RK_U32 rdo_dbg1;
2511*437bfbebSnyanmisaka 
2512*437bfbebSnyanmisaka     /* 0x00005128 reg5194 */
2513*437bfbebSnyanmisaka     struct {
2514*437bfbebSnyanmisaka         RK_U32 h264_sh_st_cs    : 4;
2515*437bfbebSnyanmisaka         RK_U32 rsd_st_cs        : 4;
2516*437bfbebSnyanmisaka         RK_U32 h264_sd_st_cs    : 5;
2517*437bfbebSnyanmisaka         RK_U32 etpy_rdy         : 1;
2518*437bfbebSnyanmisaka         RK_U32 reserved         : 18;
2519*437bfbebSnyanmisaka     } dbg_etpy;
2520*437bfbebSnyanmisaka 
2521*437bfbebSnyanmisaka     /* 0x0000512c reg5195 */
2522*437bfbebSnyanmisaka     struct {
2523*437bfbebSnyanmisaka         RK_U32 chl_aw_vld        : 10;
2524*437bfbebSnyanmisaka         RK_U32 chl_aw_rdy        : 10;
2525*437bfbebSnyanmisaka         RK_U32 aw_vld_arb        : 1;
2526*437bfbebSnyanmisaka         RK_U32 aw_rdy_arb        : 1;
2527*437bfbebSnyanmisaka         RK_U32 aw_vld_crosclk    : 1;
2528*437bfbebSnyanmisaka         RK_U32 aw_rdy_crosclk    : 1;
2529*437bfbebSnyanmisaka         RK_U32 aw_rdy_mmu        : 1;
2530*437bfbebSnyanmisaka         RK_U32 aw_vld_mmu        : 1;
2531*437bfbebSnyanmisaka         RK_U32 aw_rdy_axi        : 1;
2532*437bfbebSnyanmisaka         RK_U32 aw_vld_axi        : 1;
2533*437bfbebSnyanmisaka         RK_U32 reserved          : 4;
2534*437bfbebSnyanmisaka     } dbg_dma_aw;
2535*437bfbebSnyanmisaka 
2536*437bfbebSnyanmisaka     /* 0x00005130 reg5196 */
2537*437bfbebSnyanmisaka     struct {
2538*437bfbebSnyanmisaka         RK_U32 chl_w_vld        : 10;
2539*437bfbebSnyanmisaka         RK_U32 chl_w_rdy        : 10;
2540*437bfbebSnyanmisaka         RK_U32 w_vld_arb        : 1;
2541*437bfbebSnyanmisaka         RK_U32 w_rdy_arb        : 1;
2542*437bfbebSnyanmisaka         RK_U32 w_vld_crosclk    : 1;
2543*437bfbebSnyanmisaka         RK_U32 w_rdy_crosclk    : 1;
2544*437bfbebSnyanmisaka         RK_U32 w_rdy_mmu        : 1;
2545*437bfbebSnyanmisaka         RK_U32 w_vld_mmu        : 1;
2546*437bfbebSnyanmisaka         RK_U32 w_rdy_axi        : 1;
2547*437bfbebSnyanmisaka         RK_U32 w_vld_axi        : 1;
2548*437bfbebSnyanmisaka         RK_U32 reserved         : 4;
2549*437bfbebSnyanmisaka     } dbg_dma_w;
2550*437bfbebSnyanmisaka 
2551*437bfbebSnyanmisaka     /* 0x00005134 reg5197 */
2552*437bfbebSnyanmisaka     struct {
2553*437bfbebSnyanmisaka         RK_U32 chl_ar_vld        : 9;
2554*437bfbebSnyanmisaka         RK_U32 chl_ar_rdy        : 9;
2555*437bfbebSnyanmisaka         RK_U32 reserved          : 2;
2556*437bfbebSnyanmisaka         RK_U32 ar_vld_arb        : 1;
2557*437bfbebSnyanmisaka         RK_U32 ar_rdy_arb        : 1;
2558*437bfbebSnyanmisaka         RK_U32 ar_vld_crosclk    : 1;
2559*437bfbebSnyanmisaka         RK_U32 ar_rdy_crosclk    : 1;
2560*437bfbebSnyanmisaka         RK_U32 ar_rdy_mmu        : 1;
2561*437bfbebSnyanmisaka         RK_U32 ar_vld_mmu        : 1;
2562*437bfbebSnyanmisaka         RK_U32 ar_rdy_axi        : 1;
2563*437bfbebSnyanmisaka         RK_U32 ar_vld_axi        : 1;
2564*437bfbebSnyanmisaka         RK_U32 reserved1         : 4;
2565*437bfbebSnyanmisaka     } dbg_dma_ar;
2566*437bfbebSnyanmisaka 
2567*437bfbebSnyanmisaka     /* 0x00005138 reg5198 */
2568*437bfbebSnyanmisaka     struct {
2569*437bfbebSnyanmisaka         RK_U32 chl_r_vld        : 9;
2570*437bfbebSnyanmisaka         RK_U32 chl_r_rdy        : 9;
2571*437bfbebSnyanmisaka         RK_U32 reserved         : 2;
2572*437bfbebSnyanmisaka         RK_U32 r_vld_arb        : 1;
2573*437bfbebSnyanmisaka         RK_U32 r_rdy_arb        : 1;
2574*437bfbebSnyanmisaka         RK_U32 r_vld_crosclk    : 1;
2575*437bfbebSnyanmisaka         RK_U32 r_rdy_crosclk    : 1;
2576*437bfbebSnyanmisaka         RK_U32 r_rdy_mmu        : 1;
2577*437bfbebSnyanmisaka         RK_U32 r_vld_mmu        : 1;
2578*437bfbebSnyanmisaka         RK_U32 r_rdy_axi        : 1;
2579*437bfbebSnyanmisaka         RK_U32 r_vld_axi        : 1;
2580*437bfbebSnyanmisaka         RK_U32 b_rdy_mmu        : 1;
2581*437bfbebSnyanmisaka         RK_U32 b_vld_mmu        : 1;
2582*437bfbebSnyanmisaka         RK_U32 b_rdy_axi        : 1;
2583*437bfbebSnyanmisaka         RK_U32 b_vld_axi        : 1;
2584*437bfbebSnyanmisaka     } dbg_dma_r;
2585*437bfbebSnyanmisaka 
2586*437bfbebSnyanmisaka     /* 0x0000513c reg5199 */
2587*437bfbebSnyanmisaka     struct {
2588*437bfbebSnyanmisaka         RK_U32 dbg_sclr    : 20;
2589*437bfbebSnyanmisaka         RK_U32 dbg_arb     : 12;
2590*437bfbebSnyanmisaka     } dbg_dma_dbg0;
2591*437bfbebSnyanmisaka 
2592*437bfbebSnyanmisaka     /* 0x00005140 reg5200 */
2593*437bfbebSnyanmisaka     struct {
2594*437bfbebSnyanmisaka         RK_U32 bsw_fsm_stus     : 4;
2595*437bfbebSnyanmisaka         RK_U32 bsw_aw_full      : 1;
2596*437bfbebSnyanmisaka         RK_U32 bsw_rdy_ent      : 1;
2597*437bfbebSnyanmisaka         RK_U32 bsw_vld_ent      : 1;
2598*437bfbebSnyanmisaka         RK_U32 jpg_bsw_stus     : 4;
2599*437bfbebSnyanmisaka         RK_U32 jpg_aw_full      : 1;
2600*437bfbebSnyanmisaka         RK_U32 jpg_bsw_rdy      : 1;
2601*437bfbebSnyanmisaka         RK_U32 jpg_bsw_vld      : 1;
2602*437bfbebSnyanmisaka         RK_U32 crpw_fsm_stus    : 3;
2603*437bfbebSnyanmisaka         RK_U32 hdwr_rdy         : 1;
2604*437bfbebSnyanmisaka         RK_U32 hdwr_vld         : 1;
2605*437bfbebSnyanmisaka         RK_U32 bdwr_rdy         : 1;
2606*437bfbebSnyanmisaka         RK_U32 bdwr_vld         : 1;
2607*437bfbebSnyanmisaka         RK_U32 nfbc_rdy         : 1;
2608*437bfbebSnyanmisaka         RK_U32 nfbc_vld         : 1;
2609*437bfbebSnyanmisaka         RK_U32 dsp_fsm_stus     : 2;
2610*437bfbebSnyanmisaka         RK_U32 dsp_wr_flg       : 1;
2611*437bfbebSnyanmisaka         RK_U32 dsp_rsy          : 1;
2612*437bfbebSnyanmisaka         RK_U32 dsp_vld          : 1;
2613*437bfbebSnyanmisaka         RK_U32 lpfw_fsm_stus    : 3;
2614*437bfbebSnyanmisaka         RK_U32 reserved         : 1;
2615*437bfbebSnyanmisaka     } dbg_dma_dbg1;
2616*437bfbebSnyanmisaka 
2617*437bfbebSnyanmisaka     /* 0x00005144 reg5201 */
2618*437bfbebSnyanmisaka     struct {
2619*437bfbebSnyanmisaka         RK_U32 awvld_mdo     : 1;
2620*437bfbebSnyanmisaka         RK_U32 awrdy_mdo     : 1;
2621*437bfbebSnyanmisaka         RK_U32 wvld_mdo      : 1;
2622*437bfbebSnyanmisaka         RK_U32 wrdy_mdo      : 1;
2623*437bfbebSnyanmisaka         RK_U32 awvld_odo     : 1;
2624*437bfbebSnyanmisaka         RK_U32 awrdy_odo     : 1;
2625*437bfbebSnyanmisaka         RK_U32 wvld_odo      : 1;
2626*437bfbebSnyanmisaka         RK_U32 wrdy_odo      : 1;
2627*437bfbebSnyanmisaka         RK_U32 awvld_rfmw    : 1;
2628*437bfbebSnyanmisaka         RK_U32 awrdy_rfmw    : 1;
2629*437bfbebSnyanmisaka         RK_U32 wvld_rfmw     : 1;
2630*437bfbebSnyanmisaka         RK_U32 wrdy_rfmw     : 1;
2631*437bfbebSnyanmisaka         RK_U32 arvld_rfmr    : 1;
2632*437bfbebSnyanmisaka         RK_U32 arrdy_rfmr    : 1;
2633*437bfbebSnyanmisaka         RK_U32 rvld_rfmr     : 1;
2634*437bfbebSnyanmisaka         RK_U32 rrdy_rfmr     : 1;
2635*437bfbebSnyanmisaka         RK_U32 reserved      : 16;
2636*437bfbebSnyanmisaka     } dbg_dma_vpp;
2637*437bfbebSnyanmisaka 
2638*437bfbebSnyanmisaka     /* 0x00005148 reg5202 */
2639*437bfbebSnyanmisaka     struct {
2640*437bfbebSnyanmisaka         RK_U32 rdo_st      : 20;
2641*437bfbebSnyanmisaka         RK_U32 reserved    : 12;
2642*437bfbebSnyanmisaka     } dbg_rdo_st;
2643*437bfbebSnyanmisaka 
2644*437bfbebSnyanmisaka     /* 0x0000514c reg5203 */
2645*437bfbebSnyanmisaka     struct {
2646*437bfbebSnyanmisaka         RK_U32 lpf_work               : 1;
2647*437bfbebSnyanmisaka         RK_U32 rdo_par_nrdy           : 1;
2648*437bfbebSnyanmisaka         RK_U32 rdo_rcn_nrdy           : 1;
2649*437bfbebSnyanmisaka         RK_U32 lpf_rcn_rdy            : 1;
2650*437bfbebSnyanmisaka         RK_U32 dblk_work              : 1;
2651*437bfbebSnyanmisaka         RK_U32 sao_work               : 1;
2652*437bfbebSnyanmisaka         RK_U32 reserved               : 18;
2653*437bfbebSnyanmisaka         RK_U32 tile_bdry_read         : 1;
2654*437bfbebSnyanmisaka         RK_U32 tile_bdry_write        : 1;
2655*437bfbebSnyanmisaka         RK_U32 tile_bdry_rrdy         : 1;
2656*437bfbebSnyanmisaka         RK_U32 rdo_read_tile_bdry     : 1;
2657*437bfbebSnyanmisaka         RK_U32 rdo_write_tile_bdry    : 1;
2658*437bfbebSnyanmisaka         RK_U32 reserved1              : 3;
2659*437bfbebSnyanmisaka     } dbg_lpf;
2660*437bfbebSnyanmisaka 
2661*437bfbebSnyanmisaka     /* 0x5150 */
2662*437bfbebSnyanmisaka     RK_U32 reserved_5204;
2663*437bfbebSnyanmisaka 
2664*437bfbebSnyanmisaka     /* 0x00005154 reg5205 */
2665*437bfbebSnyanmisaka     RK_U32 dbg0_cache;
2666*437bfbebSnyanmisaka 
2667*437bfbebSnyanmisaka     /* 0x00005158 reg5206 */
2668*437bfbebSnyanmisaka     RK_U32 dbg2_fbd;
2669*437bfbebSnyanmisaka 
2670*437bfbebSnyanmisaka     /* 0x515c */
2671*437bfbebSnyanmisaka     RK_U32 reserved_5207;
2672*437bfbebSnyanmisaka 
2673*437bfbebSnyanmisaka     /* 0x00005160 reg5208 */
2674*437bfbebSnyanmisaka     struct {
2675*437bfbebSnyanmisaka         RK_U32 ebuf_diff_cmd      : 8;
2676*437bfbebSnyanmisaka         RK_U32 lbuf_lpf_ncnt      : 7;
2677*437bfbebSnyanmisaka         RK_U32 lbuf_lpf_cien      : 1;
2678*437bfbebSnyanmisaka         RK_U32 lbuf_rdo_ncnt      : 7;
2679*437bfbebSnyanmisaka         RK_U32 lbuf_rdo_cien      : 1;
2680*437bfbebSnyanmisaka         RK_U32 lbuf_tctrl_ncnt    : 7;
2681*437bfbebSnyanmisaka         RK_U32 lbuf_tctrl_cien    : 1;
2682*437bfbebSnyanmisaka     } dbg_lbuf0;
2683*437bfbebSnyanmisaka 
2684*437bfbebSnyanmisaka     /* 0x00005164 reg5209 */
2685*437bfbebSnyanmisaka     struct {
2686*437bfbebSnyanmisaka         RK_U32 rvld_ebfr          : 1;
2687*437bfbebSnyanmisaka         RK_U32 rrdy_ebfr          : 1;
2688*437bfbebSnyanmisaka         RK_U32 arvld_ebfr         : 1;
2689*437bfbebSnyanmisaka         RK_U32 arrdy_ebfr         : 1;
2690*437bfbebSnyanmisaka         RK_U32 wvld_ebfw          : 1;
2691*437bfbebSnyanmisaka         RK_U32 wrdy_ebfw          : 1;
2692*437bfbebSnyanmisaka         RK_U32 awvld_ebfw         : 1;
2693*437bfbebSnyanmisaka         RK_U32 awrdy_ebfw         : 1;
2694*437bfbebSnyanmisaka         RK_U32 lpf_lbuf_rvld      : 1;
2695*437bfbebSnyanmisaka         RK_U32 lpf_lbuf_rrdy      : 1;
2696*437bfbebSnyanmisaka         RK_U32 lpf_lbuf_wvld      : 1;
2697*437bfbebSnyanmisaka         RK_U32 lpf_lbuf_wrdy      : 1;
2698*437bfbebSnyanmisaka         RK_U32 rdo_lbuf_rvld      : 1;
2699*437bfbebSnyanmisaka         RK_U32 rdo_lbuf_rrdy      : 1;
2700*437bfbebSnyanmisaka         RK_U32 rdo_lbuf_wvld      : 1;
2701*437bfbebSnyanmisaka         RK_U32 rdo_lbuf_wrdy      : 1;
2702*437bfbebSnyanmisaka         RK_U32 fme_lbuf_rvld      : 1;
2703*437bfbebSnyanmisaka         RK_U32 fme_lbuf_rrdy      : 1;
2704*437bfbebSnyanmisaka         RK_U32 cme_lbuf_rvld      : 1;
2705*437bfbebSnyanmisaka         RK_U32 cme_lbuf_rrdy      : 1;
2706*437bfbebSnyanmisaka         RK_U32 smear_lbuf_rvld    : 1;
2707*437bfbebSnyanmisaka         RK_U32 smear_lbuf_rrdy    : 1;
2708*437bfbebSnyanmisaka         RK_U32 smear_lbuf_wvld    : 1;
2709*437bfbebSnyanmisaka         RK_U32 smear_lbuf_wrdy    : 1;
2710*437bfbebSnyanmisaka         RK_U32 depth_lbuf_wvld    : 1;
2711*437bfbebSnyanmisaka         RK_U32 depth_lbuf_wrdy    : 1;
2712*437bfbebSnyanmisaka         RK_U32 rdo_lbufw_flag     : 1;
2713*437bfbebSnyanmisaka         RK_U32 rdo_lbufr_flag     : 1;
2714*437bfbebSnyanmisaka         RK_U32 cme_lbufr_flag     : 1;
2715*437bfbebSnyanmisaka         RK_U32 reserved           : 3;
2716*437bfbebSnyanmisaka     } dbg_lbuf1;
2717*437bfbebSnyanmisaka 
2718*437bfbebSnyanmisaka     /* 0x00005168 reg5210 */
2719*437bfbebSnyanmisaka     struct {
2720*437bfbebSnyanmisaka         RK_U32 dbg_isp_fcnt    : 8;
2721*437bfbebSnyanmisaka         RK_U32 dbg_isp_fcyc    : 24;
2722*437bfbebSnyanmisaka     } dbg_dvbm_isp0;
2723*437bfbebSnyanmisaka 
2724*437bfbebSnyanmisaka     /* 0x0000516c reg5211 */
2725*437bfbebSnyanmisaka     struct {
2726*437bfbebSnyanmisaka         RK_U32 dbg_isp_lcnt    : 14;
2727*437bfbebSnyanmisaka         RK_U32 reserved        : 1;
2728*437bfbebSnyanmisaka         RK_U32 dbg_isp_ltgl    : 1;
2729*437bfbebSnyanmisaka         RK_U32 dbg_isp_fcnt    : 8;
2730*437bfbebSnyanmisaka         RK_U32 dbg_isp_oflw    : 1;
2731*437bfbebSnyanmisaka         RK_U32 dbg_isp_ftgl    : 1;
2732*437bfbebSnyanmisaka         RK_U32 dbg_isp_full    : 1;
2733*437bfbebSnyanmisaka         RK_U32 dbg_isp_work    : 1;
2734*437bfbebSnyanmisaka         RK_U32 dbg_isp_lvld    : 1;
2735*437bfbebSnyanmisaka         RK_U32 dbg_isp_lrdy    : 1;
2736*437bfbebSnyanmisaka         RK_U32 dbg_isp_fvld    : 1;
2737*437bfbebSnyanmisaka         RK_U32 dbg_isp_frdy    : 1;
2738*437bfbebSnyanmisaka     } dbg_dvbm_isp1;
2739*437bfbebSnyanmisaka 
2740*437bfbebSnyanmisaka     /* 0x00005170 reg5212 */
2741*437bfbebSnyanmisaka     struct {
2742*437bfbebSnyanmisaka         RK_U32 dbg_bf0_isp_lcnt    : 14;
2743*437bfbebSnyanmisaka         RK_U32 dbg_bf0_isp_llst    : 1;
2744*437bfbebSnyanmisaka         RK_U32 dbg_bf0_isp_sofw    : 1;
2745*437bfbebSnyanmisaka         RK_U32 dbg_bf0_isp_fcnt    : 8;
2746*437bfbebSnyanmisaka         RK_U32 dbg_bf0_isp_fsid    : 1;
2747*437bfbebSnyanmisaka         RK_U32 reserved            : 5;
2748*437bfbebSnyanmisaka         RK_U32 dbg_bf0_isp_pnt     : 1;
2749*437bfbebSnyanmisaka         RK_U32 dbg_bf0_vpu_pnt     : 1;
2750*437bfbebSnyanmisaka     } dbg_dvbm_buf0_inf0;
2751*437bfbebSnyanmisaka 
2752*437bfbebSnyanmisaka     /* 0x00005174 reg5213 */
2753*437bfbebSnyanmisaka     struct {
2754*437bfbebSnyanmisaka         RK_U32 dbg_bf0_src_lcnt    : 14;
2755*437bfbebSnyanmisaka         RK_U32 dbg_bf0_src_llst    : 1;
2756*437bfbebSnyanmisaka         RK_U32 reserved            : 1;
2757*437bfbebSnyanmisaka         RK_U32 dbg_bf0_vpu_lcnt    : 14;
2758*437bfbebSnyanmisaka         RK_U32 dbg_bf0_vpu_llst    : 1;
2759*437bfbebSnyanmisaka         RK_U32 dbg_bf0_vpu_vofw    : 1;
2760*437bfbebSnyanmisaka     } dbg_dvbm_buf0_inf1;
2761*437bfbebSnyanmisaka 
2762*437bfbebSnyanmisaka     /* 0x00005178 reg5214 */
2763*437bfbebSnyanmisaka     struct {
2764*437bfbebSnyanmisaka         RK_U32 dbg_bf1_isp_lcnt    : 14;
2765*437bfbebSnyanmisaka         RK_U32 dbg_bf1_isp_llst    : 1;
2766*437bfbebSnyanmisaka         RK_U32 dbg_bf1_isp_sofw    : 1;
2767*437bfbebSnyanmisaka         RK_U32 dbg_bf1_isp_fcnt    : 8;
2768*437bfbebSnyanmisaka         RK_U32 dbg_bf1_isp_fsid    : 1;
2769*437bfbebSnyanmisaka         RK_U32 reserved            : 5;
2770*437bfbebSnyanmisaka         RK_U32 dbg_bf1_isp_pnt     : 1;
2771*437bfbebSnyanmisaka         RK_U32 dbg_bf1_vpu_pnt     : 1;
2772*437bfbebSnyanmisaka     } dbg_dvbm_buf1_inf0;
2773*437bfbebSnyanmisaka 
2774*437bfbebSnyanmisaka     /* 0x0000517c reg5215 */
2775*437bfbebSnyanmisaka     struct {
2776*437bfbebSnyanmisaka         RK_U32 dbg_bf1_src_lcnt    : 14;
2777*437bfbebSnyanmisaka         RK_U32 dbg_bf1_src_llst    : 1;
2778*437bfbebSnyanmisaka         RK_U32 reserved            : 1;
2779*437bfbebSnyanmisaka         RK_U32 dbg_bf1_vpu_lcnt    : 14;
2780*437bfbebSnyanmisaka         RK_U32 dbg_bf1_vpu_llst    : 1;
2781*437bfbebSnyanmisaka         RK_U32 dbg_bf1_vpu_vofw    : 1;
2782*437bfbebSnyanmisaka     } dbg_dvbm_buf1_inf1;
2783*437bfbebSnyanmisaka 
2784*437bfbebSnyanmisaka     /* 0x00005180 reg5216 */
2785*437bfbebSnyanmisaka     struct {
2786*437bfbebSnyanmisaka         RK_U32 dbg_bf2_isp_lcnt    : 14;
2787*437bfbebSnyanmisaka         RK_U32 dbg_bf2_isp_llst    : 1;
2788*437bfbebSnyanmisaka         RK_U32 dbg_bf2_isp_sofw    : 1;
2789*437bfbebSnyanmisaka         RK_U32 dbg_bf2_isp_fcnt    : 1;
2790*437bfbebSnyanmisaka         RK_U32 dbg_bf2_isp_fsid    : 1;
2791*437bfbebSnyanmisaka         RK_U32 reserved            : 12;
2792*437bfbebSnyanmisaka         RK_U32 dbg_bf2_isp_pnt     : 1;
2793*437bfbebSnyanmisaka         RK_U32 dbg_bf2_vpu_pnt     : 1;
2794*437bfbebSnyanmisaka     } dbg_dvbm_buf2_inf0;
2795*437bfbebSnyanmisaka 
2796*437bfbebSnyanmisaka     /* 0x00005184 reg5217 */
2797*437bfbebSnyanmisaka     struct {
2798*437bfbebSnyanmisaka         RK_U32 dbg_bf2_src_lcnt    : 14;
2799*437bfbebSnyanmisaka         RK_U32 dbg_bf2_src_llst    : 1;
2800*437bfbebSnyanmisaka         RK_U32 reserved            : 1;
2801*437bfbebSnyanmisaka         RK_U32 dbg_bf2_vpu_lcnt    : 14;
2802*437bfbebSnyanmisaka         RK_U32 dbg_bf2_vpu_llst    : 1;
2803*437bfbebSnyanmisaka         RK_U32 dbg_bf2_vpu_vofw    : 1;
2804*437bfbebSnyanmisaka     } dbg_dvbm_buf2_inf1;
2805*437bfbebSnyanmisaka 
2806*437bfbebSnyanmisaka     /* 0x00005188 reg5218 */
2807*437bfbebSnyanmisaka     struct {
2808*437bfbebSnyanmisaka         RK_U32 dbg_bf3_isp_lcnt    : 14;
2809*437bfbebSnyanmisaka         RK_U32 dbg_bf3_isp_llst    : 1;
2810*437bfbebSnyanmisaka         RK_U32 dbg_bf3_isp_sofw    : 1;
2811*437bfbebSnyanmisaka         RK_U32 dbg_bf3_isp_fcnt    : 1;
2812*437bfbebSnyanmisaka         RK_U32 dbg_bf3_isp_fsid    : 1;
2813*437bfbebSnyanmisaka         RK_U32 reserved            : 12;
2814*437bfbebSnyanmisaka         RK_U32 dbg_bf3_isp_pnt     : 1;
2815*437bfbebSnyanmisaka         RK_U32 dbg_bf3_vpu_pnt     : 1;
2816*437bfbebSnyanmisaka     } dbg_dvbm_buf3_inf0;
2817*437bfbebSnyanmisaka 
2818*437bfbebSnyanmisaka     /* 0x0000518c reg5219 */
2819*437bfbebSnyanmisaka     struct {
2820*437bfbebSnyanmisaka         RK_U32 dbg_bf3_src_lcnt    : 14;
2821*437bfbebSnyanmisaka         RK_U32 dbg_bf3_src_llst    : 1;
2822*437bfbebSnyanmisaka         RK_U32 reserved            : 1;
2823*437bfbebSnyanmisaka         RK_U32 dbg_bf3_vpu_lcnt    : 14;
2824*437bfbebSnyanmisaka         RK_U32 dbg_bf3_vpu_llst    : 1;
2825*437bfbebSnyanmisaka         RK_U32 dbg_bf3_vpu_vofw    : 1;
2826*437bfbebSnyanmisaka     } dbg_dvbm_buf3_inf1;
2827*437bfbebSnyanmisaka 
2828*437bfbebSnyanmisaka     /* 0x00005190 reg5220 */
2829*437bfbebSnyanmisaka     struct {
2830*437bfbebSnyanmisaka         RK_U32 dbg_isp_fptr     : 3;
2831*437bfbebSnyanmisaka         RK_U32 dbg_isp_full     : 1;
2832*437bfbebSnyanmisaka         RK_U32 dbg_src_fptr     : 3;
2833*437bfbebSnyanmisaka         RK_U32 reserved         : 1;
2834*437bfbebSnyanmisaka         RK_U32 dbg_vpu_fptr     : 3;
2835*437bfbebSnyanmisaka         RK_U32 dbg_vpu_empt     : 1;
2836*437bfbebSnyanmisaka         RK_U32 dbg_vpu_lvld     : 1;
2837*437bfbebSnyanmisaka         RK_U32 dbg_vpu_lrdy     : 1;
2838*437bfbebSnyanmisaka         RK_U32 dbg_vpu_fvld     : 1;
2839*437bfbebSnyanmisaka         RK_U32 dbg_vpu_frdy     : 1;
2840*437bfbebSnyanmisaka         RK_U32 dbg_fcnt_misp    : 4;
2841*437bfbebSnyanmisaka         RK_U32 dbg_fcnt_mvpu    : 4;
2842*437bfbebSnyanmisaka         RK_U32 dbg_fcnt_sofw    : 4;
2843*437bfbebSnyanmisaka         RK_U32 dbg_fcnt_vofw    : 4;
2844*437bfbebSnyanmisaka     } dbg_dvbm_ctrl;
2845*437bfbebSnyanmisaka 
2846*437bfbebSnyanmisaka     /* 0x5194 - 0x519c */
2847*437bfbebSnyanmisaka     RK_U32 reserved5221_5223[3];
2848*437bfbebSnyanmisaka 
2849*437bfbebSnyanmisaka     /* 0x000051a0 reg5224 */
2850*437bfbebSnyanmisaka     RK_U32 dbg_dvbm_buf0_yadr;
2851*437bfbebSnyanmisaka 
2852*437bfbebSnyanmisaka     /* 0x000051a4 reg5225 */
2853*437bfbebSnyanmisaka     RK_U32 dbg_dvbm_buf0_cadr;
2854*437bfbebSnyanmisaka 
2855*437bfbebSnyanmisaka     /* 0x000051a8 reg5226 */
2856*437bfbebSnyanmisaka     RK_U32 dbg_dvbm_buf1_yadr;
2857*437bfbebSnyanmisaka 
2858*437bfbebSnyanmisaka     /* 0x000051ac reg5227 */
2859*437bfbebSnyanmisaka     RK_U32 dbg_dvbm_buf1_cadr;
2860*437bfbebSnyanmisaka 
2861*437bfbebSnyanmisaka     /* 0x000051b0 reg5228 */
2862*437bfbebSnyanmisaka     RK_U32 dbg_dvbm_buf2_yadr;
2863*437bfbebSnyanmisaka 
2864*437bfbebSnyanmisaka     /* 0x000051b4 reg5229 */
2865*437bfbebSnyanmisaka     RK_U32 dbg_dvbm_buf2_cadr;
2866*437bfbebSnyanmisaka 
2867*437bfbebSnyanmisaka     /* 0x000051b8 reg5230 */
2868*437bfbebSnyanmisaka     RK_U32 dbg_dvbm_buf3_yadr;
2869*437bfbebSnyanmisaka 
2870*437bfbebSnyanmisaka     /* 0x000051bc reg5231 */
2871*437bfbebSnyanmisaka     RK_U32 dbg_dvbm_buf3_cadr;
2872*437bfbebSnyanmisaka 
2873*437bfbebSnyanmisaka     /* 0x000051c0 reg5232 */
2874*437bfbebSnyanmisaka     struct {
2875*437bfbebSnyanmisaka         RK_U32 dchs_rx_cnt    : 11;
2876*437bfbebSnyanmisaka         RK_U32 dchs_rx_id     : 2;
2877*437bfbebSnyanmisaka         RK_U32 dchs_rx_en     : 1;
2878*437bfbebSnyanmisaka         RK_U32 dchs_rx_ack    : 1;
2879*437bfbebSnyanmisaka         RK_U32 dchs_rx_req    : 1;
2880*437bfbebSnyanmisaka         RK_U32 dchs_tx_cnt    : 11;
2881*437bfbebSnyanmisaka         RK_U32 dchs_tx_id     : 2;
2882*437bfbebSnyanmisaka         RK_U32 dchs_tx_en     : 1;
2883*437bfbebSnyanmisaka         RK_U32 dchs_tx_ack    : 1;
2884*437bfbebSnyanmisaka         RK_U32 dchs_tx_req    : 1;
2885*437bfbebSnyanmisaka     } dbg_dchs_intfc;
2886*437bfbebSnyanmisaka 
2887*437bfbebSnyanmisaka     /* 0x000051c4 reg5233 */
2888*437bfbebSnyanmisaka     struct {
2889*437bfbebSnyanmisaka         RK_U32 lpfw_tx_cnt       : 11;
2890*437bfbebSnyanmisaka         RK_U32 lpfw_tx_en        : 1;
2891*437bfbebSnyanmisaka         RK_U32 crpw_tx_cnt       : 11;
2892*437bfbebSnyanmisaka         RK_U32 crpw_tx_en        : 1;
2893*437bfbebSnyanmisaka         RK_U32 dual_err_updt     : 1;
2894*437bfbebSnyanmisaka         RK_U32 dlyc_fifo_oflw    : 1;
2895*437bfbebSnyanmisaka         RK_U32 dlyc_tx_vld       : 1;
2896*437bfbebSnyanmisaka         RK_U32 dlyc_tx_rdy       : 1;
2897*437bfbebSnyanmisaka         RK_U32 dlyc_tx_empty     : 1;
2898*437bfbebSnyanmisaka         RK_U32 dchs_tx_idle      : 1;
2899*437bfbebSnyanmisaka         RK_U32 dchs_tx_asy       : 1;
2900*437bfbebSnyanmisaka         RK_U32 dchs_tx_syn       : 1;
2901*437bfbebSnyanmisaka     } dbg_dchs_tx_inf0;
2902*437bfbebSnyanmisaka 
2903*437bfbebSnyanmisaka     /* 0x000051c8 reg5234 */
2904*437bfbebSnyanmisaka     struct {
2905*437bfbebSnyanmisaka         RK_U32 criw_tx_cnt    : 11;
2906*437bfbebSnyanmisaka         RK_U32 criw_tx_en     : 1;
2907*437bfbebSnyanmisaka         RK_U32 smrw_tx_cnt    : 11;
2908*437bfbebSnyanmisaka         RK_U32 smrw_tx_en     : 1;
2909*437bfbebSnyanmisaka         RK_U32 reserved       : 8;
2910*437bfbebSnyanmisaka     } dbg_dchs_tx_inf1;
2911*437bfbebSnyanmisaka 
2912*437bfbebSnyanmisaka     /* 0x000051cc reg5235 */
2913*437bfbebSnyanmisaka     struct {
2914*437bfbebSnyanmisaka         RK_U32 dual_rx_cnt        : 11;
2915*437bfbebSnyanmisaka         RK_U32 dual_rx_id         : 2;
2916*437bfbebSnyanmisaka         RK_U32 dual_rx_en         : 1;
2917*437bfbebSnyanmisaka         RK_U32 dual_rx_syn        : 1;
2918*437bfbebSnyanmisaka         RK_U32 dual_rx_lock       : 1;
2919*437bfbebSnyanmisaka         RK_U32 dual_lpfr_dule     : 1;
2920*437bfbebSnyanmisaka         RK_U32 dual_cime_dule     : 1;
2921*437bfbebSnyanmisaka         RK_U32 dual_clomv_dule    : 1;
2922*437bfbebSnyanmisaka         RK_U32 dual_smear_dule    : 1;
2923*437bfbebSnyanmisaka         RK_U32 reserved           : 12;
2924*437bfbebSnyanmisaka     } dbg_dchs_rx_inf0;
2925*437bfbebSnyanmisaka 
2926*437bfbebSnyanmisaka     /* 0x51d0 - 0x51fc */
2927*437bfbebSnyanmisaka     RK_U32 reserved5236_5247[12];
2928*437bfbebSnyanmisaka 
2929*437bfbebSnyanmisaka     /* 0x00005200 reg5248 */
2930*437bfbebSnyanmisaka     RK_U32 frame_cyc;
2931*437bfbebSnyanmisaka 
2932*437bfbebSnyanmisaka     /* 0x00005204 reg5249 */
2933*437bfbebSnyanmisaka     RK_U32 vsp0_fcyc;
2934*437bfbebSnyanmisaka 
2935*437bfbebSnyanmisaka     /* 0x00005208 reg5250 */
2936*437bfbebSnyanmisaka     RK_U32 vsp1_fcyc;
2937*437bfbebSnyanmisaka 
2938*437bfbebSnyanmisaka     /* 0x0000520c reg5251 */
2939*437bfbebSnyanmisaka     RK_U32 vsp2_fcyc;
2940*437bfbebSnyanmisaka 
2941*437bfbebSnyanmisaka     /* 0x00005210 reg5252 */
2942*437bfbebSnyanmisaka     RK_U32 cme_fcyc;
2943*437bfbebSnyanmisaka 
2944*437bfbebSnyanmisaka     /* 0x00005214 reg5253 */
2945*437bfbebSnyanmisaka     RK_U32 ldr_fcyc;
2946*437bfbebSnyanmisaka 
2947*437bfbebSnyanmisaka     /* 0x00005218 reg5254 */
2948*437bfbebSnyanmisaka     RK_U32 rfme_fcyc;
2949*437bfbebSnyanmisaka 
2950*437bfbebSnyanmisaka     /* 0x0000521c reg5255 */
2951*437bfbebSnyanmisaka     RK_U32 fme_fcyc;
2952*437bfbebSnyanmisaka 
2953*437bfbebSnyanmisaka     /* 0x00005220 reg5256 */
2954*437bfbebSnyanmisaka     RK_U32 rdo_fcyc;
2955*437bfbebSnyanmisaka 
2956*437bfbebSnyanmisaka     /* 0x00005224 reg5257 */
2957*437bfbebSnyanmisaka     RK_U32 lpf_fcyc;
2958*437bfbebSnyanmisaka 
2959*437bfbebSnyanmisaka     /* 0x00005228 reg5258 */
2960*437bfbebSnyanmisaka     RK_U32 etpy_fcyc;
2961*437bfbebSnyanmisaka 
2962*437bfbebSnyanmisaka     /* 0x522c */
2963*437bfbebSnyanmisaka     RK_U32 reserved_5259;
2964*437bfbebSnyanmisaka 
2965*437bfbebSnyanmisaka     /* 0x00005230 reg5260 */
2966*437bfbebSnyanmisaka     RK_U32 jsp0_fcyc;
2967*437bfbebSnyanmisaka 
2968*437bfbebSnyanmisaka     /* 0x00005234 reg5261 */
2969*437bfbebSnyanmisaka     RK_U32 jsp1_fcyc;
2970*437bfbebSnyanmisaka 
2971*437bfbebSnyanmisaka     /* 0x00005238 reg5262 */
2972*437bfbebSnyanmisaka     RK_U32 jsp2_fcyc;
2973*437bfbebSnyanmisaka 
2974*437bfbebSnyanmisaka     /* 0x0000523c reg5263 */
2975*437bfbebSnyanmisaka     RK_U32 jpeg_fcyc;
2976*437bfbebSnyanmisaka 
2977*437bfbebSnyanmisaka } Vepu511Dbg;
2978*437bfbebSnyanmisaka 
2979*437bfbebSnyanmisaka typedef struct Vepu511OsdCfg_t {
2980*437bfbebSnyanmisaka     void *reg_base;
2981*437bfbebSnyanmisaka     MppDev dev;
2982*437bfbebSnyanmisaka     MppEncOSDData  *osd_data;
2983*437bfbebSnyanmisaka     MppEncOSDData3 *osd_data3;
2984*437bfbebSnyanmisaka } Vepu511OsdCfg;
2985*437bfbebSnyanmisaka 
2986*437bfbebSnyanmisaka /* ROI block configuration */
2987*437bfbebSnyanmisaka typedef struct Vepu511H264RoiBlkCfg {
2988*437bfbebSnyanmisaka     RK_U32 qp_adju        : 8;
2989*437bfbebSnyanmisaka     RK_U32 mdc_adju_inter : 4;
2990*437bfbebSnyanmisaka     RK_U32 mdc_adju_skip  : 4;
2991*437bfbebSnyanmisaka     RK_U32 mdc_adju_intra : 4;
2992*437bfbebSnyanmisaka     RK_U32 reserved       : 12;
2993*437bfbebSnyanmisaka } Vepu511H264RoiBlkCfg;
2994*437bfbebSnyanmisaka 
2995*437bfbebSnyanmisaka typedef struct Vepu511H265RoiBlkCfg {
2996*437bfbebSnyanmisaka     RK_U32 qp_adju        : 8;
2997*437bfbebSnyanmisaka     RK_U32 reserved       : 12;
2998*437bfbebSnyanmisaka     RK_U32 mdc_adju_inter : 4;
2999*437bfbebSnyanmisaka     RK_U32 mdc_adju_skip  : 4;
3000*437bfbebSnyanmisaka     RK_U32 mdc_adju_intra : 4;
3001*437bfbebSnyanmisaka } Vepu511H265RoiBlkCfg;
3002*437bfbebSnyanmisaka 
3003*437bfbebSnyanmisaka typedef struct Vepu511JpegCfg_t {
3004*437bfbebSnyanmisaka     MppDev dev;
3005*437bfbebSnyanmisaka     void *jpeg_reg_base;
3006*437bfbebSnyanmisaka     void *reg_tab;
3007*437bfbebSnyanmisaka     void *enc_task;
3008*437bfbebSnyanmisaka     void *input_fmt;
3009*437bfbebSnyanmisaka } Vepu511JpegCfg;
3010*437bfbebSnyanmisaka 
3011*437bfbebSnyanmisaka #ifdef __cplusplus
3012*437bfbebSnyanmisaka extern "C" {
3013*437bfbebSnyanmisaka #endif
3014*437bfbebSnyanmisaka 
3015*437bfbebSnyanmisaka MPP_RET vepu511_set_osd(Vepu511OsdCfg * cfg, Vepu511Osd *osd);
3016*437bfbebSnyanmisaka MPP_RET vepu511_set_roi(Vepu511RoiCfg *roi_reg_base, MppEncROICfg * roi, RK_S32 w, RK_S32 h);
3017*437bfbebSnyanmisaka MPP_RET vepu511_set_jpeg_reg(Vepu511JpegCfg *cfg);
3018*437bfbebSnyanmisaka 
3019*437bfbebSnyanmisaka #ifdef __cplusplus
3020*437bfbebSnyanmisaka }
3021*437bfbebSnyanmisaka #endif
3022*437bfbebSnyanmisaka 
3023*437bfbebSnyanmisaka #endif /* __VEPU511_COMMON_H__ */
3024