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