| Author | Tokens | Token Proportion | Commits | Commit Proportion |
|---|---|---|---|---|
| Detlev Casanova | 1396 | 91.60% | 1 | 33.33% |
| Boris Brezillon | 120 | 7.87% | 1 | 33.33% |
| Jonas Karlman | 8 | 0.52% | 1 | 33.33% |
| Total | 1524 | 3 |
/* SPDX-License-Identifier: GPL-2.0 */ #ifndef RKVDEC_REGS_H_ #define RKVDEC_REGS_H_ #include <linux/types.h> /* * REG_INTERRUPT is accessed via writel to enable the decoder after * configuring it and clear interrupt strmd_error_status */ #define RKVDEC_REG_INTERRUPT 0x004 #define RKVDEC_INTERRUPT_DEC_E BIT(0) #define RKVDEC_CONFIG_DEC_CLK_GATE_E BIT(1) #define RKVDEC_E_STRMD_CLKGATE_DIS BIT(2) #define RKVDEC_TIMEOUT_MODE BIT(3) #define RKVDEC_IRQ_DIS BIT(4) #define RKVDEC_TIMEOUT_E BIT(5) #define RKVDEC_BUF_EMPTY_E BIT(6) #define RKVDEC_STRM_E_WAITDECFIFO_EMPTY BIT(7) #define RKVDEC_IRQ BIT(8) #define RKVDEC_IRQ_RAW BIT(9) #define RKVDEC_E_REWRITE_VALID BIT(10) #define RKVDEC_COMMONIRQ_MODE BIT(11) #define RKVDEC_RDY_STA BIT(12) #define RKVDEC_BUS_STA BIT(13) #define RKVDEC_ERR_STA BIT(14) #define RKVDEC_TIMEOUT_STA BIT(15) #define RKVDEC_BUF_EMPTY_STA BIT(16) #define RKVDEC_COLMV_REF_ERR_STA BIT(17) #define RKVDEC_CABU_END_STA BIT(18) #define RKVDEC_H264ORVP9_ERR_MODE BIT(19) #define RKVDEC_SOFTRST_EN_P BIT(20) #define RKVDEC_FORCE_SOFTRESET_VALID BIT(21) #define RKVDEC_SOFTRESET_RDY BIT(22) #define RKVDEC_WR_DDR_ALIGN_EN BIT(23) #define RKVDEC_REG_QOS_CTRL 0x18C /* * Cache configuration is not covered in the range of the register struct */ #define RKVDEC_REG_PREF_LUMA_CACHE_COMMAND 0x410 #define RKVDEC_REG_PREF_CHR_CACHE_COMMAND 0x450 /* * Define the mode values */ #define RKVDEC_MODE_HEVC 0 #define RKVDEC_MODE_H264 1 #define RKVDEC_MODE_VP9 2 /* rkvcodec registers */ struct rkvdec_common_regs { struct rkvdec_id { u32 minor_ver : 8; u32 level : 1; u32 dec_support : 3; u32 profile : 1; u32 reserved0 : 1; u32 codec_flag : 1; u32 reserved1 : 1; u32 prod_num : 16; } reg00; struct rkvdec_int { u32 dec_e : 1; u32 dec_clkgate_e : 1; u32 dec_e_strmd_clkgate_dis : 1; u32 timeout_mode : 1; u32 dec_irq_dis : 1; u32 dec_timeout_e : 1; u32 buf_empty_en : 1; u32 stmerror_waitdecfifo_empty : 1; u32 dec_irq : 1; u32 dec_irq_raw : 1; u32 reserved2 : 2; u32 dec_rdy_sta : 1; u32 dec_bus_sta : 1; u32 dec_error_sta : 1; u32 dec_timeout_sta : 1; u32 dec_empty_sta : 1; u32 colmv_ref_error_sta : 1; u32 cabu_end_sta : 1; u32 h264orvp9_error_mode : 1; u32 softrst_en_p : 1; u32 force_softreset_valid : 1; u32 softreset_rdy : 1; u32 wr_ddr_align_en : 1; u32 scl_down_en : 1; u32 allow_not_wr_unref_bframe : 1; u32 reserved1 : 6; } reg01; struct rkvdec_sysctrl { u32 in_endian : 1; u32 in_swap32_e : 1; u32 in_swap64_e : 1; u32 str_endian : 1; u32 str_swap32_e : 1; u32 str_swap64_e : 1; u32 out_endian : 1; u32 out_swap32_e : 1; u32 out_cbcr_swap : 1; u32 reserved0 : 1; u32 rlc_mode_direct_write : 1; u32 rlc_mode : 1; u32 strm_start_bit : 7; u32 reserved1 : 1; u32 dec_mode : 2; u32 reserved2 : 2; u32 rps_mode : 1; u32 stream_mode : 1; u32 stream_lastpacket : 1; u32 firstslice_flag : 1; u32 frame_orslice : 1; u32 buspr_slot_disable : 1; u32 colmv_mode : 1; u32 ycacherd_prior : 1; } reg02; struct rkvdec_picpar { u32 y_hor_virstride : 9; u32 reserved : 2; u32 slice_num_highbit : 1; u32 uv_hor_virstride : 9; u32 slice_num_lowbits : 11; } reg03; u32 strm_rlc_base; u32 stream_len; u32 cabactbl_base; u32 decout_base; struct rkvdec_y_virstride { u32 y_virstride : 20; u32 reserved0 : 12; } reg08; struct rkvdec_yuv_virstride { u32 yuv_virstride : 21; u32 reserved0 : 11; } reg09; } __packed; struct ref_base { u32 field_ref : 1; u32 topfield_used_ref : 1; u32 botfield_used_ref : 1; u32 colmv_use_flag_ref : 1; u32 base_addr : 28; }; struct rkvdec_h26x_regs { struct ref_base ref0_14_base[15]; u32 ref0_14_poc[15]; u32 cur_poc; u32 rlcwrite_base; u32 pps_base; u32 rps_base; u32 strmd_error_e; struct { u32 strmd_error_status : 28; u32 colmv_error_ref_picidx : 4; } reg45; struct { u32 strmd_error_ctu_xoffset : 8; u32 strmd_error_ctu_yoffset : 8; u32 streamfifo_space2full : 7; u32 reserved0 : 1; u32 vp9_error_ctu0_en : 1; u32 reserved1 : 7; } reg46; struct { u32 saowr_xoffet : 9; u32 reserved0 : 7; u32 saowr_yoffset : 10; u32 reserved1 : 6; } reg47; struct ref_base ref15_base; u32 ref15_29_poc[15]; u32 performance_cycle; u32 axi_ddr_rdata; u32 axi_ddr_wdata; struct { u32 busifd_resetn : 1; u32 cabac_resetn : 1; u32 dec_ctrl_resetn : 1; u32 transd_resetn : 1; u32 intra_resetn : 1; u32 inter_resetn : 1; u32 recon_resetn : 1; u32 filer_resetn : 1; u32 reserved0 : 24; } reg67; struct { u32 perf_cnt0_sel : 6; u32 reserved0 : 2; u32 perf_cnt1_sel : 6; u32 reserved1 : 2; u32 perf_cnt2_sel : 6; u32 reserved2 : 10; } reg68; u32 perf_cnt0; u32 perf_cnt1; u32 perf_cnt2; u32 ref30_poc; u32 ref31_poc; u32 cur_poc1; u32 errorinfo_base; struct { u32 slicedec_num : 14; u32 reserved0 : 1; u32 strmd_detect_error_flag : 1; u32 error_packet_num : 14; u32 reserved1 : 2; } reg76; struct { u32 error_en_highbits : 30; u32 strmd_error_slice_en : 1; u32 strmd_error_frame_en : 1; } reg77; u32 colmv_cur_base; u32 colmv_ref_base[16]; u32 scanlist_addr; u32 reg96_sd_decout_base; u32 sd_y_virstride; u32 sd_hor_stride; u32 qos_ctrl; u32 perf[8]; u32 qos1; } __packed; struct rkvdec_vp9_regs { struct cprheader_offset { u32 cprheader_offset : 16; u32 reserved : 16; } reg10; u32 refer_bases[3]; u32 count_base; u32 segidlast_base; u32 segidcur_base; struct frame_sizes { u32 framewidth : 16; u32 frameheight : 16; } reg17_19[3]; struct segid_grp { u32 segid_abs_delta : 1; u32 segid_frame_qp_delta_en : 1; u32 segid_frame_qp_delta : 9; u32 segid_frame_loopfilter_value_en : 1; u32 segid_frame_loopfilter_value : 7; u32 segid_referinfo_en : 1; u32 segid_referinfo : 2; u32 segid_frame_skip_en : 1; u32 reserved : 9; } reg20_27[8]; struct cprheader_config { u32 tx_mode : 3; u32 frame_reference_mode : 2; u32 reserved : 27; } reg28; struct ref_scale { u32 ref_hor_scale : 16; u32 ref_ver_scale : 16; } reg29_31[3]; struct ref_deltas_lastframe { u32 ref_deltas_lastframe0 : 7; u32 ref_deltas_lastframe1 : 7; u32 ref_deltas_lastframe2 : 7; u32 ref_deltas_lastframe3 : 7; u32 reserved : 4; } reg32; struct info_lastframe { u32 mode_deltas_lastframe0 : 7; u32 mode_deltas_lastframe1 : 7; u32 reserved0 : 2; u32 segmentation_enable_lstframe : 1; u32 last_show_frame : 1; u32 last_intra_only : 1; u32 last_widthheight_eqcur : 1; u32 color_space_lastkeyframe : 3; u32 reserved1 : 9; } reg33; u32 intercmd_base; struct intercmd_num { u32 intercmd_num : 24; u32 reserved : 8; } reg35; struct lasttile_size { u32 lasttile_size : 24; u32 reserved : 8; } reg36; struct hor_virstride { u32 y_hor_virstride : 9; u32 reserved0 : 7; u32 uv_hor_virstride : 9; u32 reserved1 : 7; } reg37_39[3]; u32 cur_poc; struct rlcwrite_base { u32 reserved : 3; u32 rlcwrite_base : 29; } reg41; struct pps_base { u32 reserved : 4; u32 pps_base : 28; } reg42; struct rps_base { u32 reserved : 4; u32 rps_base : 28; } reg43; struct strmd_error_en { u32 strmd_error_e : 28; u32 reserved : 4; } reg44; u32 vp9_error_info0; struct strmd_error_ctu { u32 strmd_error_ctu_xoffset : 8; u32 strmd_error_ctu_yoffset : 8; u32 streamfifo_space2full : 7; u32 reserved0 : 1; u32 error_ctu0_en : 1; u32 reserved1 : 7; } reg46; struct sao_ctu_position { u32 saowr_xoffet : 9; u32 reserved0 : 7; u32 saowr_yoffset : 10; u32 reserved1 : 6; } reg47; struct ystride { u32 virstride : 20; u32 reserved : 12; } reg48_50[3]; struct lastref_yuvstride { u32 lastref_yuv_virstride : 21; u32 reserved : 11; } reg51; u32 refcolmv_base; u32 reserved0[11]; u32 performance_cycle; u32 axi_ddr_rdata; u32 axi_ddr_wdata; struct fpgadebug_reset { u32 busifd_resetn : 1; u32 cabac_resetn : 1; u32 dec_ctrl_resetn : 1; u32 transd_resetn : 1; u32 intra_resetn : 1; u32 inter_resetn : 1; u32 recon_resetn : 1; u32 filer_resetn : 1; u32 reserved : 24; } reg67; struct performance_sel { u32 perf_cnt0_sel : 6; u32 reserved0 : 2; u32 perf_cnt1_sel : 6; u32 reserved1 : 2; u32 perf_cnt2_sel : 6; u32 reserved : 10; } reg68; u32 perf_cnt0; u32 perf_cnt1; u32 perf_cnt2; u32 reserved1[3]; u32 vp9_error_info1; struct error_ctu1 { u32 vp9_error_ctu1_x : 6; u32 reserved0 : 2; u32 vp9_error_ctu1_y : 6; u32 reserved1 : 1; u32 vp9_error_ctu1_en : 1; u32 reserved2 : 16; } reg76; u32 reserved2; } __packed; struct rkvdec_regs { struct rkvdec_common_regs common; union { struct rkvdec_h26x_regs h26x; struct rkvdec_vp9_regs vp9; }; } __packed; #endif /* RKVDEC_REGS_H_ */
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with Cregit http://github.com/cregit/cregit
Version 2.0-RC1