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