1 /* 2 * Copyright 2021 Rockchip Electronics Co. LTD 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #ifndef __HAL_H265E_VEPU580_REG_H__ 18 #define __HAL_H265E_VEPU580_REG_H__ 19 20 #include "rk_type.h" 21 22 #define VEPU580_CTL_OFFSET (0 * sizeof(RK_U32)) 23 #define VEPU580_BASE_OFFSET (160 * sizeof(RK_U32)) 24 #define VEPU580_RCKULT_OFFSET (1024 * sizeof(RK_U32)) 25 #define VEPU580_WEG_OFFSET (1472 * sizeof(RK_U32)) 26 #define VEPU580_RDOCFG_OFFSET (2048 * sizeof(RK_U32)) 27 #define VEPU580_OSD_OFFSET (3072 * sizeof(RK_U32)) 28 #define VEPU580_STATUS_OFFSET (4096 * sizeof(RK_U32)) 29 #define VEPU580_DEBUG_OFFSET (5120 * sizeof(RK_U32)) 30 #define VEPU580_REG_BASE_HW_STATUS 0x2c 31 32 /* class: control/link */ 33 /* 0x00000000 reg0 - 0x00000120 reg72 */ 34 typedef struct HevcVepu580ControlCfg_t { 35 /* 0x00000000 reg0 */ 36 struct { 37 RK_U32 sub_ver : 8; 38 RK_U32 h264_cap : 1; 39 RK_U32 hevc_cap : 1; 40 RK_U32 reserved : 2; 41 RK_U32 res_cap : 4; 42 RK_U32 osd_cap : 2; 43 RK_U32 filtr_cap : 2; 44 RK_U32 bfrm_cap : 1; 45 RK_U32 fbc_cap : 2; 46 RK_U32 reserved1 : 1; 47 RK_U32 ip_id : 8; 48 } reg0001_version; 49 50 /* 0x4 - 0xc */ 51 RK_U32 reserved1_3[3]; 52 53 /* 0x00000010 reg4 */ 54 struct { 55 RK_U32 lkt_num : 8; 56 RK_U32 vepu_cmd : 2; 57 RK_U32 reserved : 22; 58 } reg0004_enc_strt; 59 60 /* 0x00000014 reg5 */ 61 struct { 62 RK_U32 safe_clr : 1; 63 RK_U32 force_clr : 1; 64 RK_U32 reserved : 30; 65 } reg0005_enc_clr; 66 67 /* 0x18 - 0x1c */ 68 RK_U32 reserved6_7[2]; 69 70 /* 0x00000020 reg8 */ 71 struct { 72 RK_U32 enc_done_en : 1; 73 RK_U32 lkt_node_done_en : 1; 74 RK_U32 sclr_done_en : 1; 75 RK_U32 slc_done_en : 1; 76 RK_U32 bsf_oflw_en : 1; 77 RK_U32 brsp_otsd_en : 1; 78 RK_U32 wbus_err_en : 1; 79 RK_U32 rbus_err_en : 1; 80 RK_U32 wdg_en : 1; 81 RK_U32 lkt_err_int_en : 1; 82 RK_U32 reserved : 22; 83 } reg0008_int_en; 84 85 /* 0x00000024 reg9 */ 86 struct { 87 RK_U32 enc_done_msk : 1; 88 RK_U32 lkt_node_done_msk : 1; 89 RK_U32 sclr_done_msk : 1; 90 RK_U32 slc_done_msk : 1; 91 RK_U32 bsf_oflw_msk : 1; 92 RK_U32 brsp_otsd_msk : 1; 93 RK_U32 wbus_err_msk : 1; 94 RK_U32 rbus_err_msk : 1; 95 RK_U32 wdg_msk : 1; 96 RK_U32 lkt_err_msk : 1; 97 RK_U32 reserved : 22; 98 } reg0009_int_msk; 99 100 /* 0x00000028 reg10 */ 101 struct { 102 RK_U32 enc_done_clr : 1; 103 RK_U32 lkt_node_done_clr : 1; 104 RK_U32 sclr_done_clr : 1; 105 RK_U32 slc_done_clr : 1; 106 RK_U32 bsf_oflw_clr : 1; 107 RK_U32 brsp_otsd_clr : 1; 108 RK_U32 wbus_err_clr : 1; 109 RK_U32 rbus_err_clr : 1; 110 RK_U32 wdg_clr : 1; 111 RK_U32 lkt_err_clr : 1; 112 RK_U32 reserved : 22; 113 } reg0010_int_clr; 114 115 /* 0x0000002c reg11 */ 116 struct { 117 RK_U32 enc_done_sta : 1; 118 RK_U32 lkt_node_done_sta : 1; 119 RK_U32 sclr_done_sta : 1; 120 RK_U32 slc_done_sta : 1; 121 RK_U32 bsf_oflw_sta : 1; 122 RK_U32 brsp_otsd_sta : 1; 123 RK_U32 wbus_err_sta : 1; 124 RK_U32 rbus_err_sta : 1; 125 RK_U32 wdg_sta : 1; 126 RK_U32 lkt_err_sta : 1; 127 RK_U32 reserved : 22; 128 } reg0011_int_sta; 129 130 /* 0x00000030 reg12 */ 131 struct { 132 RK_U32 lpfw_bus_ordr : 1; 133 RK_U32 cmvw_bus_ordr : 1; 134 RK_U32 dspw_bus_ordr : 1; 135 RK_U32 rfpw_bus_ordr : 1; 136 RK_U32 src_bus_edin : 4; 137 RK_U32 meiw_bus_edin : 4; 138 RK_U32 bsw_bus_edin : 3; 139 RK_U32 lktr_bus_edin : 4; 140 RK_U32 roir_bus_edin : 4; 141 RK_U32 lktw_bus_edin : 4; 142 RK_U32 afbc_bsize : 1; 143 RK_U32 ebufw_bus_ordr : 1; 144 RK_U32 rec_nfbc_bus_edin : 3; 145 } reg0012_dtrns_map; 146 147 /* 0x00000034 reg13 */ 148 struct { 149 RK_U32 reserved : 7; 150 RK_U32 dspr_otsd : 1; 151 RK_U32 reserved1 : 8; 152 RK_U32 axi_brsp_cke : 8; 153 RK_U32 reserved2 : 8; 154 } reg0013_dtrns_cfg; 155 156 /* 0x00000038 reg14 */ 157 struct { 158 RK_U32 vs_load_thd : 24; 159 RK_U32 rfp_load_thd : 8; 160 } reg0014_enc_wdg; 161 162 /* 0x0000003c reg15 */ 163 struct { 164 RK_U32 hurry_en : 1; 165 RK_U32 hurry_low : 3; 166 RK_U32 hurry_mid : 3; 167 RK_U32 hurry_high : 3; 168 RK_U32 reserved : 22; 169 } reg0015_qos_cfg; 170 171 /* 0x00000040 reg16 */ 172 struct { 173 RK_U32 qos_period : 16; 174 RK_U32 reserved : 16; 175 } reg0016_qos_perd; 176 177 /* 0x00000044 reg17 */ 178 RK_U32 reg0017_hurry_thd_low; 179 180 /* 0x00000048 reg18 */ 181 RK_U32 reg0018_hurry_thd_mid; 182 183 /* 0x0000004c reg19 */ 184 RK_U32 reg0019_hurry_thd_high; 185 186 /* 0x00000050 reg20 */ 187 struct { 188 RK_U32 idle_en_core : 1; 189 RK_U32 idle_en_axi : 1; 190 RK_U32 idle_en_ahb : 1; 191 RK_U32 reserved : 29; 192 } reg0020_enc_idle_en; 193 194 /* 0x00000054 reg21 */ 195 struct { 196 RK_U32 cke : 1; 197 RK_U32 resetn_hw_en : 1; 198 RK_U32 enc_done_tmvp_en : 1; 199 RK_U32 sram_ckg_en : 1; 200 RK_U32 reserved : 28; 201 } reg0021_func_en; 202 203 /* 0x00000058 reg22 */ 204 struct { 205 RK_U32 recon32_ckg : 1; 206 RK_U32 iqit32_ckg : 1; 207 RK_U32 q32_ckg : 1; 208 RK_U32 t32_ckg : 1; 209 RK_U32 cabac32_ckg : 1; 210 RK_U32 recon16_ckg : 1; 211 RK_U32 iqit16_ckg : 1; 212 RK_U32 q16_ckg : 1; 213 RK_U32 t16_ckg : 1; 214 RK_U32 cabac16_ckg : 1; 215 RK_U32 recon8_ckg : 1; 216 RK_U32 iqit8_ckg : 1; 217 RK_U32 q8_ckg : 1; 218 RK_U32 t8_ckg : 1; 219 RK_U32 cabac8_ckg : 1; 220 RK_U32 recon4_ckg : 1; 221 RK_U32 iqit4_ckg : 1; 222 RK_U32 q4_ckg : 1; 223 RK_U32 t4_ckg : 1; 224 RK_U32 cabac4_ckg : 1; 225 RK_U32 intra32_ckg : 1; 226 RK_U32 intra16_ckg : 1; 227 RK_U32 intra8_ckg : 1; 228 RK_U32 intra4_ckg : 1; 229 RK_U32 inter_pred_ckg : 1; 230 RK_U32 reserved : 7; 231 } reg0022_rdo_ckg_hevc; 232 233 /* 0x0000005c reg23 */ 234 struct { 235 RK_U32 core_id : 2; 236 RK_U32 reserved : 30; 237 } reg0023_enc_id; 238 } hevc_vepu580_control_cfg; 239 240 /* class: buffer/video syntax */ 241 /* 0x00000280 reg160 - 0x000003f4 reg253*/ 242 typedef struct HevcVepu580Base_t { 243 /* 0x00000280 reg160 */ 244 RK_U32 reg0160_adr_src0; 245 246 /* 0x00000284 reg161 */ 247 RK_U32 reg0161_adr_src1; 248 249 /* 0x00000288 reg162 */ 250 RK_U32 reg0162_adr_src2; 251 252 /* 0x0000028c reg163 */ 253 RK_U32 reg0163_rfpw_h_addr; 254 255 /* 0x00000290 reg164 */ 256 RK_U32 reg0164_rfpw_b_addr; 257 258 /* 0x00000294 reg165 */ 259 RK_U32 reg0165_rfpr_h_addr; 260 261 /* 0x00000298 reg166 */ 262 RK_U32 reg0166_rfpr_b_addr; 263 264 /* 0x0000029c reg167 */ 265 RK_U32 reg0167_cmvw_addr; 266 267 /* 0x000002a0 reg168 */ 268 RK_U32 reg0168_cmvr_addr; 269 270 /* 0x000002a4 reg169 */ 271 RK_U32 reg0169_dspw_addr; 272 273 /* 0x000002a8 reg170 */ 274 RK_U32 reg0170_dspr_addr; 275 276 /* 0x000002ac reg171 */ 277 RK_U32 reg0171_meiw_addr; 278 279 /* 0x000002b0 reg172 */ 280 RK_U32 reg0172_bsbt_addr; 281 282 /* 0x000002b4 reg173 */ 283 RK_U32 reg0173_bsbb_addr; 284 285 /* 0x000002b8 reg174 */ 286 RK_U32 reg0174_bsbr_addr; 287 288 /* 0x000002bc reg175 */ 289 RK_U32 reg0175_adr_bsbs; 290 291 /* 0x000002c0 reg176 */ 292 RK_U32 reg0176_lpfw_addr; 293 294 /* 0x000002c4 reg177 */ 295 RK_U32 reg0177_lpfr_addr; 296 297 /* 0x000002c8 reg178 */ 298 RK_U32 reg0178_roi_addr; 299 300 /* 0x000002cc reg179 */ 301 RK_U32 reg0179_roi_qp_addr; 302 303 /* 0x000002d0 reg180 */ 304 RK_U32 reg0180_roi_amv_addr; 305 306 /* 0x000002d4 reg181 */ 307 RK_U32 reg0181_roi_mv_addr; 308 309 /* 0x000002d8 reg182 */ 310 RK_U32 reg0182_ebuft_addr; 311 312 /* 0x000002dc reg183 */ 313 RK_U32 reg183_ebufb_addr; 314 315 /* 0x2e0 - 0x2fc */ 316 RK_U32 reserved184_191[8]; 317 318 /* 0x00000300 reg192 */ 319 struct { 320 RK_U32 enc_stnd : 1; 321 RK_U32 roi_en : 1; 322 RK_U32 cur_frm_ref : 1; 323 RK_U32 mei_stor : 1; 324 RK_U32 bs_scp : 1; 325 RK_U32 reserved : 3; 326 RK_U32 pic_qp : 6; 327 RK_U32 num_pic_tot_cur : 5; 328 RK_U32 log2_ctu_num : 5; 329 RK_U32 reserved1 : 6; 330 RK_U32 slen_fifo : 1; 331 RK_U32 rec_fbc_dis : 1; 332 } reg0192_enc_pic; 333 334 /* 0x00000304 reg193 */ 335 struct { 336 RK_U32 dchs_txid : 2; 337 RK_U32 dchs_rxid : 2; 338 RK_U32 dchs_txe : 1; 339 RK_U32 dchs_rxe : 1; 340 RK_U32 reserved : 10; 341 RK_U32 dchs_ofst : 11; 342 RK_U32 reserved1 : 5; 343 } reg0193_dual_core; 344 345 /* 0x308 - 0x30c */ 346 RK_U32 reserved194_195[2]; 347 348 /* 0x00000310 reg196 */ 349 struct { 350 RK_U32 pic_wd8_m1 : 11; 351 RK_U32 reserved : 5; 352 RK_U32 pic_hd8_m1 : 11; 353 RK_U32 reserved1 : 5; 354 } reg0196_enc_rsl; 355 356 /* 0x00000314 reg197 */ 357 struct { 358 RK_U32 pic_wfill : 6; 359 RK_U32 reserved : 10; 360 RK_U32 pic_hfill : 6; 361 RK_U32 reserved1 : 10; 362 } reg0197_src_fill; 363 364 /* 0x00000318 reg198 */ 365 struct { 366 RK_U32 alpha_swap : 1; 367 RK_U32 rbuv_swap : 1; 368 RK_U32 src_cfmt : 4; 369 RK_U32 src_range : 1; 370 RK_U32 out_fmt : 1; 371 RK_U32 reserved : 24; 372 } reg0198_src_fmt; 373 374 /* 0x0000031c reg199 */ 375 struct { 376 RK_U32 csc_wgt_b2y : 9; 377 RK_U32 csc_wgt_g2y : 9; 378 RK_U32 csc_wgt_r2y : 9; 379 RK_U32 reserved : 5; 380 } reg0199_src_udfy; 381 382 /* 0x00000320 reg200 */ 383 struct { 384 RK_U32 csc_wgt_b2u : 9; 385 RK_U32 csc_wgt_g2u : 9; 386 RK_U32 csc_wgt_r2u : 9; 387 RK_U32 reserved : 5; 388 } reg0200_src_udfu; 389 390 /* 0x00000324 reg201 */ 391 struct { 392 RK_U32 csc_wgt_b2v : 9; 393 RK_U32 csc_wgt_g2v : 9; 394 RK_U32 csc_wgt_r2v : 9; 395 RK_U32 reserved : 5; 396 } reg0201_src_udfv; 397 398 /* 0x00000328 reg202 */ 399 struct { 400 RK_U32 csc_ofst_v : 8; 401 RK_U32 csc_ofst_u : 8; 402 RK_U32 csc_ofst_y : 5; 403 RK_U32 reserved : 11; 404 } reg0202_src_udfo; 405 406 /* 0x0000032c reg203 */ 407 struct { 408 RK_U32 reserved0 : 26; 409 RK_U32 src_mirr : 1; 410 RK_U32 src_rot : 2; 411 RK_U32 txa_en : 1; 412 RK_U32 afbcd_en : 1; 413 RK_U32 reserved1 : 1; 414 } reg0203_src_proc; 415 416 /* 0x00000330 reg204 */ 417 struct { 418 RK_U32 pic_ofst_x : 14; 419 RK_U32 reserved : 2; 420 RK_U32 pic_ofst_y : 14; 421 RK_U32 reserved1 : 2; 422 } reg0204_pic_ofst; 423 424 /* 0x00000334 reg205 */ 425 struct { 426 RK_U32 src_strd0 : 17; 427 RK_U32 reserved : 15; 428 } reg0205_src_strd0; 429 430 /* 0x00000338 reg206 */ 431 struct { 432 RK_U32 src_strd1 : 16; 433 RK_U32 reserved : 16; 434 } reg0206_src_strd1; 435 436 /* 0x33c - 0x34c */ 437 RK_U32 reserved207_211[5]; 438 439 /* 0x00000350 reg212 */ 440 struct { 441 RK_U32 rc_en : 1; 442 RK_U32 aq_en : 1; 443 RK_U32 aq_mode : 1; 444 RK_U32 reserved : 9; 445 RK_U32 rc_ctu_num : 20; 446 } reg212_rc_cfg; 447 448 /* 0x00000354 reg213 */ 449 struct { 450 RK_U32 reserved : 16; 451 RK_U32 rc_qp_range : 4; 452 RK_U32 rc_max_qp : 6; 453 RK_U32 rc_min_qp : 6; 454 } reg213_rc_qp; 455 456 /* 0x00000358 reg214 */ 457 struct { 458 RK_U32 ctu_ebit : 20; 459 RK_U32 reserved : 12; 460 } reg214_rc_tgt; 461 462 /* 0x35c */ 463 RK_U32 reserved_215; 464 465 /* 0x00000360 reg216 */ 466 struct { 467 RK_U32 sli_splt : 1; 468 RK_U32 sli_splt_mode : 1; 469 RK_U32 sli_splt_cpst : 1; 470 RK_U32 reserved : 12; 471 RK_U32 sli_flsh : 1; 472 RK_U32 sli_max_num_m1 : 15; 473 RK_U32 reserved1 : 1; 474 } reg0216_sli_splt; 475 476 /* 0x00000364 reg217 */ 477 struct { 478 RK_U32 sli_splt_byte : 20; 479 RK_U32 reserved : 12; 480 } reg0217_sli_byte; 481 482 /* 0x00000368 reg218 */ 483 struct { 484 RK_U32 sli_splt_cnum_m1 : 20; 485 RK_U32 reserved : 12; 486 } reg0218_sli_cnum; 487 488 /* 0x36c */ 489 RK_U32 reserved_219; 490 491 /* 0x00000370 reg220 */ 492 struct { 493 RK_U32 cme_srch_h : 4; 494 RK_U32 cme_srch_v : 4; 495 RK_U32 rme_srch_h : 3; 496 RK_U32 rme_srch_v : 3; 497 RK_U32 reserved : 2; 498 RK_U32 dlt_frm_num : 16; 499 } reg0220_me_rnge; 500 501 /* 0x00000374 reg221 */ 502 struct { 503 RK_U32 pmv_mdst_h : 8; 504 RK_U32 pmv_mdst_v : 8; 505 RK_U32 mv_limit : 2; 506 RK_U32 pmv_num : 2; 507 RK_U32 colmv_stor : 1; 508 RK_U32 colmv_load : 1; 509 RK_U32 reserved1 : 1; 510 RK_U32 rme_dis : 4; 511 RK_U32 reserved2 : 1; 512 RK_U32 fme_dis : 4; 513 } reg0221_me_cfg; 514 515 516 /* 0x00000378 reg222 */ 517 struct { 518 RK_U32 cme_rama_max : 11; 519 RK_U32 cme_rama_h : 5; 520 RK_U32 cach_l2_tag : 2; 521 RK_U32 cme_linebuf_w : 9; 522 RK_U32 reserved : 5; 523 } reg0222_me_cach; 524 525 /* 0x37c */ 526 RK_U32 reserved_223; 527 528 /* 0x00000380 reg224 */ 529 struct { 530 RK_U32 gmv_x : 13; 531 RK_U32 reserved : 3; 532 RK_U32 gmv_y : 13; 533 RK_U32 reserved1 : 3; 534 } reg0224_gmv; 535 536 /* 0x384 - 0x38c */ 537 RK_U32 reserved225_227[3]; 538 539 /* 0x00000390 reg228 */ 540 struct { 541 RK_U32 roi_qp_en : 1; 542 RK_U32 roi_amv_en : 1; 543 RK_U32 roi_mv_en : 1; 544 RK_U32 reserved : 29; 545 } reg0228_roi_en; 546 547 /* 0x394 - 0x39c */ 548 RK_U32 reserved229_231[3]; 549 550 /* 0x000003a0 reg232 */ 551 struct { 552 RK_U32 ltm_col : 1; 553 RK_U32 ltm_idx0l0 : 1; 554 RK_U32 chrm_spcl : 1; 555 RK_U32 cu_inter_e : 12; 556 RK_U32 reserved : 4; 557 RK_U32 cu_intra_e : 4; 558 RK_U32 ccwa_e : 1; 559 RK_U32 scl_lst_sel : 2; 560 RK_U32 reserved1 : 2; 561 RK_U32 satd_byps_flg : 4; 562 } reg0232_rdo_cfg; 563 564 /* 0x000003a4 reg233 */ 565 struct { 566 RK_U32 vthd_y : 12; 567 RK_U32 reserved : 4; 568 RK_U32 vthd_c : 12; 569 RK_U32 reserved1 : 4; 570 } reg0233_iprd_csts; 571 572 /* 0x3a8 - 0x3ac */ 573 RK_U32 reserved234_235[2]; 574 575 /* 0x000003b0 reg236 */ 576 577 struct { 578 RK_U32 nal_unit_type : 6; 579 RK_U32 reserved : 26; 580 } reg0236_synt_nal; 581 582 /* 0x000003b4 reg237 */ 583 struct { 584 RK_U32 smpl_adpt_ofst_e : 1; 585 RK_U32 num_st_ref_pic : 7; 586 RK_U32 lt_ref_pic_prsnt : 1; 587 RK_U32 num_lt_ref_pic : 6; 588 RK_U32 tmpl_mvp_e : 1; 589 RK_U32 log2_max_poc_lsb : 4; 590 RK_U32 strg_intra_smth : 1; 591 RK_U32 reserved : 11; 592 } reg0237_synt_sps; 593 594 /* 0x000003b8 reg238 */ 595 struct { 596 RK_U32 dpdnt_sli_seg_en : 1; 597 RK_U32 out_flg_prsnt_flg : 1; 598 RK_U32 num_extr_sli_hdr : 3; 599 RK_U32 sgn_dat_hid_en : 1; 600 RK_U32 cbc_init_prsnt_flg : 1; 601 RK_U32 pic_init_qp : 6; 602 RK_U32 cu_qp_dlt_en : 1; 603 RK_U32 chrm_qp_ofst_prsn : 1; 604 RK_U32 lp_fltr_acrs_sli : 1; 605 RK_U32 dblk_fltr_ovrd_en : 1; 606 RK_U32 lst_mdfy_prsnt_flg : 1; 607 RK_U32 sli_seg_hdr_extn : 1; 608 RK_U32 cu_qp_dlt_depth : 2; 609 RK_U32 lpf_fltr_acrs_til : 1; 610 RK_U32 reserved : 10; 611 } reg0238_synt_pps; 612 613 /* 0x000003bc reg239 */ 614 struct { 615 RK_U32 cbc_init_flg : 1; 616 RK_U32 mvd_l1_zero_flg : 1; 617 RK_U32 mrg_up_flg : 1; 618 RK_U32 mrg_lft_flg : 1; 619 RK_U32 reserved : 1; 620 RK_U32 ref_pic_lst_mdf_l0 : 1; 621 RK_U32 num_refidx_l1_act : 2; 622 RK_U32 num_refidx_l0_act : 2; 623 RK_U32 num_refidx_act_ovrd : 1; 624 RK_U32 sli_sao_chrm_flg : 1; 625 RK_U32 sli_sao_luma_flg : 1; 626 RK_U32 sli_tmprl_mvp_e : 1; 627 RK_U32 pic_out_flg : 1; 628 RK_U32 sli_type : 2; 629 RK_U32 sli_rsrv_flg : 7; 630 RK_U32 dpdnt_sli_seg_flg : 1; 631 RK_U32 sli_pps_id : 6; 632 RK_U32 no_out_pri_pic : 1; 633 } reg0239_synt_sli0; 634 635 /* 0x000003c0 reg240 */ 636 struct { 637 RK_U32 sp_tc_ofst_div2 : 4; 638 RK_U32 sp_beta_ofst_div2 : 4; 639 RK_U32 sli_lp_fltr_acrs_sli : 1; 640 RK_U32 sp_dblk_fltr_dis : 1; 641 RK_U32 dblk_fltr_ovrd_flg : 1; 642 RK_U32 sli_cb_qp_ofst : 5; 643 RK_U32 sli_qp : 6; 644 RK_U32 max_mrg_cnd : 2; 645 RK_U32 reserved : 1; 646 RK_U32 col_ref_idx : 1; 647 RK_U32 col_frm_l0_flg : 1; 648 RK_U32 lst_entry_l0 : 4; 649 RK_U32 reserved1 : 1; 650 } reg0240_synt_sli1; 651 652 /* 0x000003c4 reg241 */ 653 struct { 654 RK_U32 sli_poc_lsb : 16; 655 RK_U32 sli_hdr_ext_len : 9; 656 RK_U32 reserved : 7; 657 } reg0241_synt_sli2; 658 659 /* 0x000003c8 reg242 */ 660 661 struct { 662 RK_U32 st_ref_pic_flg : 1; 663 RK_U32 poc_lsb_lt0 : 16; 664 RK_U32 lt_idx_sps : 5; 665 RK_U32 num_lt_pic : 2; 666 RK_U32 st_ref_pic_idx : 6; 667 RK_U32 num_lt_sps : 2; 668 } reg0242_synt_refm0; 669 670 /* 0x000003cc reg243 */ 671 struct { 672 RK_U32 used_by_s0_flg : 4; 673 RK_U32 num_pos_pic : 1; 674 RK_U32 num_negative_pics : 5; 675 RK_U32 dlt_poc_msb_cycl0 : 16; 676 RK_U32 dlt_poc_msb_prsnt0 : 1; 677 RK_U32 dlt_poc_msb_prsnt1 : 1; 678 RK_U32 dlt_poc_msb_prsnt2 : 1; 679 RK_U32 used_by_lt_flg0 : 1; 680 RK_U32 used_by_lt_flg1 : 1; 681 RK_U32 used_by_lt_flg2 : 1; 682 } reg0243_synt_refm1; 683 684 /* 0x000003d0 reg244 */ 685 struct { 686 RK_U32 dlt_poc_s0_m10 : 16; 687 RK_U32 dlt_poc_s0_m11 : 16; 688 } reg0244_synt_refm2; 689 /* 0x000003d4 reg245 */ 690 struct { 691 RK_U32 dlt_poc_s0_m12 : 16; 692 RK_U32 dlt_poc_s0_m13 : 16; 693 } reg0245_synt_refm3; 694 695 /* 0x000003d8 reg246 */ 696 struct { 697 RK_U32 poc_lsb_lt1 : 16; 698 RK_U32 poc_lsb_lt2 : 16; 699 } reg0246_synt_long_refm0; 700 701 /* 0x000003dc reg247 */ 702 struct { 703 RK_U32 dlt_poc_msb_cycl1 : 16; 704 RK_U32 dlt_poc_msb_cycl2 : 16; 705 } reg0247_synt_long_refm1; 706 707 /* 0x3e0 - 0x3ec */ 708 RK_U32 reserved248_251[4]; 709 710 /* 0x000003f0 reg252 */ 711 712 struct { 713 RK_U32 tile_w_m1 : 8; 714 RK_U32 reserved : 8; 715 RK_U32 tile_h_m1 : 8; 716 RK_U32 reserved1 : 7; 717 RK_U32 tile_en : 1; 718 } reg0252_tile_cfg; 719 /* 0x000003f4 reg253 */ 720 struct { 721 RK_U32 tile_x : 8; 722 RK_U32 reserved : 8; 723 RK_U32 tile_y : 8; 724 RK_U32 reserved1 : 8; 725 } reg0253_tile_pos; 726 } hevc_vepu580_base; 727 728 /* class: rc/roi/aq/klut */ 729 /* 0x00001000 reg1024 - 0x000010e0 reg1080 */ 730 typedef struct HevcVepu580RcKlut_t { 731 /* 0x00001000 reg1024 */ 732 struct { 733 RK_U32 qp_adj0 : 5; 734 RK_U32 qp_adj1 : 5; 735 RK_U32 qp_adj2 : 5; 736 RK_U32 qp_adj3 : 5; 737 RK_U32 qp_adj4 : 5; 738 RK_U32 reserved : 7; 739 } rc_adj0; 740 741 /* 0x00001004 reg1025 */ 742 struct { 743 RK_U32 qp_adj5 : 5; 744 RK_U32 qp_adj6 : 5; 745 RK_U32 qp_adj7 : 5; 746 RK_U32 qp_adj8 : 5; 747 RK_U32 reserved : 12; 748 } rc_adj1; 749 750 /* 0x00001008 reg1026 - 0x00001028 reg1034 */ 751 RK_U32 rc_dthd_0_8[9]; 752 753 /* 0x102c */ 754 RK_U32 reserved_1035; 755 756 /* 0x00001030 reg1036 */ 757 struct { 758 RK_U32 qpmin_area0 : 6; 759 RK_U32 qpmax_area0 : 6; 760 RK_U32 qpmin_area1 : 6; 761 RK_U32 qpmax_area1 : 6; 762 RK_U32 qpmin_area2 : 6; 763 RK_U32 reserved : 2; 764 } roi_qthd0; 765 766 /* 0x00001034 reg1037 */ 767 struct { 768 RK_U32 qpmax_area2 : 6; 769 RK_U32 qpmin_area3 : 6; 770 RK_U32 qpmax_area3 : 6; 771 RK_U32 qpmin_area4 : 6; 772 RK_U32 qpmax_area4 : 6; 773 RK_U32 reserved : 2; 774 } roi_qthd1; 775 776 /* 0x00001038 reg1038 */ 777 struct { 778 RK_U32 qpmin_area5 : 6; 779 RK_U32 qpmax_area5 : 6; 780 RK_U32 qpmin_area6 : 6; 781 RK_U32 qpmax_area6 : 6; 782 RK_U32 qpmin_area7 : 6; 783 RK_U32 reserved : 2; 784 } roi_qthd2; 785 786 /* 0x0000103c reg1039 */ 787 struct { 788 RK_U32 qpmax_area7 : 6; 789 RK_U32 reserved : 24; 790 RK_U32 qpmap_mode : 2; 791 } roi_qthd3; 792 793 /* 0x00001040 reg1040 */ 794 struct { 795 RK_U32 madi_mode : 1; 796 RK_U32 reserved : 15; 797 RK_U32 madi_thd : 8; 798 RK_U32 reserved1 : 8; 799 } madi_cfg; 800 801 /* 0x00001044 reg1041 */ 802 struct { 803 RK_U32 aq_tthd0 : 8; 804 RK_U32 aq_tthd1 : 8; 805 RK_U32 aq_tthd2 : 8; 806 RK_U32 aq_tthd3 : 8; 807 } aq_tthd0; 808 809 /* 0x00001048 reg1042 */ 810 struct { 811 RK_U32 aq_tthd4 : 8; 812 RK_U32 aq_tthd5 : 8; 813 RK_U32 aq_tthd6 : 8; 814 RK_U32 aq_tthd7 : 8; 815 } aq_tthd1; 816 817 /* 0x0000104c reg1043 */ 818 struct { 819 RK_U32 aq_tthd8 : 8; 820 RK_U32 aq_tthd9 : 8; 821 RK_U32 aq_tthd10 : 8; 822 RK_U32 aq_tthd11 : 8; 823 } aq_tthd2; 824 825 /* 0x00001050 reg1044 */ 826 struct { 827 RK_U32 aq_tthd12 : 8; 828 RK_U32 aq_tthd13 : 8; 829 RK_U32 aq_tthd14 : 8; 830 RK_U32 aq_tthd15 : 8; 831 } aq_tthd3; 832 833 /* 0x00001054 reg1045 */ 834 struct { 835 RK_U32 aq_stp_s0 : 6; 836 RK_U32 reserved : 2; 837 RK_U32 aq_stp_0t1 : 6; 838 RK_U32 reserved1 : 2; 839 RK_U32 aq_stp_1t2 : 6; 840 RK_U32 reserved2 : 2; 841 RK_U32 aq_stp_2t3 : 6; 842 RK_U32 reserved3 : 2; 843 } aq_stp0; 844 845 /* 0x00001058 reg1046 */ 846 struct { 847 RK_U32 aq_stp_3t4 : 6; 848 RK_U32 reserved : 2; 849 RK_U32 aq_stp_4t5 : 6; 850 RK_U32 reserved1 : 2; 851 RK_U32 aq_stp_5t6 : 6; 852 RK_U32 reserved2 : 2; 853 RK_U32 aq_stp_6t7 : 6; 854 RK_U32 reserved3 : 2; 855 } aq_stp1; 856 857 /* 0x0000105c reg1047 */ 858 struct { 859 RK_U32 aq_stp_8t9 : 6; 860 RK_U32 reserved : 2; 861 RK_U32 aq_stp_9t10 : 6; 862 RK_U32 reserved1 : 2; 863 RK_U32 aq_stp_10t11 : 6; 864 RK_U32 reserved2 : 2; 865 RK_U32 aq_stp_11t12 : 6; 866 RK_U32 reserved3 : 2; 867 } aq_stp2; 868 869 /* 0x00001060 reg1048 */ 870 struct { 871 RK_U32 aq_stp_12t13 : 6; 872 RK_U32 reserved : 2; 873 RK_U32 aq_stp_13t14 : 6; 874 RK_U32 reserved1 : 2; 875 RK_U32 aq_stp_14t15 : 6; 876 RK_U32 reserved2 : 2; 877 RK_U32 aq_stp_b15 : 6; 878 RK_U32 reserved3 : 2; 879 } aq_stp3; 880 881 /* 0x1064 - 0x106c */ 882 RK_U32 reserved1049_1051[3]; 883 884 /* 0x00001070 reg1052 */ 885 struct { 886 RK_U32 md_sad_thd0 : 8; 887 RK_U32 md_sad_thd1 : 8; 888 RK_U32 md_sad_thd2 : 8; 889 RK_U32 reserved : 8; 890 } md_sad_thd; 891 892 /* 0x00001074 reg1053 */ 893 struct { 894 RK_U32 madi_thd0 : 8; 895 RK_U32 madi_thd1 : 8; 896 RK_U32 madi_thd2 : 8; 897 RK_U32 reserved : 8; 898 } madi_thd; 899 900 /* 0x1078 - 0x107c */ 901 RK_U32 reserved1054_1055[2]; 902 903 /* 0x00001080 reg1056 */ 904 struct { 905 RK_U32 chrm_klut_ofst : 3; 906 RK_U32 reserved : 29; 907 } klut_ofst; 908 909 /* 0x00001084 reg1057 */ 910 struct { 911 RK_U32 chrm_klut_wgt0 : 18; 912 RK_U32 reserved : 5; 913 RK_U32 chrm_klut_wgt1_l9 : 9; 914 } klut_wgt0; 915 916 /* 0x00001088 reg1058 */ 917 struct { 918 RK_U32 chrm_klut_wgt1_h9 : 9; 919 RK_U32 reserved : 5; 920 RK_U32 chrm_klut_wgt2 : 18; 921 } klut_wgt1; 922 923 /* 0x0000108c reg1059 */ 924 struct { 925 RK_U32 chrm_klut_wgt3 : 18; 926 RK_U32 reserved : 5; 927 RK_U32 chrm_klut_wgt4_l9 : 9; 928 } klut_wgt2; 929 930 /* 0x00001090 reg1060 */ 931 struct { 932 RK_U32 chrm_klut_wgt4_h9 : 9; 933 RK_U32 reserved : 5; 934 RK_U32 chrm_klut_wgt5 : 18; 935 } klut_wgt3; 936 937 /* 0x00001094 reg1061 */ 938 struct { 939 RK_U32 chrm_klut_wgt6 : 18; 940 RK_U32 reserved : 5; 941 RK_U32 chrm_klut_wgt7_l9 : 9; 942 } klut_wgt4; 943 944 /* 0x00001098 reg1062 */ 945 struct { 946 RK_U32 chrm_klut_wgt7_h9 : 9; 947 RK_U32 reserved : 5; 948 RK_U32 chrm_klut_wgt8 : 18; 949 } klut_wgt5; 950 951 /* 0x0000109c reg1063 */ 952 struct { 953 RK_U32 chrm_klut_wgt9 : 18; 954 RK_U32 reserved : 5; 955 RK_U32 chrm_klut_wgt10_l9 : 9; 956 } klut_wgt6; 957 958 /* 0x000010a0 reg1064 */ 959 struct { 960 RK_U32 chrm_klut_wgt10_h9 : 9; 961 RK_U32 reserved : 5; 962 RK_U32 chrm_klut_wgt11 : 18; 963 } klut_wgt7; 964 965 /* 0x000010a4 reg1065 */ 966 struct { 967 RK_U32 chrm_klut_wgt12 : 18; 968 RK_U32 reserved : 5; 969 RK_U32 chrm_klut_wgt13_l9 : 9; 970 } klut_wgt8; 971 972 /* 0x000010a8 reg1066 */ 973 struct { 974 RK_U32 chrm_klut_wgt13_h9 : 9; 975 RK_U32 reserved : 5; 976 RK_U32 chrm_klut_wgt14 : 18; 977 } klut_wgt9; 978 979 /* 0x000010ac reg1067 */ 980 struct { 981 RK_U32 chrm_klut_wgt15 : 18; 982 RK_U32 reserved : 5; 983 RK_U32 chrm_klut_wgt16_l9 : 9; 984 } klut_wgt10; 985 986 /* 0x000010b0 reg1068 */ 987 struct { 988 RK_U32 chrm_klut_wgt16_h9 : 9; 989 RK_U32 reserved : 5; 990 RK_U32 chrm_klut_wgt17 : 18; 991 } klut_wgt11; 992 993 /* 0x000010b4 reg1069 */ 994 struct { 995 RK_U32 chrm_klut_wgt18 : 18; 996 RK_U32 reserved : 5; 997 RK_U32 chrm_klut_wgt19_l9 : 9; 998 } klut_wgt12; 999 1000 /* 0x000010b8 reg1070 */ 1001 struct { 1002 RK_U32 chrm_klut_wgt19_h9 : 9; 1003 RK_U32 reserved : 5; 1004 RK_U32 chrm_klut_wgt20 : 18; 1005 } klut_wgt13; 1006 1007 /* 0x000010bc reg1071 */ 1008 struct { 1009 RK_U32 chrm_klut_wgt21 : 18; 1010 RK_U32 reserved : 5; 1011 RK_U32 chrm_klut_wgt22_l9 : 9; 1012 } klut_wgt14; 1013 1014 /* 0x000010c0 reg1072 */ 1015 struct { 1016 RK_U32 chrm_klut_wgt22_h9 : 9; 1017 RK_U32 reserved : 5; 1018 RK_U32 chrm_klut_wgt23 : 18; 1019 } klut_wgt15; 1020 1021 /* 0x000010c4 reg1073 */ 1022 struct { 1023 RK_U32 chrm_klut_wgt24 : 18; 1024 RK_U32 reserved : 5; 1025 RK_U32 chrm_klut_wgt25_l9 : 9; 1026 } klut_wgt16; 1027 1028 /* 0x000010c8 reg1074 */ 1029 struct { 1030 RK_U32 chrm_klut_wgt25_h9 : 9; 1031 RK_U32 reserved : 5; 1032 RK_U32 chrm_klut_wgt26 : 18; 1033 } klut_wgt17; 1034 1035 /* 0x000010cc reg1075 */ 1036 struct { 1037 RK_U32 chrm_klut_wgt27 : 18; 1038 RK_U32 reserved : 5; 1039 RK_U32 chrm_klut_wgt28_l9 : 9; 1040 } klut_wgt18; 1041 1042 /* 0x000010d0 reg1076 */ 1043 struct { 1044 RK_U32 chrm_klut_wgt28_h9 : 9; 1045 RK_U32 reserved : 5; 1046 RK_U32 chrm_klut_wgt29 : 18; 1047 } klut_wgt19; 1048 1049 /* 0x000010d4 reg1077 */ 1050 struct { 1051 RK_U32 chrm_klut_wgt30 : 18; 1052 RK_U32 reserved : 5; 1053 RK_U32 chrm_klut_wgt31_l9 : 9; 1054 } klut_wgt20; 1055 1056 /* 0x000010d8 reg1078 */ 1057 struct { 1058 RK_U32 chrm_klut_wgt31_h9 : 9; 1059 RK_U32 reserved : 5; 1060 RK_U32 chrm_klut_wgt32 : 18; 1061 } klut_wgt21; 1062 1063 /* 0x000010dc reg1079 */ 1064 struct { 1065 RK_U32 chrm_klut_wgt33 : 18; 1066 RK_U32 reserved : 5; 1067 RK_U32 chrm_klut_wgt34_l9 : 9; 1068 } klut_wgt22; 1069 1070 /* 0x000010e0 reg1080 */ 1071 struct { 1072 RK_U32 chrm_klut_wgt34_h9 : 9; 1073 RK_U32 reserved : 23; 1074 } klut_wgt23; 1075 } hevc_vepu580_rc_klut; 1076 1077 /* class: iprd/iprd_wgt/rdo_wgta/prei_dif/sobel */ 1078 /* 0x00001700 reg1472 - 0x00001cd4 reg1845 */ 1079 typedef struct HevcVepu580Wgt_t { 1080 /* 0x00001700 reg1472 */ 1081 struct { 1082 RK_U32 lvl32_intra_cst_thd0 : 12; 1083 RK_U32 reserved0 : 4; 1084 RK_U32 lvl32_intra_cst_thd1 : 12; 1085 RK_U32 reserved1 : 4; 1086 } lvl32_intra_CST_THD0; 1087 1088 /* 0x1704 */ 1089 struct { 1090 RK_U32 lvl32_intra_cst_thd2 : 12; 1091 RK_U32 reserved0 : 4; 1092 RK_U32 lvl32_intra_cst_thd3 : 12; 1093 RK_U32 reserved1 : 4; 1094 } lvl32_intra_CST_THD1; 1095 1096 /* 0x1708 */ 1097 struct { 1098 RK_U32 lvl16_intra_cst_thd0 : 12; 1099 RK_U32 reserved0 : 4; 1100 RK_U32 lvl16_intra_cst_thd1 : 12; 1101 RK_U32 reserved1 : 4; 1102 } lvl16_intra_CST_THD0; 1103 1104 /* 0x170c */ 1105 struct { 1106 RK_U32 lvl16_intra_cst_thd2 : 12; 1107 RK_U32 reserved0 : 4; 1108 RK_U32 lvl16_intra_cst_thd3 : 12; 1109 RK_U32 reserved1 : 4; 1110 } lvl16_intra_CST_THD1; 1111 1112 /* 0x10-0x18 - reserved */ 1113 RK_U32 reserved_0x1710_0x0x1718[3]; 1114 1115 /* 0x171c */ 1116 struct { 1117 RK_U32 lvl32_intra_cst_wgt0 : 8; 1118 RK_U32 lvl32_intra_cst_wgt1 : 8; 1119 RK_U32 lvl32_intra_cst_wgt2 : 8; 1120 RK_U32 lvl32_intra_cst_wgt3 : 8; 1121 } lvl32_intra_CST_WGT0; 1122 1123 /* 0x1720 */ 1124 struct { 1125 RK_U32 lvl32_intra_cst_wgt4 : 8; 1126 RK_U32 lvl32_intra_cst_wgt5 : 8; 1127 RK_U32 lvl32_intra_cst_wgt6 : 8; 1128 RK_U32 reserved2 : 8; 1129 } lvl32_intra_CST_WGT1; 1130 1131 /* 0x1724 */ 1132 struct { 1133 RK_U32 lvl16_intra_cst_wgt0 : 8; 1134 RK_U32 lvl16_intra_cst_wgt1 : 8; 1135 RK_U32 lvl16_intra_cst_wgt2 : 8; 1136 RK_U32 lvl16_intra_cst_wgt3 : 8; 1137 } lvl16_intra_CST_WGT0; 1138 1139 /* 0x1728 */ 1140 struct { 1141 RK_U32 lvl16_intra_cst_wgt4 : 8; 1142 RK_U32 lvl16_intra_cst_wgt5 : 8; 1143 RK_U32 lvl16_intra_cst_wgt6 : 8; 1144 RK_U32 reserved2 : 8; 1145 } lvl16_intra_CST_WGT1; 1146 1147 1148 /* 0x172c */ 1149 RK_U32 reserved_1483; 1150 1151 /* 0x00001730 reg1484 */ 1152 struct { 1153 RK_U32 qnt_bias_i : 10; 1154 RK_U32 qnt_bias_p : 10; 1155 RK_U32 reserved : 12; 1156 } reg1484_qnt_bias_comb; 1157 1158 /* 0x1734 - 0x175c */ 1159 RK_U32 reserved1485_1495[11]; 1160 1161 /* 0x00001760 reg1496 */ 1162 struct { 1163 RK_U32 cime_sad_mod_sel : 1; 1164 RK_U32 cime_sad_use_big_block : 1; 1165 RK_U32 cime_pmv_set_zero : 1; 1166 RK_U32 reserved : 5; 1167 RK_U32 cime_pmv_num : 2; 1168 RK_U32 reserved1 : 22; 1169 } cime_sqi_cfg; 1170 1171 /* 0x00001764 reg1497 */ 1172 struct { 1173 RK_U32 cime_mvd_th0 : 9; 1174 RK_U32 reserved : 1; 1175 RK_U32 cime_mvd_th1 : 9; 1176 RK_U32 reserved1 : 1; 1177 RK_U32 cime_mvd_th2 : 9; 1178 RK_U32 reserved2 : 3; 1179 } cime_sqi_thd; 1180 1181 /* 0x00001768 reg1498 */ 1182 struct { 1183 RK_U32 cime_multi0 : 10; 1184 RK_U32 reserved : 6; 1185 RK_U32 cime_multi1 : 10; 1186 RK_U32 reserved1 : 6; 1187 } cime_sqi_multi0; 1188 1189 /* 0x0000176c reg1499 */ 1190 struct { 1191 RK_U32 cime_multi2 : 10; 1192 RK_U32 reserved : 6; 1193 RK_U32 cime_multi3 : 10; 1194 RK_U32 reserved1 : 6; 1195 } cime_sqi_multi1; 1196 1197 /* 0x00001770 reg1500 */ 1198 struct { 1199 RK_U32 cime_sad_th0 : 12; 1200 RK_U32 reserved : 4; 1201 RK_U32 rime_mvd_th0 : 4; 1202 RK_U32 reserved1 : 4; 1203 RK_U32 rime_mvd_th1 : 4; 1204 RK_U32 reserved2 : 4; 1205 } rime_sqi_thd; 1206 1207 /* 0x00001774 reg1501 */ 1208 struct { 1209 RK_U32 rime_multi0 : 10; 1210 RK_U32 rime_multi1 : 10; 1211 RK_U32 rime_multi2 : 10; 1212 RK_U32 reserved : 2; 1213 } rime_sqi_multi; 1214 1215 /* 0x00001778 reg1502 */ 1216 struct { 1217 RK_U32 cime_sad_pu16_th : 12; 1218 RK_U32 reserved : 4; 1219 RK_U32 cime_sad_pu32_th : 12; 1220 RK_U32 reserved1 : 4; 1221 } fme_sqi_thd0; 1222 1223 /* 0x0000177c reg1503 */ 1224 struct { 1225 RK_U32 cime_sad_pu64_th : 12; 1226 RK_U32 reserved : 4; 1227 RK_U32 move_lambda : 4; 1228 RK_U32 reserved1 : 12; 1229 } fme_sqi_thd1; 1230 1231 /* 0x1780 - 0x17fc */ 1232 RK_U32 reserved1504_1535[32]; 1233 1234 /* 0x00001800 reg1536 - 0x000018cc reg1587 */ 1235 // struct { 1236 // RK_U32 wgt_qp0 : 20; 1237 // RK_U32 reserved : 12; 1238 // } iprd_wgt_qp_hevc_0_51[52]; 1239 RK_U32 iprd_wgt_qp_hevc_0_51[52]; 1240 1241 /* 0x18d0 - 0x18fc */ 1242 RK_U32 reserved1588_1599[12]; 1243 1244 /* wgt_qp48_grpa */ 1245 /* 0x00001900 reg1600 */ 1246 RK_U32 rdo_wgta_qp_grpa_0_51[52]; 1247 1248 /* 0x19d0 - 0x1afc */ 1249 RK_U32 reserved1652_1727[76]; 1250 // 0x1b00 1251 1252 struct { 1253 RK_U32 pre_intra_cla0_m0 : 6; 1254 RK_U32 pre_intra_cla0_m1 : 6; 1255 RK_U32 pre_intra_cla0_m2 : 6; 1256 RK_U32 pre_intra_cla0_m3 : 6; 1257 RK_U32 pre_intra_cla0_m4 : 6; 1258 RK_U32 reserved : 2; 1259 } pre_intra_cla0_B0; 1260 1261 // 0x1b04 1262 struct { 1263 RK_U32 pre_intra_cla0_m5 : 6; 1264 RK_U32 pre_intra_cla0_m6 : 6; 1265 RK_U32 pre_intra_cla0_m7 : 6; 1266 RK_U32 pre_intra_cla0_m8 : 6; 1267 RK_U32 pre_intra_cla0_m9 : 6; 1268 RK_U32 reserved : 2; 1269 } pre_intra_cla0_B1; 1270 1271 // 0x1b08 1272 struct { 1273 RK_U32 pre_intra_cla1_m0 : 6; 1274 RK_U32 pre_intra_cla1_m1 : 6; 1275 RK_U32 pre_intra_cla1_m2 : 6; 1276 RK_U32 pre_intra_cla1_m3 : 6; 1277 RK_U32 pre_intra_cla1_m4 : 6; 1278 RK_U32 reserved : 2; 1279 } pre_intra_cla1_B0; 1280 1281 // 0x1b0c 1282 struct { 1283 RK_U32 pre_intra_cla1_m5 : 6; 1284 RK_U32 pre_intra_cla1_m6 : 6; 1285 RK_U32 pre_intra_cla1_m7 : 6; 1286 RK_U32 pre_intra_cla1_m8 : 6; 1287 RK_U32 pre_intra_cla1_m9 : 6; 1288 RK_U32 reserved : 2; 1289 } pre_intra_cla1_B1; 1290 1291 // 0x1b10 1292 // 0x0320 1293 struct { 1294 RK_U32 pre_intra_cla2_m0 : 6; 1295 RK_U32 pre_intra_cla2_m1 : 6; 1296 RK_U32 pre_intra_cla2_m2 : 6; 1297 RK_U32 pre_intra_cla2_m3 : 6; 1298 RK_U32 pre_intra_cla2_m4 : 6; 1299 RK_U32 reserved : 2; 1300 } pre_intra_cla2_B0; 1301 1302 // 0x1b14 1303 struct { 1304 RK_U32 pre_intra_cla2_m5 : 6; 1305 RK_U32 pre_intra_cla2_m6 : 6; 1306 RK_U32 pre_intra_cla2_m7 : 6; 1307 RK_U32 pre_intra_cla2_m8 : 6; 1308 RK_U32 pre_intra_cla2_m9 : 6; 1309 RK_U32 reserved : 2; 1310 } pre_intra_cla2_B1; 1311 1312 // 0x1b18 1313 struct { 1314 RK_U32 pre_intra_cla3_m0 : 6; 1315 RK_U32 pre_intra_cla3_m1 : 6; 1316 RK_U32 pre_intra_cla3_m2 : 6; 1317 RK_U32 pre_intra_cla3_m3 : 6; 1318 RK_U32 pre_intra_cla3_m4 : 6; 1319 RK_U32 reserved : 2; 1320 } pre_intra_cla3_B0; 1321 1322 // 0x1b1c 1323 struct { 1324 RK_U32 pre_intra_cla3_m5 : 6; 1325 RK_U32 pre_intra_cla3_m6 : 6; 1326 RK_U32 pre_intra_cla3_m7 : 6; 1327 RK_U32 pre_intra_cla3_m8 : 6; 1328 RK_U32 pre_intra_cla3_m9 : 6; 1329 RK_U32 reserved : 2; 1330 } pre_intra_cla3_B1; 1331 1332 // 0x1b20 1333 struct { 1334 RK_U32 pre_intra_cla4_m0 : 6; 1335 RK_U32 pre_intra_cla4_m1 : 6; 1336 RK_U32 pre_intra_cla4_m2 : 6; 1337 RK_U32 pre_intra_cla4_m3 : 6; 1338 RK_U32 pre_intra_cla4_m4 : 6; 1339 RK_U32 reserved : 2; 1340 } pre_intra_cla4_B0; 1341 1342 // 0x1b24 1343 struct { 1344 RK_U32 pre_intra_cla4_m5 : 6; 1345 RK_U32 pre_intra_cla4_m6 : 6; 1346 RK_U32 pre_intra_cla4_m7 : 6; 1347 RK_U32 pre_intra_cla4_m8 : 6; 1348 RK_U32 pre_intra_cla4_m9 : 6; 1349 RK_U32 reserved : 2; 1350 } pre_intra_cla4_B1; 1351 1352 // 0x1b28 1353 struct { 1354 RK_U32 pre_intra_cla5_m0 : 6; 1355 RK_U32 pre_intra_cla5_m1 : 6; 1356 RK_U32 pre_intra_cla5_m2 : 6; 1357 RK_U32 pre_intra_cla5_m3 : 6; 1358 RK_U32 pre_intra_cla5_m4 : 6; 1359 RK_U32 reserved : 2; 1360 } pre_intra_cla5_B0; 1361 1362 // 0x1b2c 1363 struct { 1364 RK_U32 pre_intra_cla5_m5 : 6; 1365 RK_U32 pre_intra_cla5_m6 : 6; 1366 RK_U32 pre_intra_cla5_m7 : 6; 1367 RK_U32 pre_intra_cla5_m8 : 6; 1368 RK_U32 pre_intra_cla5_m9 : 6; 1369 RK_U32 reserved : 2; 1370 } pre_intra_cla5_B1; 1371 1372 // 0x1b30 1373 struct { 1374 RK_U32 pre_intra_cla6_m0 : 6; 1375 RK_U32 pre_intra_cla6_m1 : 6; 1376 RK_U32 pre_intra_cla6_m2 : 6; 1377 RK_U32 pre_intra_cla6_m3 : 6; 1378 RK_U32 pre_intra_cla6_m4 : 6; 1379 RK_U32 reserved : 2; 1380 } pre_intra_cla6_B0; 1381 1382 // 0x1b34 1383 struct { 1384 RK_U32 pre_intra_cla6_m5 : 6; 1385 RK_U32 pre_intra_cla6_m6 : 6; 1386 RK_U32 pre_intra_cla6_m7 : 6; 1387 RK_U32 pre_intra_cla6_m8 : 6; 1388 RK_U32 pre_intra_cla6_m9 : 6; 1389 RK_U32 reserved : 2; 1390 } pre_intra_cla6_B1; 1391 1392 // 0x1b38 1393 struct { 1394 RK_U32 pre_intra_cla7_m0 : 6; 1395 RK_U32 pre_intra_cla7_m1 : 6; 1396 RK_U32 pre_intra_cla7_m2 : 6; 1397 RK_U32 pre_intra_cla7_m3 : 6; 1398 RK_U32 pre_intra_cla7_m4 : 6; 1399 RK_U32 reserved : 2; 1400 } pre_intra_cla7_B0; 1401 1402 // 0x1b3c 1403 struct { 1404 RK_U32 pre_intra_cla7_m5 : 6; 1405 RK_U32 pre_intra_cla7_m6 : 6; 1406 RK_U32 pre_intra_cla7_m7 : 6; 1407 RK_U32 pre_intra_cla7_m8 : 6; 1408 RK_U32 pre_intra_cla7_m9 : 6; 1409 RK_U32 reserved : 2; 1410 } pre_intra_cla7_B1; 1411 1412 // 0x1b40 1413 struct { 1414 RK_U32 pre_intra_cla8_m0 : 6; 1415 RK_U32 pre_intra_cla8_m1 : 6; 1416 RK_U32 pre_intra_cla8_m2 : 6; 1417 RK_U32 pre_intra_cla8_m3 : 6; 1418 RK_U32 pre_intra_cla8_m4 : 6; 1419 RK_U32 reserved : 2; 1420 } pre_intra_cla8_B0; 1421 1422 // 0x1b44 1423 struct { 1424 RK_U32 pre_intra_cla8_m5 : 6; 1425 RK_U32 pre_intra_cla8_m6 : 6; 1426 RK_U32 pre_intra_cla8_m7 : 6; 1427 RK_U32 pre_intra_cla8_m8 : 6; 1428 RK_U32 pre_intra_cla8_m9 : 6; 1429 RK_U32 reserved : 2; 1430 } pre_intra_cla8_B1; 1431 1432 // 0x1b48 1433 struct { 1434 RK_U32 pre_intra_cla9_m0 : 6; 1435 RK_U32 pre_intra_cla9_m1 : 6; 1436 RK_U32 pre_intra_cla9_m2 : 6; 1437 RK_U32 pre_intra_cla9_m3 : 6; 1438 RK_U32 pre_intra_cla9_m4 : 6; 1439 RK_U32 reserved : 2; 1440 } pre_intra_cla9_B0; 1441 1442 // 0x1b4c 1443 struct { 1444 RK_U32 pre_intra_cla9_m5 : 6; 1445 RK_U32 pre_intra_cla9_m6 : 6; 1446 RK_U32 pre_intra_cla9_m7 : 6; 1447 RK_U32 pre_intra_cla9_m8 : 6; 1448 RK_U32 pre_intra_cla9_m9 : 6; 1449 RK_U32 reserved : 2; 1450 } pre_intra_cla9_B1; 1451 1452 // 0x1b50 1453 struct { 1454 RK_U32 pre_intra_cla10_m0 : 6; 1455 RK_U32 pre_intra_cla10_m1 : 6; 1456 RK_U32 pre_intra_cla10_m2 : 6; 1457 RK_U32 pre_intra_cla10_m3 : 6; 1458 RK_U32 pre_intra_cla10_m4 : 6; 1459 RK_U32 reserved : 2; 1460 } pre_intra_cla10_B0; 1461 1462 // 0x1b54 1463 struct { 1464 RK_U32 pre_intra_cla10_m5 : 6; 1465 RK_U32 pre_intra_cla10_m6 : 6; 1466 RK_U32 pre_intra_cla10_m7 : 6; 1467 RK_U32 pre_intra_cla10_m8 : 6; 1468 RK_U32 pre_intra_cla10_m9 : 6; 1469 RK_U32 reserved : 2; 1470 } pre_intra_cla10_B1; 1471 1472 // 0x1b58 1473 struct { 1474 RK_U32 pre_intra_cla11_m0 : 6; 1475 RK_U32 pre_intra_cla11_m1 : 6; 1476 RK_U32 pre_intra_cla11_m2 : 6; 1477 RK_U32 pre_intra_cla11_m3 : 6; 1478 RK_U32 pre_intra_cla11_m4 : 6; 1479 RK_U32 reserved : 2; 1480 } pre_intra_cla11_B0; 1481 1482 // 0x1b5c 1483 struct { 1484 RK_U32 pre_intra_cla11_m5 : 6; 1485 RK_U32 pre_intra_cla11_m6 : 6; 1486 RK_U32 pre_intra_cla11_m7 : 6; 1487 RK_U32 pre_intra_cla11_m8 : 6; 1488 RK_U32 pre_intra_cla11_m9 : 6; 1489 RK_U32 reserved : 2; 1490 } pre_intra_cla11_B1; 1491 1492 // 0x1b60 1493 struct { 1494 RK_U32 pre_intra_cla12_m0 : 6; 1495 RK_U32 pre_intra_cla12_m1 : 6; 1496 RK_U32 pre_intra_cla12_m2 : 6; 1497 RK_U32 pre_intra_cla12_m3 : 6; 1498 RK_U32 pre_intra_cla12_m4 : 6; 1499 RK_U32 reserved : 2; 1500 } pre_intra_cla12_B0; 1501 1502 // 0x1b64 1503 struct { 1504 RK_U32 pre_intra_cla12_m5 : 6; 1505 RK_U32 pre_intra_cla12_m6 : 6; 1506 RK_U32 pre_intra_cla12_m7 : 6; 1507 RK_U32 pre_intra_cla12_m8 : 6; 1508 RK_U32 pre_intra_cla12_m9 : 6; 1509 RK_U32 reserved : 2; 1510 } pre_intra_cla12_B1; 1511 1512 // 0x1b68 1513 struct { 1514 RK_U32 pre_intra_cla13_m0 : 6; 1515 RK_U32 pre_intra_cla13_m1 : 6; 1516 RK_U32 pre_intra_cla13_m2 : 6; 1517 RK_U32 pre_intra_cla13_m3 : 6; 1518 RK_U32 pre_intra_cla13_m4 : 6; 1519 RK_U32 reserved : 2; 1520 } pre_intra_cla13_B0; 1521 1522 // 0x1b6c 1523 struct { 1524 RK_U32 pre_intra_cla13_m5 : 6; 1525 RK_U32 pre_intra_cla13_m6 : 6; 1526 RK_U32 pre_intra_cla13_m7 : 6; 1527 RK_U32 pre_intra_cla13_m8 : 6; 1528 RK_U32 pre_intra_cla13_m9 : 6; 1529 RK_U32 reserved : 2; 1530 } pre_intra_cla13_B1; 1531 1532 // 0x1b70 1533 struct { 1534 RK_U32 pre_intra_cla14_m0 : 6; 1535 RK_U32 pre_intra_cla14_m1 : 6; 1536 RK_U32 pre_intra_cla14_m2 : 6; 1537 RK_U32 pre_intra_cla14_m3 : 6; 1538 RK_U32 pre_intra_cla14_m4 : 6; 1539 RK_U32 reserved : 2; 1540 } pre_intra_cla14_B0; 1541 1542 // 0x1b74 1543 struct { 1544 RK_U32 pre_intra_cla14_m5 : 6; 1545 RK_U32 pre_intra_cla14_m6 : 6; 1546 RK_U32 pre_intra_cla14_m7 : 6; 1547 RK_U32 pre_intra_cla14_m8 : 6; 1548 RK_U32 pre_intra_cla14_m9 : 6; 1549 RK_U32 reserved : 2; 1550 } pre_intra_cla14_B1; 1551 1552 // 0x1b78 1553 struct { 1554 RK_U32 pre_intra_cla15_m0 : 6; 1555 RK_U32 pre_intra_cla15_m1 : 6; 1556 RK_U32 pre_intra_cla15_m2 : 6; 1557 RK_U32 pre_intra_cla15_m3 : 6; 1558 RK_U32 pre_intra_cla15_m4 : 6; 1559 RK_U32 reserved : 2; 1560 } pre_intra_cla15_B0; 1561 1562 // 0x1b7c 1563 struct { 1564 RK_U32 pre_intra_cla15_m5 : 6; 1565 RK_U32 pre_intra_cla15_m6 : 6; 1566 RK_U32 pre_intra_cla15_m7 : 6; 1567 RK_U32 pre_intra_cla15_m8 : 6; 1568 RK_U32 pre_intra_cla15_m9 : 6; 1569 RK_U32 reserved : 2; 1570 } pre_intra_cla15_B1; 1571 1572 // 0x1b80 1573 struct { 1574 RK_U32 pre_intra_cla16_m0 : 6; 1575 RK_U32 pre_intra_cla16_m1 : 6; 1576 RK_U32 pre_intra_cla16_m2 : 6; 1577 RK_U32 pre_intra_cla16_m3 : 6; 1578 RK_U32 pre_intra_cla16_m4 : 6; 1579 RK_U32 reserved : 2; 1580 } pre_intra_cla16_B0; 1581 1582 // 0x1b84 1583 struct { 1584 RK_U32 pre_intra_cla16_m5 : 6; 1585 RK_U32 pre_intra_cla16_m6 : 6; 1586 RK_U32 pre_intra_cla16_m7 : 6; 1587 RK_U32 pre_intra_cla16_m8 : 6; 1588 RK_U32 pre_intra_cla16_m9 : 6; 1589 RK_U32 reserved : 2; 1590 } pre_intra_cla16_B1; 1591 1592 /* 0x1b88 - 0x1bfc */ 1593 RK_U32 reserved1762_1791[30]; 1594 1595 /* 0x00001c00 reg1792 */ 1596 struct { 1597 RK_U32 intra_l16_sobel_t0 : 12; 1598 RK_U32 reserved : 4; 1599 RK_U32 intra_l16_sobel_t1 : 12; 1600 RK_U32 reserved1 : 4; 1601 } i16_sobel_t; 1602 1603 /* 0x00001c04 reg1793 */ 1604 struct { 1605 RK_U32 intra_l16_sobel_a0_qp0 : 6; 1606 RK_U32 intra_l16_sobel_a0_qp1 : 6; 1607 RK_U32 intra_l16_sobel_a0_qp2 : 6; 1608 RK_U32 intra_l16_sobel_a0_qp3 : 6; 1609 RK_U32 intra_l16_sobel_a0_qp4 : 6; 1610 RK_U32 reserved : 2; 1611 } i16_sobel_a_00; 1612 1613 /* 0x00001c08 reg1794 */ 1614 struct { 1615 RK_U32 intra_l16_sobel_a0_qp5 : 6; 1616 RK_U32 intra_l16_sobel_a0_qp6 : 6; 1617 RK_U32 intra_l16_sobel_a0_qp7 : 6; 1618 RK_U32 intra_l16_sobel_a0_qp8 : 6; 1619 RK_U32 reserved : 8; 1620 } i16_sobel_a_01; 1621 1622 /* 0x00001c0c reg1795 */ 1623 struct { 1624 RK_U32 intra_l16_sobel_b0_qp0 : 15; 1625 RK_U32 reserved : 1; 1626 RK_U32 intra_l16_sobel_b0_qp1 : 15; 1627 RK_U32 reserved1 : 1; 1628 } i16_sobel_b_00; 1629 1630 /* 0x00001c10 reg1796 */ 1631 struct { 1632 RK_U32 intra_l16_sobel_b0_qp2 : 15; 1633 RK_U32 reserved : 1; 1634 RK_U32 intra_l16_sobel_b0_qp3 : 15; 1635 RK_U32 reserved1 : 1; 1636 } i16_sobel_b_01; 1637 1638 /* 0x00001c14 reg1797 */ 1639 struct { 1640 RK_U32 intra_l16_sobel_b0_qp4 : 15; 1641 RK_U32 reserved : 1; 1642 RK_U32 intra_l16_sobel_b0_qp5 : 15; 1643 RK_U32 reserved1 : 1; 1644 } i16_sobel_b_02; 1645 1646 /* 0x00001c18 reg1798 */ 1647 struct { 1648 RK_U32 intra_l16_sobel_b0_qp6 : 15; 1649 RK_U32 reserved : 1; 1650 RK_U32 intra_l16_sobel_b0_qp7 : 15; 1651 RK_U32 reserved1 : 1; 1652 } i16_sobel_b_03; 1653 1654 /* 0x00001c1c reg1799 */ 1655 struct { 1656 RK_U32 intra_l16_sobel_b0_qp8 : 15; 1657 RK_U32 reserved : 17; 1658 } i16_sobel_b_04; 1659 1660 /* 0x00001c20 reg1800 */ 1661 struct { 1662 RK_U32 intra_l16_sobel_c0_qp0 : 6; 1663 RK_U32 intra_l16_sobel_c0_qp1 : 6; 1664 RK_U32 intra_l16_sobel_c0_qp2 : 6; 1665 RK_U32 intra_l16_sobel_c0_qp3 : 6; 1666 RK_U32 intra_l16_sobel_c0_qp4 : 6; 1667 RK_U32 reserved : 2; 1668 } i16_sobel_c_00; 1669 1670 /* 0x00001c24 reg1801 */ 1671 struct { 1672 RK_U32 intra_l16_sobel_c0_qp5 : 6; 1673 RK_U32 intra_l16_sobel_c0_qp6 : 6; 1674 RK_U32 intra_l16_sobel_c0_qp7 : 6; 1675 RK_U32 intra_l16_sobel_c0_qp8 : 6; 1676 RK_U32 reserved : 8; 1677 } i16_sobel_c_01; 1678 1679 /* 0x00001c28 reg1802 */ 1680 struct { 1681 RK_U32 intra_l16_sobel_d0_qp0 : 15; 1682 RK_U32 reserved : 1; 1683 RK_U32 intra_l16_sobel_d0_qp1 : 15; 1684 RK_U32 reserved1 : 1; 1685 } i16_sobel_d_00; 1686 1687 /* 0x00001c2c reg1803 */ 1688 struct { 1689 RK_U32 intra_l16_sobel_d0_qp2 : 15; 1690 RK_U32 reserved : 1; 1691 RK_U32 intra_l16_sobel_d0_qp3 : 15; 1692 RK_U32 reserved1 : 1; 1693 } i16_sobel_d_01; 1694 1695 /* 0x00001c30 reg1804 */ 1696 struct { 1697 RK_U32 intra_l16_sobel_d0_qp4 : 15; 1698 RK_U32 reserved : 1; 1699 RK_U32 intra_l16_sobel_d0_qp5 : 15; 1700 RK_U32 reserved1 : 1; 1701 } i16_sobel_d_02; 1702 1703 /* 0x00001c34 reg1805 */ 1704 struct { 1705 RK_U32 intra_l16_sobel_d0_qp6 : 15; 1706 RK_U32 reserved : 1; 1707 RK_U32 intra_l16_sobel_d0_qp7 : 15; 1708 RK_U32 reserved1 : 1; 1709 } i16_sobel_d_03; 1710 1711 /* 0x00001c38 reg1806 */ 1712 struct { 1713 RK_U32 intra_l16_sobel_d0_qp8 : 15; 1714 RK_U32 reserved : 17; 1715 } i16_sobel_d_04; 1716 1717 /* 0x00001c3c reg1807 */ 1718 RK_U32 intra_l16_sobel_e0_qp0_low; 1719 1720 /* 0x00001c40 reg1808 */ 1721 struct { 1722 RK_U32 intra_l16_sobel_e0_qp0_high : 2; 1723 RK_U32 reserved : 30; 1724 } i16_sobel_e_01; 1725 1726 /* 0x00001c44 reg1809 */ 1727 RK_U32 intra_l16_sobel_e0_qp1_low; 1728 1729 /* 0x00001c48 reg1810 */ 1730 struct { 1731 RK_U32 intra_l16_sobel_e0_qp1_high : 2; 1732 RK_U32 reserved : 30; 1733 } i16_sobel_e_03; 1734 1735 /* 0x00001c4c reg1811 */ 1736 RK_U32 intra_l16_sobel_e0_qp2_low; 1737 1738 /* 0x00001c50 reg1812 */ 1739 struct { 1740 RK_U32 intra_l16_sobel_e0_qp2_high : 2; 1741 RK_U32 reserved : 30; 1742 } i16_sobel_e_05; 1743 1744 /* 0x00001c54 reg1813 */ 1745 RK_U32 intra_l16_sobel_e0_qp3_low; 1746 1747 /* 0x00001c58 reg1814 */ 1748 struct { 1749 RK_U32 intra_l16_sobel_e0_qp3_high : 2; 1750 RK_U32 reserved : 30; 1751 } i16_sobel_e_07; 1752 1753 /* 0x00001c5c reg1815 */ 1754 RK_U32 intra_l16_sobel_e0_qp4_low; 1755 1756 /* 0x00001c60 reg1816 */ 1757 struct { 1758 RK_U32 intra_l16_sobel_e0_qp4_high : 2; 1759 RK_U32 reserved : 30; 1760 } i16_sobel_e_09; 1761 1762 /* 0x00001c64 reg1817 */ 1763 RK_U32 intra_l16_sobel_e0_qp5_low; 1764 1765 /* 0x00001c68 reg1818 */ 1766 struct { 1767 RK_U32 intra_l16_sobel_e0_qp5_high : 2; 1768 RK_U32 reserved : 30; 1769 } i16_sobel_e_11; 1770 1771 /* 0x00001c6c reg1819 */ 1772 RK_U32 intra_l16_sobel_e0_qp6_low; 1773 1774 /* 0x00001c70 reg1820 */ 1775 struct { 1776 RK_U32 intra_l16_sobel_e0_qp6_high : 2; 1777 RK_U32 reserved : 30; 1778 } i16_sobel_e_13; 1779 1780 /* 0x00001c74 reg1821 */ 1781 RK_U32 intra_l16_sobel_e0_qp7_low; 1782 1783 /* 0x00001c78 reg1822 */ 1784 struct { 1785 RK_U32 intra_l16_sobel_e0_qp7_high : 2; 1786 RK_U32 reserved : 30; 1787 } i16_sobel_e_15; 1788 1789 /* 0x00001c7c reg1823 */ 1790 RK_U32 intra_l16_sobel_e0_qp8_low; 1791 1792 /* 0x00001c80 reg1824 */ 1793 struct { 1794 RK_U32 intra_l16_sobel_e0_qp8_high : 2; 1795 RK_U32 reserved : 30; 1796 } i16_sobel_e_17; 1797 1798 /* 0x00001c84 reg1825 */ 1799 struct { 1800 RK_U32 intra_l32_sobel_t2 : 12; 1801 RK_U32 reserved : 4; 1802 RK_U32 intra_l32_sobel_t3 : 12; 1803 RK_U32 reserved1 : 4; 1804 } i32_sobel_t_00; 1805 1806 /* 0x00001c88 reg1826 */ 1807 struct { 1808 RK_U32 intra_l32_sobel_t4 : 6; 1809 RK_U32 reserved : 26; 1810 } i32_sobel_t_01; 1811 1812 /* 0x00001c8c reg1827 */ 1813 struct { 1814 RK_U32 intra_l32_sobel_t5 : 12; 1815 RK_U32 reserved : 4; 1816 RK_U32 intra_l32_sobel_t6 : 12; 1817 RK_U32 reserved1 : 4; 1818 } i32_sobel_t_02; 1819 1820 /* 0x00001c90 reg1828 */ 1821 struct { 1822 RK_U32 intra_l32_sobel_a1_qp0 : 6; 1823 RK_U32 intra_l32_sobel_a1_qp1 : 6; 1824 RK_U32 intra_l32_sobel_a1_qp2 : 6; 1825 RK_U32 intra_l32_sobel_a1_qp3 : 6; 1826 RK_U32 intra_l32_sobel_a1_qp4 : 6; 1827 RK_U32 reserved : 2; 1828 } i32_sobel_a; 1829 1830 /* 0x00001c94 reg1829 */ 1831 struct { 1832 RK_U32 intra_l32_sobel_b1_qp0 : 15; 1833 RK_U32 reserved : 1; 1834 RK_U32 intra_l32_sobel_b1_qp1 : 15; 1835 RK_U32 reserved1 : 1; 1836 } i32_sobel_b_00; 1837 1838 /* 0x00001c98 reg1830 */ 1839 struct { 1840 RK_U32 intra_l32_sobel_b1_qp2 : 15; 1841 RK_U32 reserved : 1; 1842 RK_U32 intra_l32_sobel_b1_qp3 : 15; 1843 RK_U32 reserved1 : 1; 1844 } i32_sobel_b_01; 1845 1846 /* 0x00001c9c reg1831 */ 1847 struct { 1848 RK_U32 intra_l32_sobel_b1_qp4 : 15; 1849 RK_U32 reserved : 17; 1850 } i32_sobel_b_02; 1851 1852 /* 0x00001ca0 reg1832 */ 1853 struct { 1854 RK_U32 intra_l32_sobel_c1_qp0 : 6; 1855 RK_U32 intra_l32_sobel_c1_qp1 : 6; 1856 RK_U32 intra_l32_sobel_c1_qp2 : 6; 1857 RK_U32 intra_l32_sobel_c1_qp3 : 6; 1858 RK_U32 intra_l32_sobel_c1_qp4 : 6; 1859 RK_U32 reserved : 2; 1860 } i32_sobel_c; 1861 1862 /* 0x00001ca4 reg1833 */ 1863 struct { 1864 RK_U32 intra_l32_sobel_d1_qp0 : 15; 1865 RK_U32 reserved : 1; 1866 RK_U32 intra_l32_sobel_d1_qp1 : 15; 1867 RK_U32 reserved1 : 1; 1868 } i32_sobel_d_00; 1869 1870 /* 0x00001ca8 reg1834 */ 1871 struct { 1872 RK_U32 intra_l32_sobel_d1_qp2 : 15; 1873 RK_U32 reserved : 1; 1874 RK_U32 intra_l32_sobel_d1_qp3 : 15; 1875 RK_U32 reserved1 : 1; 1876 } i32_sobel_d_01; 1877 1878 /* 0x00001cac reg1835 */ 1879 struct { 1880 RK_U32 intra_l32_sobel_d1_qp4 : 15; 1881 RK_U32 reserved : 17; 1882 } i32_sobel_d_02; 1883 1884 /* 0x00001cb0 reg1836 */ 1885 RK_U32 intra_l32_sobel_e1_qp0_low; 1886 1887 /* 0x00001cb4 reg1837 */ 1888 struct { 1889 RK_U32 intra_l32_sobel_e1_qp0_high : 9; 1890 RK_U32 reserved : 23; 1891 } i32_sobel_e_01; 1892 1893 /* 0x00001cb8 reg1838 */ 1894 RK_U32 intra_l32_sobel_e1_qp1_low; 1895 1896 /* 0x00001cbc reg1839 */ 1897 struct { 1898 RK_U32 intra_l32_sobel_e1_qp1_high : 9; 1899 RK_U32 reserved : 23; 1900 } i32_sobel_e_03; 1901 1902 /* 0x00001cc0 reg1840 */ 1903 RK_U32 intra_l32_sobel_e1_qp2_low; 1904 1905 /* 0x00001cc4 reg1841 */ 1906 struct { 1907 RK_U32 intra_l32_sobel_e1_qp2_high : 9; 1908 RK_U32 reserved : 23; 1909 } i32_sobel_e_05; 1910 1911 /* 0x00001cc8 reg1842 */ 1912 RK_U32 intra_l32_sobel_e1_qp3_low; 1913 1914 /* 0x00001ccc reg1843 */ 1915 struct { 1916 RK_U32 intra_l32_sobel_e1_qp3_high : 9; 1917 RK_U32 reserved : 23; 1918 } i32_sobel_e_07; 1919 1920 /* 0x00001cd0 reg1844 */ 1921 RK_U32 intra_l32_sobel_e1_qp4_low; 1922 1923 /* 0x00001cd4 reg1845 */ 1924 struct { 1925 RK_U32 intra_l32_sobel_e1_qp4_high : 9; 1926 RK_U32 reserved : 23; 1927 } i32_sobel_e_09; 1928 } hevc_vepu580_wgt; 1929 1930 typedef struct { 1931 struct { 1932 RK_U32 cu_rdo_cime_thd0 : 12; 1933 RK_U32 reserved0 : 4; 1934 RK_U32 cu_rdo_cime_thd1 : 12; 1935 RK_U32 reserved1 : 4; 1936 } rdo_b_cime_thd0; 1937 1938 struct { 1939 RK_U32 cu_rdo_cime_thd2 : 12; 1940 RK_U32 reserved : 20; 1941 } rdo_b_cime_thd1; 1942 1943 struct { 1944 RK_U32 cu_rdo_var_thd00 : 12; 1945 RK_U32 reserved0 : 4; 1946 RK_U32 cu_rdo_var_thd01 : 12; 1947 RK_U32 reserved1 : 4; 1948 } rdo_b_var_thd0; 1949 1950 struct { 1951 RK_U32 cu_rdo_var_thd10 : 12; 1952 RK_U32 reserved0 : 4; 1953 RK_U32 cu_rdo_var_thd11 : 12; 1954 RK_U32 reserved1 : 4; 1955 } rdo_b_var_thd1; 1956 1957 struct { 1958 RK_U32 cu_rdo_var_thd20 : 12; 1959 RK_U32 reserved0 : 4; 1960 RK_U32 cu_rdo_var_thd21 : 12; 1961 RK_U32 reserved1 : 4; 1962 } rdo_b_var_thd2; 1963 1964 struct { 1965 RK_U32 cu_rdo_var_thd30 : 12; 1966 RK_U32 reserved0 : 4; 1967 RK_U32 cu_rdo_var_thd31 : 12; 1968 RK_U32 reserved1 : 4; 1969 } rdo_b_var_thd3; 1970 1971 struct { 1972 RK_U32 cu_rdo_atf_wgt00 : 8; 1973 RK_U32 cu_rdo_atf_wgt01 : 8; 1974 RK_U32 cu_rdo_atf_wgt02 : 8; 1975 RK_U32 reserved : 8; 1976 } rdo_b_atf_wgt0; 1977 1978 struct { 1979 RK_U32 cu_rdo_atf_wgt10 : 8; 1980 RK_U32 cu_rdo_atf_wgt11 : 8; 1981 RK_U32 cu_rdo_atf_wgt12 : 8; 1982 RK_U32 reserved : 8; 1983 } rdo_b_atf_wgt1; 1984 1985 struct { 1986 RK_U32 cu_rdo_atf_wgt20 : 8; 1987 RK_U32 cu_rdo_atf_wgt21 : 8; 1988 RK_U32 cu_rdo_atf_wgt22 : 8; 1989 RK_U32 reserved : 8; 1990 } rdo_b_atf_wgt2; 1991 1992 struct { 1993 RK_U32 cu_rdo_atf_wgt30 : 8; 1994 RK_U32 cu_rdo_atf_wgt31 : 8; 1995 RK_U32 cu_rdo_atf_wgt32 : 8; 1996 RK_U32 reserved : 8; 1997 } rdo_b_atf_wgt3; 1998 } RdoAtfCfg; 1999 2000 2001 typedef struct { 2002 struct { 2003 RK_U32 cu_rdo_cime_thd0 : 12; 2004 RK_U32 reserved0 : 4; 2005 RK_U32 cu_rdo_cime_thd1 : 12; 2006 RK_U32 reserved1 : 4; 2007 } rdo_b_cime_thd0; 2008 2009 struct { 2010 RK_U32 cu_rdo_cime_thd2 : 12; 2011 RK_U32 reserved0 : 4; 2012 RK_U32 cu_rdo_cime_thd3 : 12; 2013 RK_U32 reserved1 : 4; 2014 } rdo_b_cime_thd1; 2015 2016 struct { 2017 RK_U32 cu_rdo_var_thd10 : 12; 2018 RK_U32 reserved0 : 4; 2019 RK_U32 cu_rdo_var_thd11 : 12; 2020 RK_U32 reserved1 : 4; 2021 } rdo_b_var_thd0; 2022 2023 struct { 2024 RK_U32 cu_rdo_var_thd20 : 12; 2025 RK_U32 reserved0 : 4; 2026 RK_U32 cu_rdo_var_thd21 : 12; 2027 RK_U32 reserved1 : 4; 2028 } rdo_b_var_thd1; 2029 2030 struct { 2031 RK_U32 cu_rdo_var_thd30 : 12; 2032 RK_U32 reserved0 : 4; 2033 RK_U32 cu_rdo_var_thd31 : 12; 2034 RK_U32 reserved1 : 4; 2035 } rdo_b_var_thd2; 2036 2037 struct { 2038 RK_U32 cu_rdo_var_thd40 : 12; 2039 RK_U32 reserved0 : 4; 2040 RK_U32 cu_rdo_var_thd41 : 12; 2041 RK_U32 reserved1 : 4; 2042 } rdo_b_var_thd3; 2043 2044 struct { 2045 RK_U32 cu_rdo_atf_wgt00 : 8; 2046 RK_U32 cu_rdo_atf_wgt10 : 8; 2047 RK_U32 cu_rdo_atf_wgt11 : 8; 2048 RK_U32 cu_rdo_atf_wgt12 : 8; 2049 } rdo_b_atf_wgt0; 2050 2051 struct { 2052 RK_U32 cu_rdo_atf_wgt20 : 8; 2053 RK_U32 cu_rdo_atf_wgt21 : 8; 2054 RK_U32 cu_rdo_atf_wgt22 : 8; 2055 RK_U32 reserved : 8; 2056 } rdo_b_atf_wgt1; 2057 2058 struct { 2059 RK_U32 cu_rdo_atf_wgt30 : 8; 2060 RK_U32 cu_rdo_atf_wgt31 : 8; 2061 RK_U32 cu_rdo_atf_wgt32 : 8; 2062 RK_U32 reserved : 8; 2063 } rdo_b_atf_wgt2; 2064 2065 struct { 2066 RK_U32 cu_rdo_atf_wgt40 : 8; 2067 RK_U32 cu_rdo_atf_wgt41 : 8; 2068 RK_U32 cu_rdo_atf_wgt42 : 8; 2069 RK_U32 reserved : 8; 2070 } rdo_b_atf_wgt3; 2071 } RdoAtfSkipCfg; 2072 2073 /* class: rdo/q_i */ 2074 /* 0x00002000 reg2048 - 0x00002c98 reg2854 */ 2075 typedef struct Vepu580RdoCfg_t { 2076 /* 0x00002000 reg2048 */ 2077 struct { 2078 RK_U32 rdo_segment_en : 1; 2079 RK_U32 rdo_smear_en : 1; 2080 RK_U32 reserved : 30; 2081 } rdo_sqi_cfg; 2082 // 0x2004 - 0x2028 start VEPU_RDO_B64_INTER_CIME_THD0 2083 RdoAtfCfg rdo_b64_inter_atf; 2084 // 0x202c - 0x2050 2085 RdoAtfSkipCfg rdo_b64_skip_atf; 2086 // 0x2054 - 0x2078 2087 RdoAtfCfg rdo_b32_intra_atf; 2088 // 0x207c - 0x20a0 2089 RdoAtfCfg rdo_b32_inter_atf; 2090 // 0x20a4 - 0x20c8 2091 RdoAtfSkipCfg rdo_b32_skip_atf; 2092 // 0x20cc - 0x20f0 2093 RdoAtfCfg rdo_b16_intra_atf; 2094 // 0x20f4 - 0x2118 2095 RdoAtfCfg rdo_b16_inter_atf; 2096 // 0x211c - 0x2140 2097 RdoAtfSkipCfg rdo_b16_skip_atf; 2098 // 0x2144 - 0x2168 2099 RdoAtfCfg rdo_b8_intra_atf; 2100 // 0x216c - 0x2190 2101 RdoAtfCfg rdo_b8_inter_atf; 2102 // 0x2194 - 0x21b8 2103 RdoAtfSkipCfg rdo_b8_skip_atf; 2104 2105 /* 0x000021bc reg2159 */ 2106 struct { 2107 RK_U32 rdo_segment_cu64_th0 : 12; 2108 RK_U32 reserved : 4; 2109 RK_U32 rdo_segment_cu64_th1 : 12; 2110 RK_U32 reserved1 : 4; 2111 } rdo_segment_b64_thd0; 2112 2113 /* 0x000021c0 reg2160 */ 2114 struct { 2115 RK_U32 rdo_segment_cu64_th2 : 12; 2116 RK_U32 reserved : 4; 2117 RK_U32 rdo_segment_cu64_th3 : 4; 2118 RK_U32 rdo_segment_cu64_th4 : 4; 2119 RK_U32 rdo_segment_cu64_th5_minus1 : 4; 2120 RK_U32 rdo_segment_cu64_th6_minus1 : 4; 2121 } rdo_segment_b64_thd1; 2122 2123 /* 0x000021c4 reg2161 */ 2124 struct { 2125 RK_U32 rdo_segment_cu32_th0 : 12; 2126 RK_U32 reserved : 4; 2127 RK_U32 rdo_segment_cu32_th1 : 12; 2128 RK_U32 reserved1 : 4; 2129 } rdo_segment_b32_thd0; 2130 2131 /* 0x000021c8 reg2162 */ 2132 struct { 2133 RK_U32 rdo_segment_cu32_th2 : 12; 2134 RK_U32 reserved : 4; 2135 RK_U32 rdo_segment_cu32_th3 : 2; 2136 RK_U32 reserved1 : 2; 2137 RK_U32 rdo_segment_cu32_th4 : 2; 2138 RK_U32 reserved2 : 2; 2139 RK_U32 rdo_segment_cu32_th5_minus1 : 2; 2140 RK_U32 reserved3 : 2; 2141 RK_U32 rdo_segment_cu32_th6_minus1 : 2; 2142 RK_U32 reserved4 : 2; 2143 } rdo_segment_b32_thd1; 2144 2145 /* 0x000021cc reg2163 */ 2146 struct { 2147 RK_U32 rdo_segment_cu64_multi : 8; 2148 RK_U32 rdo_segment_cu32_multi : 8; 2149 RK_U32 rdo_smear_cu16_multi : 8; 2150 RK_U32 reserved : 8; 2151 } rdo_segment_multi; 2152 2153 /* 0x000021d0 reg2164 */ 2154 struct { 2155 RK_U32 rdo_smear_cu16_cime_sad_th0 : 12; 2156 RK_U32 reserved : 4; 2157 RK_U32 rdo_smear_cu16_cime_sad_th1 : 12; 2158 RK_U32 reserved1 : 4; 2159 } rdo_b16_smear_thd0; 2160 2161 /* 0x000021d4 reg2165 */ 2162 struct { 2163 RK_U32 rdo_smear_cu16_cime_sad_th2 : 12; 2164 RK_U32 reserved : 4; 2165 RK_U32 rdo_smear_cu16_cime_sad_th3 : 12; 2166 RK_U32 reserved1 : 4; 2167 } rdo_b16_smear_thd1; 2168 2169 /* 0x000021d8 reg2166 */ 2170 struct { 2171 RK_U32 pre_intra32_cst_var_th00 : 12; 2172 RK_U32 reserved : 4; 2173 RK_U32 pre_intra32_cst_var_th01 : 12; 2174 RK_U32 reserved1 : 1; 2175 RK_U32 pre_intra32_mode_th : 3; 2176 } preintra_b32_cst_var_thd; 2177 2178 /* 0x000021dc reg2167 */ 2179 struct { 2180 RK_U32 pre_intra32_cst_wgt00 : 8; 2181 RK_U32 reserved : 8; 2182 RK_U32 pre_intra32_cst_wgt01 : 8; 2183 RK_U32 reserved1 : 8; 2184 } preintra_b32_cst_wgt; 2185 2186 /* 0x000021e0 reg2168 */ 2187 struct { 2188 RK_U32 pre_intra16_cst_var_th00 : 12; 2189 RK_U32 reserved : 4; 2190 RK_U32 pre_intra16_cst_var_th01 : 12; 2191 RK_U32 reserved1 : 1; 2192 RK_U32 pre_intra16_mode_th : 3; 2193 } preintra_b16_cst_var_thd; 2194 2195 /* 0x000021e4 reg2169 */ 2196 struct { 2197 RK_U32 pre_intra16_cst_wgt00 : 8; 2198 RK_U32 reserved : 8; 2199 RK_U32 pre_intra16_cst_wgt01 : 8; 2200 RK_U32 reserved1 : 8; 2201 } preintra_b16_cst_wgt; 2202 2203 RK_U32 reserved_0x21e8_0x21fc[6]; 2204 2205 // 0x2200 ~ 0x2c94 2206 RK_U32 scaling_list_reg[678]; /* total number really: 678 */ 2207 // 0x2c98 2208 RK_U32 scal_cfg_reg; 2209 } vepu580_rdo_cfg; 2210 2211 /* class: osd */ 2212 /* 0x00003000 reg3072 - 0x00003084 reg3105*/ 2213 typedef struct Vepu580OsdCfg_t { 2214 /* 0x00003000 reg3072 */ 2215 struct { 2216 RK_U32 osd_lu_inv_en : 8; 2217 RK_U32 osd_ch_inv_en : 8; 2218 RK_U32 osd_lu_inv_msk : 8; 2219 RK_U32 osd_ch_inv_msk : 8; 2220 } osd_inv_en; 2221 2222 /* 0x00003004 reg3073 */ 2223 struct { 2224 RK_U32 osd_ithd_r0 : 4; 2225 RK_U32 osd_ithd_r1 : 4; 2226 RK_U32 osd_ithd_r2 : 4; 2227 RK_U32 osd_ithd_r3 : 4; 2228 RK_U32 osd_ithd_r4 : 4; 2229 RK_U32 osd_ithd_r5 : 4; 2230 RK_U32 osd_ithd_r6 : 4; 2231 RK_U32 osd_ithd_r7 : 4; 2232 } osd_inv_thd; 2233 2234 /* 0x00003008 reg3074 */ 2235 struct { 2236 RK_U32 osd_en : 8; 2237 RK_U32 osd_itype : 8; 2238 RK_U32 osd_plt_cks : 1; 2239 RK_U32 osd_plt_typ : 1; 2240 RK_U32 reserved : 14; 2241 } osd_cfg; 2242 2243 /* 0x300c */ 2244 RK_U32 reserved_3075; 2245 2246 /* 0x00003010 reg3076 */ 2247 struct { 2248 RK_U32 osd0_lt_x : 10; 2249 RK_U32 reserved : 6; 2250 RK_U32 osd0_lt_y : 10; 2251 RK_U32 reserved1 : 6; 2252 } osd0_lt_pos; 2253 2254 /* 0x00003014 reg3077 */ 2255 struct { 2256 RK_U32 osd0_rb_x : 10; 2257 RK_U32 reserved : 6; 2258 RK_U32 osd0_rb_y : 10; 2259 RK_U32 reserved1 : 6; 2260 } osd0_rb_pos; 2261 2262 /* 0x00003018 reg3078 */ 2263 struct { 2264 RK_U32 osd1_lt_x : 10; 2265 RK_U32 reserved : 6; 2266 RK_U32 osd1_lt_y : 10; 2267 RK_U32 reserved1 : 6; 2268 } osd1_lt_pos; 2269 2270 /* 0x0000301c reg3079 */ 2271 struct { 2272 RK_U32 osd1_rb_x : 10; 2273 RK_U32 reserved : 6; 2274 RK_U32 osd1_rb_y : 10; 2275 RK_U32 reserved1 : 6; 2276 } osd1_rb_pos; 2277 2278 /* 0x00003020 reg3080 */ 2279 struct { 2280 RK_U32 osd2_lt_x : 10; 2281 RK_U32 reserved : 6; 2282 RK_U32 osd2_lt_y : 10; 2283 RK_U32 reserved1 : 6; 2284 } osd2_lt_pos; 2285 2286 /* 0x00003024 reg3081 */ 2287 struct { 2288 RK_U32 osd2_rb_x : 10; 2289 RK_U32 reserved : 6; 2290 RK_U32 osd2_rb_y : 10; 2291 RK_U32 reserved1 : 6; 2292 } osd2_rb_pos; 2293 2294 /* 0x00003028 reg3082 */ 2295 struct { 2296 RK_U32 osd3_lt_x : 10; 2297 RK_U32 reserved : 6; 2298 RK_U32 osd3_lt_y : 10; 2299 RK_U32 reserved1 : 6; 2300 } osd3_lt_pos; 2301 2302 /* 0x0000302c reg3083 */ 2303 struct { 2304 RK_U32 osd3_rb_x : 10; 2305 RK_U32 reserved : 6; 2306 RK_U32 osd3_rb_y : 10; 2307 RK_U32 reserved1 : 6; 2308 } osd3_rb_pos; 2309 2310 /* 0x00003030 reg3084 */ 2311 struct { 2312 RK_U32 osd4_lt_x : 10; 2313 RK_U32 reserved : 6; 2314 RK_U32 osd4_lt_y : 10; 2315 RK_U32 reserved1 : 6; 2316 } osd4_lt_pos; 2317 2318 /* 0x00003034 reg3085 */ 2319 struct { 2320 RK_U32 osd4_rb_x : 10; 2321 RK_U32 reserved : 6; 2322 RK_U32 osd4_rb_y : 10; 2323 RK_U32 reserved1 : 6; 2324 } osd4_rb_pos; 2325 2326 /* 0x00003038 reg3086 */ 2327 struct { 2328 RK_U32 osd5_lt_x : 10; 2329 RK_U32 reserved : 6; 2330 RK_U32 osd5_lt_y : 10; 2331 RK_U32 reserved1 : 6; 2332 } osd5_lt_pos; 2333 2334 /* 0x0000303c reg3087 */ 2335 struct { 2336 RK_U32 osd5_rb_x : 10; 2337 RK_U32 reserved : 6; 2338 RK_U32 osd5_rb_y : 10; 2339 RK_U32 reserved1 : 6; 2340 } osd5_rb_pos; 2341 2342 /* 0x00003040 reg3088 */ 2343 struct { 2344 RK_U32 osd6_lt_x : 10; 2345 RK_U32 reserved : 6; 2346 RK_U32 osd6_lt_y : 10; 2347 RK_U32 reserved1 : 6; 2348 } osd6_lt_pos; 2349 2350 /* 0x00003044 reg3089 */ 2351 struct { 2352 RK_U32 osd6_rb_x : 10; 2353 RK_U32 reserved : 6; 2354 RK_U32 osd6_rb_y : 10; 2355 RK_U32 reserved1 : 6; 2356 } osd6_rb_pos; 2357 2358 /* 0x00003048 reg3090 */ 2359 struct { 2360 RK_U32 osd7_lt_x : 10; 2361 RK_U32 reserved : 6; 2362 RK_U32 osd7_lt_y : 10; 2363 RK_U32 reserved1 : 6; 2364 } osd7_lt_pos; 2365 2366 /* 0x0000304c reg3091 */ 2367 struct { 2368 RK_U32 osd7_rb_x : 10; 2369 RK_U32 reserved : 6; 2370 RK_U32 osd7_rb_y : 10; 2371 RK_U32 reserved1 : 6; 2372 } osd7_rb_pos; 2373 2374 /* 0x00003050 reg3092 */ 2375 RK_U32 osd0_addr; 2376 2377 /* 0x00003054 reg3093 */ 2378 RK_U32 osd1_addr; 2379 2380 /* 0x00003058 reg3094 */ 2381 RK_U32 osd2_addr; 2382 2383 /* 0x0000305c reg3095 */ 2384 RK_U32 osd3_addr; 2385 2386 /* 0x00003060 reg3096 */ 2387 RK_U32 osd4_addr; 2388 2389 /* 0x00003064 reg3097 */ 2390 RK_U32 osd5_addr; 2391 2392 /* 0x00003068 reg3098 */ 2393 RK_U32 osd6_addr; 2394 2395 /* 0x0000306c reg3099 */ 2396 RK_U32 osd7_addr; 2397 2398 /* 0x3070 - 0x307c */ 2399 RK_U32 reserved3100_3103[4]; 2400 /* 0x03080-0x347c reg3104-reg3360 */ 2401 RK_U32 plt[256]; 2402 } vepu580_osd_cfg; 2403 2404 /* class: st */ 2405 /* 0x00004000 reg4096 - 0x000042cc reg4275 */ 2406 typedef struct Vepu580Status_t { 2407 /* 0x00004000 reg4096 */ 2408 RK_U32 bs_lgth_l32; 2409 2410 /* 0x00004004 reg4097 */ 2411 struct { 2412 RK_U32 bs_lgth_h8 : 8; 2413 RK_U32 reserved : 8; 2414 RK_U32 sse_l16 : 16; 2415 } st_sse_bsl; 2416 2417 /* 0x00004008 reg4098 */ 2418 RK_U32 sse_h32; 2419 2420 /* 0x0000400c reg4099 */ 2421 RK_U32 qp_sum; 2422 2423 /* 0x00004010 reg4100 */ 2424 struct { 2425 RK_U32 sao_cnum : 16; 2426 RK_U32 sao_ynum : 16; 2427 } st_sao; 2428 2429 /* 0x00004014 reg4101 */ 2430 RK_U32 rdo_head_bits; 2431 2432 /* 0x00004018 reg4102 */ 2433 struct { 2434 RK_U32 rdo_head_bits_h8 : 8; 2435 RK_U32 reserved : 8; 2436 RK_U32 rdo_res_bits_l16 : 16; 2437 } st_head_res_bl; 2438 2439 /* 0x0000401c reg4103 */ 2440 RK_U32 rdo_res_bits_h24; 2441 2442 /* 0x00004020 reg4104 */ 2443 struct { 2444 RK_U32 st_enc : 2; 2445 RK_U32 st_sclr : 1; 2446 RK_U32 reserved : 29; 2447 } st_enc; 2448 2449 /* 0x00004024 reg4105 */ 2450 struct { 2451 RK_U32 fnum_cfg_done : 8; 2452 RK_U32 fnum_cfg : 8; 2453 RK_U32 fnum_int : 8; 2454 RK_U32 fnum_enc_done : 8; 2455 } st_lkt; 2456 2457 /* 0x00004028 reg4106 */ 2458 RK_U32 node_addr; 2459 2460 /* 0x0000402c reg4107 */ 2461 struct { 2462 RK_U32 bsbw_ovfl : 1; 2463 RK_U32 reserved : 2; 2464 RK_U32 bsbw_addr : 28; 2465 RK_U32 reserved1 : 1; 2466 } st_bsb; 2467 2468 /* 0x00004030 reg4108 */ 2469 struct { 2470 RK_U32 axib_idl : 8; 2471 RK_U32 axib_ovfl : 8; 2472 RK_U32 axib_err : 8; 2473 RK_U32 axir_err : 7; 2474 RK_U32 reserved : 1; 2475 } st_bus; 2476 2477 /* 0x00004034 reg4109 */ 2478 struct { 2479 RK_U32 sli_num : 6; 2480 RK_U32 reserved : 26; 2481 } st_snum; 2482 2483 /* 0x00004038 reg4110 */ 2484 struct { 2485 RK_U32 sli_len : 25; 2486 RK_U32 reserved : 7; 2487 } st_slen; 2488 2489 /* 0x403c - 0x40fc */ 2490 RK_U32 reserved4111_4159[49]; 2491 2492 /* 0x00004100 reg4160 */ 2493 struct { 2494 RK_U32 pnum_p64 : 17; 2495 RK_U32 reserved : 15; 2496 } st_pnum_p64; 2497 2498 /* 0x00004104 reg4161 */ 2499 struct { 2500 RK_U32 pnum_p32 : 19; 2501 RK_U32 reserved : 13; 2502 } st_pnum_p32; 2503 2504 /* 0x00004108 reg4162 */ 2505 struct { 2506 RK_U32 pnum_p16 : 21; 2507 RK_U32 reserved : 11; 2508 } st_pnum_p16; 2509 2510 /* 0x0000410c reg4163 */ 2511 struct { 2512 RK_U32 pnum_p8 : 23; 2513 RK_U32 reserved : 9; 2514 } st_pnum_p8; 2515 2516 /* 0x00004110 reg4164 */ 2517 struct { 2518 RK_U32 pnum_i32 : 19; 2519 RK_U32 reserved : 13; 2520 } st_pnum_i32; 2521 2522 /* 0x00004114 reg4165 */ 2523 struct { 2524 RK_U32 pnum_i16 : 21; 2525 RK_U32 reserved : 11; 2526 } st_pnum_i16; 2527 2528 /* 0x00004118 reg4166 */ 2529 struct { 2530 RK_U32 pnum_i8 : 23; 2531 RK_U32 reserved : 9; 2532 } st_pnum_i8; 2533 2534 /* 0x0000411c reg4167 */ 2535 struct { 2536 RK_U32 pnum_i4 : 23; 2537 RK_U32 reserved : 9; 2538 } st_pnum_i4; 2539 2540 /* 0x00004120 reg4168 */ 2541 RK_U32 madp; 2542 2543 /* 0x00004124 reg4169 */ 2544 struct { 2545 RK_U32 num_ctu : 21; 2546 RK_U32 reserved : 11; 2547 } st_bnum_cme; 2548 2549 /* 0x00004128 reg4170 */ 2550 RK_U32 madi; 2551 2552 /* 0x0000412c reg4171 */ 2553 struct { 2554 RK_U32 num_b16 : 23; 2555 RK_U32 reserved : 9; 2556 } st_bnum_b16; 2557 2558 /* 0x00004130 reg4172 */ 2559 RK_U32 num_madi_max_b16; 2560 2561 /* 0x00004134 reg4173 */ 2562 RK_U32 md_sad_b16num0; 2563 2564 /* 0x00004138 reg4174 */ 2565 RK_U32 md_sad_b16num1; 2566 2567 /* 0x0000413c reg4175 */ 2568 RK_U32 md_sad_b16num2; 2569 2570 /* 0x00004140 reg4176 */ 2571 RK_U32 md_sad_b16num3; 2572 2573 /* 0x00004144 reg4177 */ 2574 RK_U32 madi_b16num0; 2575 2576 /* 0x00004148 reg4178 */ 2577 RK_U32 madi_b16num1; 2578 2579 /* 0x0000414c reg4179 */ 2580 RK_U32 madi_b16num2; 2581 2582 /* 0x00004150 reg4180 */ 2583 RK_U32 madi_b16num3; 2584 2585 /* 0x4154 - 0x41fc */ 2586 RK_U32 reserved4181_4223[43]; 2587 2588 /* 0x00004200 reg4224 */ 2589 struct { 2590 RK_U32 b8num_qp0 : 22; 2591 RK_U32 reserved : 10; 2592 } st_b8_qp0; 2593 2594 /* 0x00004204 reg4225 */ 2595 struct { 2596 RK_U32 b8num_qp1 : 22; 2597 RK_U32 reserved : 10; 2598 } st_b8_qp1; 2599 2600 /* 0x00004208 reg4226 */ 2601 struct { 2602 RK_U32 b8num_qp2 : 22; 2603 RK_U32 reserved : 10; 2604 } st_b8_qp2; 2605 2606 /* 0x0000420c reg4227 */ 2607 struct { 2608 RK_U32 b8num_qp3 : 22; 2609 RK_U32 reserved : 10; 2610 } st_b8_qp3; 2611 2612 /* 0x00004210 reg4228 */ 2613 struct { 2614 RK_U32 b8num_qp4 : 22; 2615 RK_U32 reserved : 10; 2616 } st_b8_qp4; 2617 2618 /* 0x00004214 reg4229 */ 2619 struct { 2620 RK_U32 b8num_qp5 : 22; 2621 RK_U32 reserved : 10; 2622 } st_b8_qp5; 2623 2624 /* 0x00004218 reg4230 */ 2625 struct { 2626 RK_U32 b8num_qp6 : 22; 2627 RK_U32 reserved : 10; 2628 } st_b8_qp6; 2629 2630 /* 0x0000421c reg4231 */ 2631 struct { 2632 RK_U32 b8num_qp7 : 22; 2633 RK_U32 reserved : 10; 2634 } st_b8_qp7; 2635 2636 /* 0x00004220 reg4232 */ 2637 struct { 2638 RK_U32 b8num_qp8 : 22; 2639 RK_U32 reserved : 10; 2640 } st_b8_qp8; 2641 2642 /* 0x00004224 reg4233 */ 2643 struct { 2644 RK_U32 b8num_qp9 : 22; 2645 RK_U32 reserved : 10; 2646 } st_b8_qp9; 2647 2648 /* 0x00004228 reg4234 */ 2649 struct { 2650 RK_U32 b8num_qp10 : 22; 2651 RK_U32 reserved : 10; 2652 } st_b8_qp10; 2653 2654 /* 0x0000422c reg4235 */ 2655 struct { 2656 RK_U32 b8num_qp11 : 22; 2657 RK_U32 reserved : 10; 2658 } st_b8_qp11; 2659 2660 /* 0x00004230 reg4236 */ 2661 struct { 2662 RK_U32 b8num_qp12 : 22; 2663 RK_U32 reserved : 10; 2664 } st_b8_qp12; 2665 2666 /* 0x00004234 reg4237 */ 2667 struct { 2668 RK_U32 b8num_qp13 : 22; 2669 RK_U32 reserved : 10; 2670 } st_b8_qp13; 2671 2672 /* 0x00004238 reg4238 */ 2673 struct { 2674 RK_U32 b8num_qp14 : 22; 2675 RK_U32 reserved : 10; 2676 } st_b8_qp14; 2677 2678 /* 0x0000423c reg4239 */ 2679 struct { 2680 RK_U32 b8num_qp15 : 22; 2681 RK_U32 reserved : 10; 2682 } st_b8_qp15; 2683 2684 /* 0x00004240 reg4240 */ 2685 struct { 2686 RK_U32 b8num_qp16 : 22; 2687 RK_U32 reserved : 10; 2688 } st_b8_qp16; 2689 2690 /* 0x00004244 reg4241 */ 2691 struct { 2692 RK_U32 b8num_qp17 : 22; 2693 RK_U32 reserved : 10; 2694 } st_b8_qp17; 2695 2696 /* 0x00004248 reg4242 */ 2697 struct { 2698 RK_U32 b8num_qp18 : 22; 2699 RK_U32 reserved : 10; 2700 } st_b8_qp18; 2701 2702 /* 0x0000424c reg4243 */ 2703 struct { 2704 RK_U32 b8num_qp19 : 22; 2705 RK_U32 reserved : 10; 2706 } st_b8_qp19; 2707 2708 /* 0x00004250 reg4244 */ 2709 struct { 2710 RK_U32 b8num_qp20 : 22; 2711 RK_U32 reserved : 10; 2712 } st_b8_qp20; 2713 2714 /* 0x00004254 reg4245 */ 2715 struct { 2716 RK_U32 b8num_qp21 : 22; 2717 RK_U32 reserved : 10; 2718 } st_b8_qp21; 2719 2720 /* 0x00004258 reg4246 */ 2721 struct { 2722 RK_U32 b8num_qp22 : 22; 2723 RK_U32 reserved : 10; 2724 } st_b8_qp22; 2725 2726 /* 0x0000425c reg4247 */ 2727 struct { 2728 RK_U32 b8num_qp23 : 22; 2729 RK_U32 reserved : 10; 2730 } st_b8_qp23; 2731 2732 /* 0x00004260 reg4248 */ 2733 struct { 2734 RK_U32 b8num_qp24 : 22; 2735 RK_U32 reserved : 10; 2736 } st_b8_qp24; 2737 2738 /* 0x00004264 reg4249 */ 2739 struct { 2740 RK_U32 b8num_qp25 : 22; 2741 RK_U32 reserved : 10; 2742 } st_b8_qp25; 2743 2744 /* 0x00004268 reg4250 */ 2745 struct { 2746 RK_U32 b8num_qp26 : 22; 2747 RK_U32 reserved : 10; 2748 } st_b8_qp26; 2749 2750 /* 0x0000426c reg4251 */ 2751 struct { 2752 RK_U32 b8num_qp27 : 22; 2753 RK_U32 reserved : 10; 2754 } st_b8_qp27; 2755 2756 /* 0x00004270 reg4252 */ 2757 struct { 2758 RK_U32 b8num_qp28 : 22; 2759 RK_U32 reserved : 10; 2760 } st_b8_qp28; 2761 2762 /* 0x00004274 reg4253 */ 2763 struct { 2764 RK_U32 b8num_qp29 : 22; 2765 RK_U32 reserved : 10; 2766 } st_b8_qp29; 2767 2768 /* 0x00004278 reg4254 */ 2769 struct { 2770 RK_U32 b8num_qp30 : 22; 2771 RK_U32 reserved : 10; 2772 } st_b8_qp30; 2773 2774 /* 0x0000427c reg4255 */ 2775 struct { 2776 RK_U32 b8num_qp31 : 22; 2777 RK_U32 reserved : 10; 2778 } st_b8_qp31; 2779 2780 /* 0x00004280 reg4256 */ 2781 struct { 2782 RK_U32 b8num_qp32 : 22; 2783 RK_U32 reserved : 10; 2784 } st_b8_qp32; 2785 2786 /* 0x00004284 reg4257 */ 2787 struct { 2788 RK_U32 b8num_qp33 : 22; 2789 RK_U32 reserved : 10; 2790 } st_b8_qp33; 2791 2792 /* 0x00004288 reg4258 */ 2793 struct { 2794 RK_U32 b8num_qp34 : 22; 2795 RK_U32 reserved : 10; 2796 } st_b8_qp34; 2797 2798 /* 0x0000428c reg4259 */ 2799 struct { 2800 RK_U32 b8num_qp35 : 22; 2801 RK_U32 reserved : 10; 2802 } st_b8_qp35; 2803 2804 /* 0x00004290 reg4260 */ 2805 struct { 2806 RK_U32 b8num_qp36 : 22; 2807 RK_U32 reserved : 10; 2808 } st_b8_qp36; 2809 2810 /* 0x00004294 reg4261 */ 2811 struct { 2812 RK_U32 b8num_qp37 : 22; 2813 RK_U32 reserved : 10; 2814 } st_b8_qp37; 2815 2816 /* 0x00004298 reg4262 */ 2817 struct { 2818 RK_U32 b8num_qp38 : 22; 2819 RK_U32 reserved : 10; 2820 } st_b8_qp38; 2821 2822 /* 0x0000429c reg4263 */ 2823 struct { 2824 RK_U32 b8num_qp39 : 22; 2825 RK_U32 reserved : 10; 2826 } st_b8_qp39; 2827 2828 /* 0x000042a0 reg4264 */ 2829 struct { 2830 RK_U32 b8num_qp40 : 22; 2831 RK_U32 reserved : 10; 2832 } st_b8_qp40; 2833 2834 /* 0x000042a4 reg4265 */ 2835 struct { 2836 RK_U32 b8num_qp41 : 22; 2837 RK_U32 reserved : 10; 2838 } st_b8_qp41; 2839 2840 /* 0x000042a8 reg4266 */ 2841 struct { 2842 RK_U32 b8num_qp42 : 22; 2843 RK_U32 reserved : 10; 2844 } st_b8_qp42; 2845 2846 /* 0x000042ac reg4267 */ 2847 struct { 2848 RK_U32 b8num_qp43 : 22; 2849 RK_U32 reserved : 10; 2850 } st_b8_qp43; 2851 2852 /* 0x000042b0 reg4268 */ 2853 struct { 2854 RK_U32 b8num_qp44 : 22; 2855 RK_U32 reserved : 10; 2856 } st_b8_qp44; 2857 2858 /* 0x000042b4 reg4269 */ 2859 struct { 2860 RK_U32 b8num_qp45 : 22; 2861 RK_U32 reserved : 10; 2862 } st_b8_qp45; 2863 2864 /* 0x000042b8 reg4270 */ 2865 struct { 2866 RK_U32 b8num_qp46 : 22; 2867 RK_U32 reserved : 10; 2868 } st_b8_qp46; 2869 2870 /* 0x000042bc reg4271 */ 2871 struct { 2872 RK_U32 b8num_qp47 : 22; 2873 RK_U32 reserved : 10; 2874 } st_b8_qp47; 2875 2876 /* 0x000042c0 reg4272 */ 2877 struct { 2878 RK_U32 b8num_qp48 : 22; 2879 RK_U32 reserved : 10; 2880 } st_b8_qp48; 2881 2882 /* 0x000042c4 reg4273 */ 2883 struct { 2884 RK_U32 b8num_qp49 : 22; 2885 RK_U32 reserved : 10; 2886 } st_b8_qp49; 2887 2888 /* 0x000042c8 reg4274 */ 2889 struct { 2890 RK_U32 b8num_qp50 : 22; 2891 RK_U32 reserved : 10; 2892 } st_b8_qp50; 2893 2894 /* 0x000042cc reg4275 */ 2895 struct { 2896 RK_U32 b8num_qp51 : 22; 2897 RK_U32 reserved : 10; 2898 } st_b8_qp51; 2899 } vepu580Status; 2900 2901 /* class: dbg/st/axipn */ 2902 /* 0x00005000 reg5120 - 0x00005354 reg5333*/ 2903 typedef struct Vepu580Dbg_t { 2904 /* 0x00005000 reg5120 */ 2905 struct { 2906 RK_U32 pp_tout : 1; 2907 RK_U32 cme_tout : 1; 2908 RK_U32 swn_tout : 1; 2909 RK_U32 rme_tout : 1; 2910 RK_U32 fme_tout : 1; 2911 RK_U32 rdo_tout : 1; 2912 RK_U32 lpf_tout : 1; 2913 RK_U32 etpy_tout : 1; 2914 RK_U32 frm_tout : 1; 2915 RK_U32 reserved : 23; 2916 } st_wdg; 2917 2918 /* 0x00005004 reg5121 */ 2919 struct { 2920 RK_U32 pp_wrk : 1; 2921 RK_U32 cme_wrk : 1; 2922 RK_U32 swn_wrk : 1; 2923 RK_U32 rme_wrk : 1; 2924 RK_U32 fme_wrk : 1; 2925 RK_U32 rdo_wrk : 1; 2926 RK_U32 lpf_wrk : 1; 2927 RK_U32 etpy_wrk : 1; 2928 RK_U32 frm_wrk : 1; 2929 RK_U32 reserved : 23; 2930 } st_ppl; 2931 2932 /* 0x00005008 reg5122 */ 2933 struct { 2934 RK_U32 pp_pos_x : 16; 2935 RK_U32 pp_pos_y : 16; 2936 } st_ppl_pos_pp; 2937 2938 /* 0x0000500c reg5123 */ 2939 struct { 2940 RK_U32 cme_pos_x : 16; 2941 RK_U32 cme_pos_y : 16; 2942 } st_ppl_pos_cme; 2943 2944 /* 0x00005010 reg5124 */ 2945 struct { 2946 RK_U32 swin_pos_x : 16; 2947 RK_U32 swin_pos_y : 16; 2948 } st_ppl_pos_swin; 2949 2950 /* 0x00005014 reg5125 */ 2951 struct { 2952 RK_U32 rme_pos_x : 16; 2953 RK_U32 rme_pos_y : 16; 2954 } st_ppl_pos_rme; 2955 2956 /* 0x00005018 reg5126 */ 2957 struct { 2958 RK_U32 fme_pos_x : 16; 2959 RK_U32 fme_pos_y : 16; 2960 } st_ppl_pos_fme; 2961 2962 /* 0x0000501c reg5127 */ 2963 struct { 2964 RK_U32 rdo_pos_x : 16; 2965 RK_U32 rdo_pos_y : 16; 2966 } st_ppl_pos_rdo; 2967 2968 /* 0x00005020 reg5128 */ 2969 struct { 2970 RK_U32 lpf_pos_x : 16; 2971 RK_U32 lpf_pos_y : 16; 2972 } st_ppl_pos_lpf; 2973 2974 /* 0x00005024 reg5129 */ 2975 struct { 2976 RK_U32 etpy_pos_x : 16; 2977 RK_U32 etpy_pos_y : 16; 2978 } st_ppl_pos_etpy; 2979 2980 /* 0x00005028 reg5130 */ 2981 struct { 2982 RK_U32 sli_num : 15; 2983 RK_U32 reserved : 17; 2984 } st_sli_num; 2985 2986 /* 0x0000502c reg5131 */ 2987 struct { 2988 RK_U32 lkt_err : 3; 2989 RK_U32 reserved : 29; 2990 } st_lkt_err; 2991 2992 /* 0x5030 - 0x50fc */ 2993 RK_U32 reserved5132_5183[52]; 2994 2995 /* 0x00005100 reg5184 */ 2996 struct { 2997 RK_U32 empty_oafifo : 1; 2998 RK_U32 full_cmd_oafifo : 1; 2999 RK_U32 full_data_oafifo : 1; 3000 RK_U32 empty_iafifo : 1; 3001 RK_U32 full_cmd_iafifo : 1; 3002 RK_U32 full_info_iafifo : 1; 3003 RK_U32 fbd_brq_st : 4; 3004 RK_U32 fbd_hdr_vld : 1; 3005 RK_U32 fbd_bmng_end : 1; 3006 RK_U32 nfbd_req_st : 4; 3007 RK_U32 acc_axi_cmd : 8; 3008 RK_U32 reserved : 8; 3009 } dbg_pp_st; 3010 3011 /* 0x00005104 reg5185 */ 3012 struct { 3013 RK_U32 cur_state_cime : 2; 3014 RK_U32 cur_state_ds : 3; 3015 RK_U32 cur_state_ref : 2; 3016 RK_U32 cur_state_cst : 2; 3017 RK_U32 reserved : 23; 3018 } dbg_cime_st; 3019 3020 /* 0x00005108 reg5186 */ 3021 RK_U32 swin_dbg_inf; 3022 3023 /* 0x0000510c reg5187 */ 3024 struct { 3025 RK_U32 bbrq_cmps_left_len2 : 1; 3026 RK_U32 bbrq_cmps_left_len1 : 1; 3027 RK_U32 cmps_left_len0 : 1; 3028 RK_U32 bbrq_rdy2 : 1; 3029 RK_U32 dcps_vld2 : 1; 3030 RK_U32 bbrq_rdy1 : 1; 3031 RK_U32 dcps_vld1 : 1; 3032 RK_U32 bbrq_rdy0 : 1; 3033 RK_U32 dcps_vld0 : 1; 3034 RK_U32 hb_rdy2 : 1; 3035 RK_U32 bbrq_vld2 : 1; 3036 RK_U32 hb_rdy1 : 1; 3037 RK_U32 bbrq_vld1 : 1; 3038 RK_U32 hb_rdy0 : 1; 3039 RK_U32 bbrq_vld0 : 1; 3040 RK_U32 idle_msb2 : 1; 3041 RK_U32 idle_msb1 : 1; 3042 RK_U32 idle_msb0 : 1; 3043 RK_U32 cur_state_dcps : 1; 3044 RK_U32 cur_state_bbrq : 1; 3045 RK_U32 cur_state_hb : 1; 3046 RK_U32 cke_bbrq_dcps : 1; 3047 RK_U32 cke_dcps : 1; 3048 RK_U32 cke_bbrq : 1; 3049 RK_U32 rdy_lwcd_rsp : 1; 3050 RK_U32 vld_lwcd_rsp : 1; 3051 RK_U32 rdy_lwcd_req : 1; 3052 RK_U32 vld_lwcd_req : 1; 3053 RK_U32 rdy_lwrsp : 1; 3054 RK_U32 vld_lwrsp : 1; 3055 RK_U32 rdy_lwreq : 1; 3056 RK_U32 vld_lwreq : 1; 3057 } dbg_fbd_hhit0; 3058 3059 /* 0x5110 */ 3060 RK_U32 reserved_5188; 3061 3062 /* 0x00005114 reg5189 */ 3063 struct { 3064 RK_U32 mscnt_clr : 1; 3065 RK_U32 reserved : 31; 3066 } dbg_cach_clr; 3067 3068 /* 0x00005118 reg5190 */ 3069 RK_U32 l1_mis; 3070 3071 /* 0x0000511c reg5191 */ 3072 RK_U32 l2_mis; 3073 3074 /* 0x00005120 reg5192 */ 3075 RK_U32 rdo_st; 3076 3077 /* 0x00005124 reg5193 */ 3078 RK_U32 rdo_if; 3079 3080 /* 0x00005128 reg5194 */ 3081 struct { 3082 RK_U32 h264_sh_st_cs : 4; 3083 RK_U32 rsd_st_cs : 4; 3084 RK_U32 h264_sd_st_cs : 5; 3085 RK_U32 etpy_rdy : 1; 3086 RK_U32 reserved : 18; 3087 } dbg_etpy; 3088 3089 /* 0x0000512c reg5195 */ 3090 struct { 3091 RK_U32 crdy_ppr : 1; 3092 RK_U32 cvld_ppr : 1; 3093 RK_U32 drdy_ppw : 1; 3094 RK_U32 dvld_ppw : 1; 3095 RK_U32 crdy_ppw : 1; 3096 RK_U32 cvld_ppw : 1; 3097 RK_U32 reserved : 26; 3098 } dbg_dma_pp; 3099 3100 /* 0x00005130 reg5196 */ 3101 struct { 3102 RK_U32 axi_wrdy : 8; 3103 RK_U32 axi_wvld : 8; 3104 RK_U32 axi_awrdy : 8; 3105 RK_U32 axi_awvld : 8; 3106 } dbg_dma_w; 3107 3108 /* 0x00005134 reg5197 */ 3109 struct { 3110 RK_U32 axi_otsd_read : 16; 3111 RK_U32 axi_arrdy : 7; 3112 RK_U32 reserved : 1; 3113 RK_U32 axi_arvld : 7; 3114 RK_U32 reserved1 : 1; 3115 } dbg_dma_r; 3116 3117 /* 0x00005138 reg5198 */ 3118 struct { 3119 RK_U32 dfifo0_lvl : 4; 3120 RK_U32 dfifo1_lvl : 4; 3121 RK_U32 dfifo2_lvl : 4; 3122 RK_U32 dfifo3_lvl : 4; 3123 RK_U32 dfifo4_lvl : 4; 3124 RK_U32 dfifo5_lvl : 4; 3125 RK_U32 reserved : 6; 3126 RK_U32 cmd_vld : 1; 3127 RK_U32 reserved1 : 1; 3128 } dbg_dma_rfpr; 3129 3130 /* 0x0000513c reg5199 */ 3131 struct { 3132 RK_U32 meiw_busy : 1; 3133 RK_U32 dspw_busy : 1; 3134 RK_U32 bsw_rdy : 1; 3135 RK_U32 bsw_flsh : 1; 3136 RK_U32 bsw_busy : 1; 3137 RK_U32 crpw_busy : 1; 3138 RK_U32 lktw_busy : 1; 3139 RK_U32 lpfw_busy : 1; 3140 RK_U32 roir_busy : 1; 3141 RK_U32 dspr_crdy : 1; 3142 RK_U32 dspr_cvld : 1; 3143 RK_U32 lktr_busy : 1; 3144 RK_U32 lpfr_otsd : 4; 3145 RK_U32 rfpr_otsd : 12; 3146 RK_U32 dspr_otsd : 4; 3147 } dbg_dma_ch_st; 3148 3149 /* 0x00005140 reg5200 */ 3150 struct { 3151 RK_U32 cpip_st : 2; 3152 RK_U32 mvp_st : 3; 3153 RK_U32 qpd6_st : 2; 3154 RK_U32 cmd_st : 2; 3155 RK_U32 reserved : 23; 3156 } dbg_tctrl_cime_st; 3157 3158 /* 0x00005144 reg5201 */ 3159 struct { 3160 RK_U32 cme_byps : 1; 3161 RK_U32 swin_byps : 1; 3162 RK_U32 rme_byps : 1; 3163 RK_U32 intra_byps : 1; 3164 RK_U32 fme_byps : 1; 3165 RK_U32 rdo_byps : 1; 3166 RK_U32 lpf_byps : 1; 3167 RK_U32 etpy_byps : 1; 3168 RK_U32 reserved : 24; 3169 } dbg_tctrl; 3170 3171 /* 0x5148 */ 3172 RK_U32 reserved_5202; 3173 3174 /* 0x0000514c reg5203 */ 3175 RK_U32 dbg_lpf_st; 3176 3177 /* 0x00005150 reg5204 */ 3178 RK_U32 dbg_topc_lpfr; 3179 3180 /* 0x00005154 reg5205 */ 3181 RK_U32 dbg0_cache; 3182 3183 /* 0x00005158 reg5206 */ 3184 RK_U32 dbg1_cache; 3185 3186 /* 0x0000515c reg5207 */ 3187 RK_U32 dbg2_cache; 3188 3189 /* 0x5160 - 0x51fc */ 3190 RK_U32 reserved5208_5247[40]; 3191 3192 /* 0x00005200 reg5248 */ 3193 RK_U32 frame_cyc; 3194 3195 /* 0x00005204 reg5249 */ 3196 RK_U32 pp_fcyc; 3197 3198 /* 0x00005208 reg5250 */ 3199 RK_U32 cme_fcyc; 3200 3201 /* 0x0000520c reg5251 */ 3202 RK_U32 cme_dspr_fcyc; 3203 3204 /* 0x00005210 reg5252 */ 3205 RK_U32 ldr_fcyc; 3206 3207 /* 0x00005214 reg5253 */ 3208 RK_U32 rme_fcyc; 3209 3210 /* 0x00005218 reg5254 */ 3211 RK_U32 fme_fcyc; 3212 3213 /* 0x0000521c reg5255 */ 3214 RK_U32 rdo_fcyc; 3215 3216 /* 0x00005220 reg5256 */ 3217 RK_U32 lpf_fcyc; 3218 3219 /* 0x00005224 reg5257 */ 3220 RK_U32 etpy_fcyc; 3221 3222 /* 0x5228 - 0x52fc */ 3223 RK_U32 reserved5258_5311[54]; 3224 3225 /* 0x00005300 reg5312 */ 3226 struct { 3227 RK_U32 axip_e : 1; 3228 RK_U32 axip_clr : 1; 3229 RK_U32 axip_mod : 1; 3230 RK_U32 reserved : 29; 3231 } axip0_cmd; 3232 3233 /* 0x00005304 reg5313 */ 3234 struct { 3235 RK_U32 axip_ltcy_id : 4; 3236 RK_U32 axip_ltcy_thd : 12; 3237 RK_U32 reserved : 16; 3238 } axip0_ltcy; 3239 3240 /* 0x00005308 reg5314 */ 3241 struct { 3242 RK_U32 axip_cnt_typ : 1; 3243 RK_U32 axip_cnt_ddr : 2; 3244 RK_U32 axip_cnt_rid : 5; 3245 RK_U32 axip_cnt_wid : 5; 3246 RK_U32 reserved : 19; 3247 } axip0_cnt; 3248 3249 /* 0x530c */ 3250 RK_U32 reserved_5315; 3251 3252 /* 0x00005310 reg5316 */ 3253 struct { 3254 RK_U32 axip_e : 1; 3255 RK_U32 axip_clr : 1; 3256 RK_U32 axip_mod : 1; 3257 RK_U32 reserved : 29; 3258 } axip1_cmd; 3259 3260 /* 0x00005314 reg5317 */ 3261 struct { 3262 RK_U32 axip_ltcy_id : 4; 3263 RK_U32 axip_ltcy_thd : 12; 3264 RK_U32 reserved : 16; 3265 } axip1_ltcy; 3266 3267 /* 0x00005318 reg5318 */ 3268 struct { 3269 RK_U32 axip_cnt_typ : 1; 3270 RK_U32 axip_cnt_ddr : 2; 3271 RK_U32 axip_cnt_rid : 5; 3272 RK_U32 axip_cnt_wid : 5; 3273 RK_U32 reserved : 19; 3274 } axip1_cnt; 3275 3276 /* 0x531c */ 3277 RK_U32 reserved_5319; 3278 3279 /* 0x00005320 reg5320 */ 3280 struct { 3281 RK_U32 axip_max_ltcy : 16; 3282 RK_U32 reserved : 16; 3283 } st_axip0_maxl; 3284 3285 /* 0x00005324 reg5321 */ 3286 RK_U32 axip0_num_ltcy; 3287 3288 /* 0x00005328 reg5322 */ 3289 RK_U32 axip0_sum_ltcy; 3290 3291 /* 0x0000532c reg5323 */ 3292 RK_U32 axip0_rbyt; 3293 3294 /* 0x00005330 reg5324 */ 3295 RK_U32 axip0_wbyt; 3296 3297 /* 0x00005334 reg5325 */ 3298 RK_U32 axip0_wrk_cyc; 3299 3300 /* 0x5338 - 0x533c */ 3301 RK_U32 reserved5326_5327[2]; 3302 3303 /* 0x00005340 reg5328 */ 3304 struct { 3305 RK_U32 axip_max_ltcy : 16; 3306 RK_U32 reserved : 16; 3307 } st_axip1_maxl; 3308 3309 /* 0x00005344 reg5329 */ 3310 RK_U32 axip1_num_ltcy; 3311 3312 /* 0x00005348 reg5330 */ 3313 RK_U32 axip1_sum_ltcy; 3314 3315 /* 0x0000534c reg5331 */ 3316 RK_U32 axip1_rbyt; 3317 3318 /* 0x00005350 reg5332 */ 3319 RK_U32 axip1_wbyt; 3320 3321 /* 0x00005354 reg5333 */ 3322 RK_U32 axip1_wrk_cyc; 3323 } Vepu580_dbg; 3324 3325 typedef struct H265eV580RegSet_t { 3326 hevc_vepu580_control_cfg reg_ctl; 3327 hevc_vepu580_base reg_base; 3328 hevc_vepu580_rc_klut reg_rc_klut; 3329 hevc_vepu580_wgt reg_wgt; 3330 vepu580_rdo_cfg reg_rdo; 3331 vepu580_osd_cfg reg_osd_cfg; 3332 Vepu580_dbg reg_dbg; 3333 } H265eV580RegSet; 3334 3335 typedef struct H265eV580StatusElem_t { 3336 RK_U32 hw_status; 3337 vepu580Status st; 3338 } H265eV580StatusElem; 3339 3340 #endif 3341