1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (c) 2022, Collabora 4 * 5 * Author: Benjamin Gaignard <benjamin.gaignard@collabora.com> 6 */ 7 8 #ifndef _ROCKCHIP_VPU981_REGS_H_ 9 #define _ROCKCHIP_VPU981_REGS_H_ 10 11 #include "hantro.h" 12 13 #define AV1_SWREG(nr) ((nr) * 4) 14 15 #define AV1_DEC_REG(b, s, m) \ 16 ((const struct hantro_reg) { \ 17 .base = AV1_SWREG(b), \ 18 .shift = s, \ 19 .mask = m, \ 20 }) 21 22 #define AV1_REG_INTERRUPT AV1_SWREG(1) 23 #define AV1_REG_INTERRUPT_DEC_RDY_INT BIT(12) 24 25 #define AV1_REG_CONFIG AV1_SWREG(2) 26 #define AV1_REG_CONFIG_DEC_CLK_GATE_E BIT(10) 27 28 #define av1_dec_e AV1_DEC_REG(1, 0, 0x1) 29 #define av1_dec_abort_e AV1_DEC_REG(1, 5, 0x1) 30 #define av1_dec_tile_int_e AV1_DEC_REG(1, 7, 0x1) 31 32 #define av1_dec_clk_gate_e AV1_DEC_REG(2, 10, 0x1) 33 34 #define av1_dec_out_ec_bypass AV1_DEC_REG(3, 8, 0x1) 35 #define av1_write_mvs_e AV1_DEC_REG(3, 12, 0x1) 36 #define av1_filtering_dis AV1_DEC_REG(3, 14, 0x1) 37 #define av1_dec_out_dis AV1_DEC_REG(3, 15, 0x1) 38 #define av1_dec_out_ec_byte_word AV1_DEC_REG(3, 16, 0x1) 39 #define av1_skip_mode AV1_DEC_REG(3, 26, 0x1) 40 #define av1_dec_mode AV1_DEC_REG(3, 27, 0x1f) 41 42 #define av1_ref_frames AV1_DEC_REG(4, 0, 0xf) 43 #define av1_pic_height_in_cbs AV1_DEC_REG(4, 6, 0x1fff) 44 #define av1_pic_width_in_cbs AV1_DEC_REG(4, 19, 0x1fff) 45 46 #define av1_ref_scaling_enable AV1_DEC_REG(5, 0, 0x1) 47 #define av1_filt_level_base_gt32 AV1_DEC_REG(5, 1, 0x1) 48 #define av1_error_resilient AV1_DEC_REG(5, 2, 0x1) 49 #define av1_force_interger_mv AV1_DEC_REG(5, 3, 0x1) 50 #define av1_allow_intrabc AV1_DEC_REG(5, 4, 0x1) 51 #define av1_allow_screen_content_tools AV1_DEC_REG(5, 5, 0x1) 52 #define av1_reduced_tx_set_used AV1_DEC_REG(5, 6, 0x1) 53 #define av1_enable_dual_filter AV1_DEC_REG(5, 7, 0x1) 54 #define av1_enable_jnt_comp AV1_DEC_REG(5, 8, 0x1) 55 #define av1_allow_filter_intra AV1_DEC_REG(5, 9, 0x1) 56 #define av1_enable_intra_edge_filter AV1_DEC_REG(5, 10, 0x1) 57 #define av1_tempor_mvp_e AV1_DEC_REG(5, 11, 0x1) 58 #define av1_allow_interintra AV1_DEC_REG(5, 12, 0x1) 59 #define av1_allow_masked_compound AV1_DEC_REG(5, 13, 0x1) 60 #define av1_enable_cdef AV1_DEC_REG(5, 14, 0x1) 61 #define av1_switchable_motion_mode AV1_DEC_REG(5, 15, 0x1) 62 #define av1_show_frame AV1_DEC_REG(5, 16, 0x1) 63 #define av1_superres_is_scaled AV1_DEC_REG(5, 17, 0x1) 64 #define av1_allow_warp AV1_DEC_REG(5, 18, 0x1) 65 #define av1_disable_cdf_update AV1_DEC_REG(5, 19, 0x1) 66 #define av1_preskip_segid AV1_DEC_REG(5, 20, 0x1) 67 #define av1_delta_lf_present AV1_DEC_REG(5, 21, 0x1) 68 #define av1_delta_lf_multi AV1_DEC_REG(5, 22, 0x1) 69 #define av1_delta_lf_res_log AV1_DEC_REG(5, 23, 0x3) 70 #define av1_strm_start_bit AV1_DEC_REG(5, 25, 0x7f) 71 72 #define av1_stream_len AV1_DEC_REG(6, 0, 0xffffffff) 73 74 #define av1_delta_q_present AV1_DEC_REG(7, 0, 0x1) 75 #define av1_delta_q_res_log AV1_DEC_REG(7, 1, 0x3) 76 #define av1_cdef_damping AV1_DEC_REG(7, 3, 0x3) 77 #define av1_cdef_bits AV1_DEC_REG(7, 5, 0x3) 78 #define av1_apply_grain AV1_DEC_REG(7, 7, 0x1) 79 #define av1_num_y_points_b AV1_DEC_REG(7, 8, 0x1) 80 #define av1_num_cb_points_b AV1_DEC_REG(7, 9, 0x1) 81 #define av1_num_cr_points_b AV1_DEC_REG(7, 10, 0x1) 82 #define av1_overlap_flag AV1_DEC_REG(7, 11, 0x1) 83 #define av1_clip_to_restricted_range AV1_DEC_REG(7, 12, 0x1) 84 #define av1_chroma_scaling_from_luma AV1_DEC_REG(7, 13, 0x1) 85 #define av1_random_seed AV1_DEC_REG(7, 14, 0xffff) 86 #define av1_blackwhite_e AV1_DEC_REG(7, 30, 0x1) 87 88 #define av1_scaling_shift AV1_DEC_REG(8, 0, 0xf) 89 #define av1_bit_depth_c_minus8 AV1_DEC_REG(8, 4, 0x3) 90 #define av1_bit_depth_y_minus8 AV1_DEC_REG(8, 6, 0x3) 91 #define av1_quant_base_qindex AV1_DEC_REG(8, 8, 0xff) 92 #define av1_idr_pic_e AV1_DEC_REG(8, 16, 0x1) 93 #define av1_superres_pic_width AV1_DEC_REG(8, 17, 0x7fff) 94 95 #define av1_ref4_sign_bias AV1_DEC_REG(9, 2, 0x1) 96 #define av1_ref5_sign_bias AV1_DEC_REG(9, 3, 0x1) 97 #define av1_ref6_sign_bias AV1_DEC_REG(9, 4, 0x1) 98 #define av1_mf1_type AV1_DEC_REG(9, 5, 0x7) 99 #define av1_mf2_type AV1_DEC_REG(9, 8, 0x7) 100 #define av1_mf3_type AV1_DEC_REG(9, 11, 0x7) 101 #define av1_scale_denom_minus9 AV1_DEC_REG(9, 14, 0x7) 102 #define av1_last_active_seg AV1_DEC_REG(9, 17, 0x7) 103 #define av1_context_update_tile_id AV1_DEC_REG(9, 20, 0xfff) 104 105 #define av1_tile_transpose AV1_DEC_REG(10, 0, 0x1) 106 #define av1_tile_enable AV1_DEC_REG(10, 1, 0x1) 107 #define av1_multicore_full_width AV1_DEC_REG(10, 2, 0xff) 108 #define av1_num_tile_rows_8k AV1_DEC_REG(10, 10, 0x7f) 109 #define av1_num_tile_cols_8k AV1_DEC_REG(10, 17, 0x7f) 110 #define av1_multicore_tile_start_x AV1_DEC_REG(10, 24, 0xff) 111 112 #define av1_use_temporal3_mvs AV1_DEC_REG(11, 0, 0x1) 113 #define av1_use_temporal2_mvs AV1_DEC_REG(11, 1, 0x1) 114 #define av1_use_temporal1_mvs AV1_DEC_REG(11, 2, 0x1) 115 #define av1_use_temporal0_mvs AV1_DEC_REG(11, 3, 0x1) 116 #define av1_comp_pred_mode AV1_DEC_REG(11, 4, 0x3) 117 #define av1_high_prec_mv_e AV1_DEC_REG(11, 7, 0x1) 118 #define av1_mcomp_filt_type AV1_DEC_REG(11, 8, 0x7) 119 #define av1_multicore_expect_context_update AV1_DEC_REG(11, 11, 0x1) 120 #define av1_multicore_sbx_offset AV1_DEC_REG(11, 12, 0x7f) 121 #define av1_multicore_tile_col AV1_DEC_REG(11, 19, 0x7f) 122 #define av1_transform_mode AV1_DEC_REG(11, 27, 0x7) 123 #define av1_dec_tile_size_mag AV1_DEC_REG(11, 30, 0x3) 124 125 #define av1_seg_quant_sign AV1_DEC_REG(12, 2, 0xff) 126 #define av1_max_cb_size AV1_DEC_REG(12, 10, 0x7) 127 #define av1_min_cb_size AV1_DEC_REG(12, 13, 0x7) 128 #define av1_comp_pred_fixed_ref AV1_DEC_REG(12, 16, 0x7) 129 #define av1_multicore_tile_width AV1_DEC_REG(12, 19, 0x7f) 130 #define av1_pic_height_pad AV1_DEC_REG(12, 26, 0x7) 131 #define av1_pic_width_pad AV1_DEC_REG(12, 29, 0x7) 132 133 #define av1_segment_e AV1_DEC_REG(13, 0, 0x1) 134 #define av1_segment_upd_e AV1_DEC_REG(13, 1, 0x1) 135 #define av1_segment_temp_upd_e AV1_DEC_REG(13, 2, 0x1) 136 #define av1_comp_pred_var_ref0_av1 AV1_DEC_REG(13, 3, 0x7) 137 #define av1_comp_pred_var_ref1_av1 AV1_DEC_REG(13, 6, 0x7) 138 #define av1_lossless_e AV1_DEC_REG(13, 9, 0x1) 139 #define av1_qp_delta_ch_ac_av1 AV1_DEC_REG(13, 11, 0x7f) 140 #define av1_qp_delta_ch_dc_av1 AV1_DEC_REG(13, 18, 0x7f) 141 #define av1_qp_delta_y_dc_av1 AV1_DEC_REG(13, 25, 0x7f) 142 143 #define av1_quant_seg0 AV1_DEC_REG(14, 0, 0xff) 144 #define av1_filt_level_seg0 AV1_DEC_REG(14, 8, 0x3f) 145 #define av1_skip_seg0 AV1_DEC_REG(14, 14, 0x1) 146 #define av1_refpic_seg0 AV1_DEC_REG(14, 15, 0xf) 147 #define av1_filt_level_delta0_seg0 AV1_DEC_REG(14, 19, 0x7f) 148 #define av1_filt_level0 AV1_DEC_REG(14, 26, 0x3f) 149 150 #define av1_quant_seg1 AV1_DEC_REG(15, 0, 0xff) 151 #define av1_filt_level_seg1 AV1_DEC_REG(15, 8, 0x3f) 152 #define av1_skip_seg1 AV1_DEC_REG(15, 14, 0x1) 153 #define av1_refpic_seg1 AV1_DEC_REG(15, 15, 0xf) 154 #define av1_filt_level_delta0_seg1 AV1_DEC_REG(15, 19, 0x7f) 155 #define av1_filt_level1 AV1_DEC_REG(15, 26, 0x3f) 156 157 #define av1_quant_seg2 AV1_DEC_REG(16, 0, 0xff) 158 #define av1_filt_level_seg2 AV1_DEC_REG(16, 8, 0x3f) 159 #define av1_skip_seg2 AV1_DEC_REG(16, 14, 0x1) 160 #define av1_refpic_seg2 AV1_DEC_REG(16, 15, 0xf) 161 #define av1_filt_level_delta0_seg2 AV1_DEC_REG(16, 19, 0x7f) 162 #define av1_filt_level2 AV1_DEC_REG(16, 26, 0x3f) 163 164 #define av1_quant_seg3 AV1_DEC_REG(17, 0, 0xff) 165 #define av1_filt_level_seg3 AV1_DEC_REG(17, 8, 0x3f) 166 #define av1_skip_seg3 AV1_DEC_REG(17, 14, 0x1) 167 #define av1_refpic_seg3 AV1_DEC_REG(17, 15, 0xf) 168 #define av1_filt_level_delta0_seg3 AV1_DEC_REG(17, 19, 0x7f) 169 #define av1_filt_level3 AV1_DEC_REG(17, 26, 0x3f) 170 171 #define av1_quant_seg4 AV1_DEC_REG(18, 0, 0xff) 172 #define av1_filt_level_seg4 AV1_DEC_REG(18, 8, 0x3f) 173 #define av1_skip_seg4 AV1_DEC_REG(18, 14, 0x1) 174 #define av1_refpic_seg4 AV1_DEC_REG(18, 15, 0xf) 175 #define av1_filt_level_delta0_seg4 AV1_DEC_REG(18, 19, 0x7f) 176 #define av1_lr_type AV1_DEC_REG(18, 26, 0x3f) 177 178 #define av1_quant_seg5 AV1_DEC_REG(19, 0, 0xff) 179 #define av1_filt_level_seg5 AV1_DEC_REG(19, 8, 0x3f) 180 #define av1_skip_seg5 AV1_DEC_REG(19, 14, 0x1) 181 #define av1_refpic_seg5 AV1_DEC_REG(19, 15, 0xf) 182 #define av1_filt_level_delta0_seg5 AV1_DEC_REG(19, 19, 0x7f) 183 #define av1_lr_unit_size AV1_DEC_REG(19, 26, 0x3f) 184 185 #define av1_filt_level_delta1_seg0 AV1_DEC_REG(20, 0, 0x7f) 186 #define av1_filt_level_delta2_seg0 AV1_DEC_REG(20, 7, 0x7f) 187 #define av1_filt_level_delta3_seg0 AV1_DEC_REG(20, 14, 0x7f) 188 #define av1_global_mv_seg0 AV1_DEC_REG(20, 21, 0x1) 189 #define av1_mf1_last_offset AV1_DEC_REG(20, 22, 0x1ff) 190 191 #define av1_filt_level_delta1_seg1 AV1_DEC_REG(21, 0, 0x7f) 192 #define av1_filt_level_delta2_seg1 AV1_DEC_REG(21, 7, 0x7f) 193 #define av1_filt_level_delta3_seg1 AV1_DEC_REG(21, 14, 0x7f) 194 #define av1_global_mv_seg1 AV1_DEC_REG(21, 21, 0x1) 195 #define av1_mf1_last2_offset AV1_DEC_REG(21, 22, 0x1ff) 196 197 #define av1_filt_level_delta1_seg2 AV1_DEC_REG(22, 0, 0x7f) 198 #define av1_filt_level_delta2_seg2 AV1_DEC_REG(22, 7, 0x7f) 199 #define av1_filt_level_delta3_seg2 AV1_DEC_REG(22, 14, 0x7f) 200 #define av1_global_mv_seg2 AV1_DEC_REG(22, 21, 0x1) 201 #define av1_mf1_last3_offset AV1_DEC_REG(22, 22, 0x1ff) 202 203 #define av1_filt_level_delta1_seg3 AV1_DEC_REG(23, 0, 0x7f) 204 #define av1_filt_level_delta2_seg3 AV1_DEC_REG(23, 7, 0x7f) 205 #define av1_filt_level_delta3_seg3 AV1_DEC_REG(23, 14, 0x7f) 206 #define av1_global_mv_seg3 AV1_DEC_REG(23, 21, 0x1) 207 #define av1_mf1_golden_offset AV1_DEC_REG(23, 22, 0x1ff) 208 209 #define av1_filt_level_delta1_seg4 AV1_DEC_REG(24, 0, 0x7f) 210 #define av1_filt_level_delta2_seg4 AV1_DEC_REG(24, 7, 0x7f) 211 #define av1_filt_level_delta3_seg4 AV1_DEC_REG(24, 14, 0x7f) 212 #define av1_global_mv_seg4 AV1_DEC_REG(24, 21, 0x1) 213 #define av1_mf1_bwdref_offset AV1_DEC_REG(24, 22, 0x1ff) 214 215 #define av1_filt_level_delta1_seg5 AV1_DEC_REG(25, 0, 0x7f) 216 #define av1_filt_level_delta2_seg5 AV1_DEC_REG(25, 7, 0x7f) 217 #define av1_filt_level_delta3_seg5 AV1_DEC_REG(25, 14, 0x7f) 218 #define av1_global_mv_seg5 AV1_DEC_REG(25, 21, 0x1) 219 #define av1_mf1_altref2_offset AV1_DEC_REG(25, 22, 0x1ff) 220 221 #define av1_filt_level_delta1_seg6 AV1_DEC_REG(26, 0, 0x7f) 222 #define av1_filt_level_delta2_seg6 AV1_DEC_REG(26, 7, 0x7f) 223 #define av1_filt_level_delta3_seg6 AV1_DEC_REG(26, 14, 0x7f) 224 #define av1_global_mv_seg6 AV1_DEC_REG(26, 21, 0x1) 225 #define av1_mf1_altref_offset AV1_DEC_REG(26, 22, 0x1ff) 226 227 #define av1_filt_level_delta1_seg7 AV1_DEC_REG(27, 0, 0x7f) 228 #define av1_filt_level_delta2_seg7 AV1_DEC_REG(27, 7, 0x7f) 229 #define av1_filt_level_delta3_seg7 AV1_DEC_REG(27, 14, 0x7f) 230 #define av1_global_mv_seg7 AV1_DEC_REG(27, 21, 0x1) 231 #define av1_mf2_last_offset AV1_DEC_REG(27, 22, 0x1ff) 232 233 #define av1_cb_offset AV1_DEC_REG(28, 0, 0x1ff) 234 #define av1_cb_luma_mult AV1_DEC_REG(28, 9, 0xff) 235 #define av1_cb_mult AV1_DEC_REG(28, 17, 0xff) 236 #define av1_quant_delta_v_dc AV1_DEC_REG(28, 25, 0x7f) 237 238 #define av1_cr_offset AV1_DEC_REG(29, 0, 0x1ff) 239 #define av1_cr_luma_mult AV1_DEC_REG(29, 9, 0xff) 240 #define av1_cr_mult AV1_DEC_REG(29, 17, 0xff) 241 #define av1_quant_delta_v_ac AV1_DEC_REG(29, 25, 0x7f) 242 243 #define av1_filt_ref_adj_5 AV1_DEC_REG(30, 0, 0x7f) 244 #define av1_filt_ref_adj_4 AV1_DEC_REG(30, 7, 0x7f) 245 #define av1_filt_mb_adj_1 AV1_DEC_REG(30, 14, 0x7f) 246 #define av1_filt_mb_adj_0 AV1_DEC_REG(30, 21, 0x7f) 247 #define av1_filt_sharpness AV1_DEC_REG(30, 28, 0x7) 248 249 #define av1_quant_seg6 AV1_DEC_REG(31, 0, 0xff) 250 #define av1_filt_level_seg6 AV1_DEC_REG(31, 8, 0x3f) 251 #define av1_skip_seg6 AV1_DEC_REG(31, 14, 0x1) 252 #define av1_refpic_seg6 AV1_DEC_REG(31, 15, 0xf) 253 #define av1_filt_level_delta0_seg6 AV1_DEC_REG(31, 19, 0x7f) 254 #define av1_skip_ref0 AV1_DEC_REG(31, 26, 0xf) 255 256 #define av1_quant_seg7 AV1_DEC_REG(32, 0, 0xff) 257 #define av1_filt_level_seg7 AV1_DEC_REG(32, 8, 0x3f) 258 #define av1_skip_seg7 AV1_DEC_REG(32, 14, 0x1) 259 #define av1_refpic_seg7 AV1_DEC_REG(32, 15, 0xf) 260 #define av1_filt_level_delta0_seg7 AV1_DEC_REG(32, 19, 0x7f) 261 #define av1_skip_ref1 AV1_DEC_REG(32, 26, 0xf) 262 263 #define av1_ref0_height AV1_DEC_REG(33, 0, 0xffff) 264 #define av1_ref0_width AV1_DEC_REG(33, 16, 0xffff) 265 266 #define av1_ref1_height AV1_DEC_REG(34, 0, 0xffff) 267 #define av1_ref1_width AV1_DEC_REG(34, 16, 0xffff) 268 269 #define av1_ref2_height AV1_DEC_REG(35, 0, 0xffff) 270 #define av1_ref2_width AV1_DEC_REG(35, 16, 0xffff) 271 272 #define av1_ref0_ver_scale AV1_DEC_REG(36, 0, 0xffff) 273 #define av1_ref0_hor_scale AV1_DEC_REG(36, 16, 0xffff) 274 275 #define av1_ref1_ver_scale AV1_DEC_REG(37, 0, 0xffff) 276 #define av1_ref1_hor_scale AV1_DEC_REG(37, 16, 0xffff) 277 278 #define av1_ref2_ver_scale AV1_DEC_REG(38, 0, 0xffff) 279 #define av1_ref2_hor_scale AV1_DEC_REG(38, 16, 0xffff) 280 281 #define av1_ref3_ver_scale AV1_DEC_REG(39, 0, 0xffff) 282 #define av1_ref3_hor_scale AV1_DEC_REG(39, 16, 0xffff) 283 284 #define av1_ref4_ver_scale AV1_DEC_REG(40, 0, 0xffff) 285 #define av1_ref4_hor_scale AV1_DEC_REG(40, 16, 0xffff) 286 287 #define av1_ref5_ver_scale AV1_DEC_REG(41, 0, 0xffff) 288 #define av1_ref5_hor_scale AV1_DEC_REG(41, 16, 0xffff) 289 290 #define av1_ref6_ver_scale AV1_DEC_REG(42, 0, 0xffff) 291 #define av1_ref6_hor_scale AV1_DEC_REG(42, 16, 0xffff) 292 293 #define av1_ref3_height AV1_DEC_REG(43, 0, 0xffff) 294 #define av1_ref3_width AV1_DEC_REG(43, 16, 0xffff) 295 296 #define av1_ref4_height AV1_DEC_REG(44, 0, 0xffff) 297 #define av1_ref4_width AV1_DEC_REG(44, 16, 0xffff) 298 299 #define av1_ref5_height AV1_DEC_REG(45, 0, 0xffff) 300 #define av1_ref5_width AV1_DEC_REG(45, 16, 0xffff) 301 302 #define av1_ref6_height AV1_DEC_REG(46, 0, 0xffff) 303 #define av1_ref6_width AV1_DEC_REG(46, 16, 0xffff) 304 305 #define av1_mf2_last2_offset AV1_DEC_REG(47, 0, 0x1ff) 306 #define av1_mf2_last3_offset AV1_DEC_REG(47, 9, 0x1ff) 307 #define av1_mf2_golden_offset AV1_DEC_REG(47, 18, 0x1ff) 308 #define av1_qmlevel_y AV1_DEC_REG(47, 27, 0xf) 309 310 #define av1_mf2_bwdref_offset AV1_DEC_REG(48, 0, 0x1ff) 311 #define av1_mf2_altref2_offset AV1_DEC_REG(48, 9, 0x1ff) 312 #define av1_mf2_altref_offset AV1_DEC_REG(48, 18, 0x1ff) 313 #define av1_qmlevel_u AV1_DEC_REG(48, 27, 0xf) 314 315 #define av1_filt_ref_adj_6 AV1_DEC_REG(49, 0, 0x7f) 316 #define av1_filt_ref_adj_7 AV1_DEC_REG(49, 7, 0x7f) 317 #define av1_qmlevel_v AV1_DEC_REG(49, 14, 0xf) 318 319 #define av1_superres_chroma_step AV1_DEC_REG(51, 0, 0x3fff) 320 #define av1_superres_luma_step AV1_DEC_REG(51, 14, 0x3fff) 321 322 #define av1_superres_init_chroma_subpel_x AV1_DEC_REG(52, 0, 0x3fff) 323 #define av1_superres_init_luma_subpel_x AV1_DEC_REG(52, 14, 0x3fff) 324 325 #define av1_cdef_chroma_secondary_strength AV1_DEC_REG(53, 0, 0xffff) 326 #define av1_cdef_luma_secondary_strength AV1_DEC_REG(53, 16, 0xffff) 327 328 #define av1_apf_threshold AV1_DEC_REG(55, 0, 0xffff) 329 #define av1_apf_single_pu_mode AV1_DEC_REG(55, 30, 0x1) 330 #define av1_apf_disable AV1_DEC_REG(55, 30, 0x1) 331 332 #define av1_dec_max_burst AV1_DEC_REG(58, 0, 0xff) 333 #define av1_dec_buswidth AV1_DEC_REG(58, 8, 0x7) 334 #define av1_dec_multicore_mode AV1_DEC_REG(58, 11, 0x3) 335 #define av1_dec_axi_wd_id_e AV1_DEC_REG(58, 13, 0x1) 336 #define av1_dec_axi_rd_id_e AV1_DEC_REG(58, 14, 0x1) 337 #define av1_dec_mc_polltime AV1_DEC_REG(58, 17, 0x3ff) 338 #define av1_dec_mc_pollmode AV1_DEC_REG(58, 27, 0x3) 339 340 #define av1_filt_ref_adj_3 AV1_DEC_REG(59, 0, 0x3f) 341 #define av1_filt_ref_adj_2 AV1_DEC_REG(59, 7, 0x3f) 342 #define av1_filt_ref_adj_1 AV1_DEC_REG(59, 14, 0x3f) 343 #define av1_filt_ref_adj_0 AV1_DEC_REG(59, 21, 0x3f) 344 #define av1_ref0_sign_bias AV1_DEC_REG(59, 28, 0x1) 345 #define av1_ref1_sign_bias AV1_DEC_REG(59, 29, 0x1) 346 #define av1_ref2_sign_bias AV1_DEC_REG(59, 30, 0x1) 347 #define av1_ref3_sign_bias AV1_DEC_REG(59, 31, 0x1) 348 349 #define av1_cur_last_roffset AV1_DEC_REG(184, 0, 0x1ff) 350 #define av1_cur_last_offset AV1_DEC_REG(184, 9, 0x1ff) 351 #define av1_mf3_last_offset AV1_DEC_REG(184, 18, 0x1ff) 352 #define av1_ref0_gm_mode AV1_DEC_REG(184, 27, 0x3) 353 354 #define av1_cur_last2_roffset AV1_DEC_REG(185, 0, 0x1ff) 355 #define av1_cur_last2_offset AV1_DEC_REG(185, 9, 0x1ff) 356 #define av1_mf3_last2_offset AV1_DEC_REG(185, 18, 0x1ff) 357 #define av1_ref1_gm_mode AV1_DEC_REG(185, 27, 0x3) 358 359 #define av1_cur_last3_roffset AV1_DEC_REG(186, 0, 0x1ff) 360 #define av1_cur_last3_offset AV1_DEC_REG(186, 9, 0x1ff) 361 #define av1_mf3_last3_offset AV1_DEC_REG(186, 18, 0x1ff) 362 #define av1_ref2_gm_mode AV1_DEC_REG(186, 27, 0x3) 363 364 #define av1_cur_golden_roffset AV1_DEC_REG(187, 0, 0x1ff) 365 #define av1_cur_golden_offset AV1_DEC_REG(187, 9, 0x1ff) 366 #define av1_mf3_golden_offset AV1_DEC_REG(187, 18, 0x1ff) 367 #define av1_ref3_gm_mode AV1_DEC_REG(187, 27, 0x3) 368 369 #define av1_cur_bwdref_roffset AV1_DEC_REG(188, 0, 0x1ff) 370 #define av1_cur_bwdref_offset AV1_DEC_REG(188, 9, 0x1ff) 371 #define av1_mf3_bwdref_offset AV1_DEC_REG(188, 18, 0x1ff) 372 #define av1_ref4_gm_mode AV1_DEC_REG(188, 27, 0x3) 373 374 #define av1_cur_altref2_roffset AV1_DEC_REG(257, 0, 0x1ff) 375 #define av1_cur_altref2_offset AV1_DEC_REG(257, 9, 0x1ff) 376 #define av1_mf3_altref2_offset AV1_DEC_REG(257, 18, 0x1ff) 377 #define av1_ref5_gm_mode AV1_DEC_REG(257, 27, 0x3) 378 379 #define av1_strm_buffer_len AV1_DEC_REG(258, 0, 0xffffffff) 380 381 #define av1_strm_start_offset AV1_DEC_REG(259, 0, 0xffffffff) 382 383 #define av1_ppd_blend_exist AV1_DEC_REG(260, 21, 0x1) 384 #define av1_ppd_dith_exist AV1_DEC_REG(260, 23, 0x1) 385 #define av1_ablend_crop_e AV1_DEC_REG(260, 24, 0x1) 386 #define av1_pp_format_p010_e AV1_DEC_REG(260, 25, 0x1) 387 #define av1_pp_format_customer1_e AV1_DEC_REG(260, 26, 0x1) 388 #define av1_pp_crop_exist AV1_DEC_REG(260, 27, 0x1) 389 #define av1_pp_up_level AV1_DEC_REG(260, 28, 0x1) 390 #define av1_pp_down_level AV1_DEC_REG(260, 29, 0x3) 391 #define av1_pp_exist AV1_DEC_REG(260, 31, 0x1) 392 393 #define av1_cur_altref_roffset AV1_DEC_REG(262, 0, 0x1ff) 394 #define av1_cur_altref_offset AV1_DEC_REG(262, 9, 0x1ff) 395 #define av1_mf3_altref_offset AV1_DEC_REG(262, 18, 0x1ff) 396 #define av1_ref6_gm_mode AV1_DEC_REG(262, 27, 0x3) 397 398 #define av1_cdef_luma_primary_strength AV1_DEC_REG(263, 0, 0xffffffff) 399 400 #define av1_cdef_chroma_primary_strength AV1_DEC_REG(264, 0, 0xffffffff) 401 402 #define av1_axi_arqos AV1_DEC_REG(265, 0, 0xf) 403 #define av1_axi_awqos AV1_DEC_REG(265, 4, 0xf) 404 #define av1_axi_wr_ostd_threshold AV1_DEC_REG(265, 8, 0x3ff) 405 #define av1_axi_rd_ostd_threshold AV1_DEC_REG(265, 18, 0x3ff) 406 #define av1_axi_wr_4k_dis AV1_DEC_REG(265, 31, 0x1) 407 408 #define av1_128bit_mode AV1_DEC_REG(266, 5, 0x1) 409 #define av1_wr_shaper_bypass AV1_DEC_REG(266, 10, 0x1) 410 #define av1_error_conceal_e AV1_DEC_REG(266, 30, 0x1) 411 412 #define av1_superres_chroma_step_invra AV1_DEC_REG(298, 0, 0xffff) 413 #define av1_superres_luma_step_invra AV1_DEC_REG(298, 16, 0xffff) 414 415 #define av1_dec_alignment AV1_DEC_REG(314, 0, 0xffff) 416 417 #define av1_ext_timeout_cycles AV1_DEC_REG(318, 0, 0x7fffffff) 418 #define av1_ext_timeout_override_e AV1_DEC_REG(318, 31, 0x1) 419 420 #define av1_timeout_cycles AV1_DEC_REG(319, 0, 0x7fffffff) 421 #define av1_timeout_override_e AV1_DEC_REG(319, 31, 0x1) 422 423 #define av1_pp_out_e AV1_DEC_REG(320, 0, 0x1) 424 #define av1_pp_cr_first AV1_DEC_REG(320, 1, 0x1) 425 #define av1_pp_out_mode AV1_DEC_REG(320, 2, 0x1) 426 #define av1_pp_out_tile_e AV1_DEC_REG(320, 3, 0x1) 427 #define av1_pp_status AV1_DEC_REG(320, 4, 0xf) 428 #define av1_pp_in_blk_size AV1_DEC_REG(320, 8, 0x7) 429 #define av1_pp_out_p010_fmt AV1_DEC_REG(320, 11, 0x3) 430 #define av1_pp_out_rgb_fmt AV1_DEC_REG(320, 13, 0x1f) 431 #define av1_rgb_range_max AV1_DEC_REG(320, 18, 0xfff) 432 #define av1_pp_rgb_planar AV1_DEC_REG(320, 30, 0x1) 433 434 #define av1_scale_hratio AV1_DEC_REG(322, 0, 0x3ffff) 435 #define av1_pp_out_format AV1_DEC_REG(322, 18, 0x1f) 436 #define av1_ver_scale_mode AV1_DEC_REG(322, 23, 0x3) 437 #define av1_hor_scale_mode AV1_DEC_REG(322, 25, 0x3) 438 #define av1_pp_in_format AV1_DEC_REG(322, 27, 0x1f) 439 440 #define av1_pp_out_c_stride AV1_DEC_REG(329, 0, 0xffff) 441 #define av1_pp_out_y_stride AV1_DEC_REG(329, 16, 0xffff) 442 443 #define av1_pp_in_height AV1_DEC_REG(331, 0, 0xffff) 444 #define av1_pp_in_width AV1_DEC_REG(331, 16, 0xffff) 445 446 #define av1_pp_out_height AV1_DEC_REG(332, 0, 0xffff) 447 #define av1_pp_out_width AV1_DEC_REG(332, 16, 0xffff) 448 449 #define av1_pp1_dup_ver AV1_DEC_REG(394, 0, 0xff) 450 #define av1_pp1_dup_hor AV1_DEC_REG(394, 8, 0xff) 451 #define av1_pp0_dup_ver AV1_DEC_REG(394, 16, 0xff) 452 #define av1_pp0_dup_hor AV1_DEC_REG(394, 24, 0xff) 453 454 #define AV1_TILE_OUT_LU (AV1_SWREG(65)) 455 #define AV1_REFERENCE_Y(i) (AV1_SWREG(67) + ((i) * 0x8)) 456 #define AV1_SEGMENTATION (AV1_SWREG(81)) 457 #define AV1_GLOBAL_MODEL (AV1_SWREG(83)) 458 #define AV1_CDEF_COL (AV1_SWREG(85)) 459 #define AV1_SR_COL (AV1_SWREG(89)) 460 #define AV1_LR_COL (AV1_SWREG(91)) 461 #define AV1_FILM_GRAIN (AV1_SWREG(95)) 462 #define AV1_TILE_OUT_CH (AV1_SWREG(99)) 463 #define AV1_REFERENCE_CB(i) (AV1_SWREG(101) + ((i) * 0x8)) 464 #define AV1_TILE_OUT_MV (AV1_SWREG(133)) 465 #define AV1_REFERENCE_MV(i) (AV1_SWREG(135) + ((i) * 0x8)) 466 #define AV1_TILE_BASE (AV1_SWREG(167)) 467 #define AV1_INPUT_STREAM (AV1_SWREG(169)) 468 #define AV1_PROP_TABLE_OUT (AV1_SWREG(171)) 469 #define AV1_PROP_TABLE (AV1_SWREG(173)) 470 #define AV1_MC_SYNC_CURR (AV1_SWREG(175)) 471 #define AV1_MC_SYNC_LEFT (AV1_SWREG(177)) 472 #define AV1_DB_DATA_COL (AV1_SWREG(179)) 473 #define AV1_DB_CTRL_COL (AV1_SWREG(183)) 474 #define AV1_PP_OUT_LU (AV1_SWREG(326)) 475 #define AV1_PP_OUT_CH (AV1_SWREG(328)) 476 477 #endif /* _ROCKCHIP_VPU981_REGS_H_ */ 478