1*437bfbebSnyanmisaka /* 2*437bfbebSnyanmisaka * Copyright 2016 Rockchip Electronics Co. LTD 3*437bfbebSnyanmisaka * 4*437bfbebSnyanmisaka * Licensed under the Apache License, Version 2.0 (the "License"); 5*437bfbebSnyanmisaka * you may not use this file except in compliance with the License. 6*437bfbebSnyanmisaka * You may obtain a copy of the License at 7*437bfbebSnyanmisaka * 8*437bfbebSnyanmisaka * http://www.apache.org/licenses/LICENSE-2.0 9*437bfbebSnyanmisaka * 10*437bfbebSnyanmisaka * Unless required by applicable law or agreed to in writing, software 11*437bfbebSnyanmisaka * distributed under the License is distributed on an "AS IS" BASIS, 12*437bfbebSnyanmisaka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*437bfbebSnyanmisaka * See the License for the specific language governing permissions and 14*437bfbebSnyanmisaka * limitations under the License. 15*437bfbebSnyanmisaka */ 16*437bfbebSnyanmisaka #ifndef __HAL_VP8D_VDPU1_REG_H__ 17*437bfbebSnyanmisaka #define __HAL_VP8D_VDPU1_REG_H__ 18*437bfbebSnyanmisaka 19*437bfbebSnyanmisaka #include "rk_type.h" 20*437bfbebSnyanmisaka 21*437bfbebSnyanmisaka #define VP8HWD_VP7 1 22*437bfbebSnyanmisaka #define VP8HWD_VP8 2 23*437bfbebSnyanmisaka #define VP8HWD_WEBP 3 24*437bfbebSnyanmisaka 25*437bfbebSnyanmisaka #define DEC_MODE_VP7 9 26*437bfbebSnyanmisaka #define DEC_MODE_VP8 10 27*437bfbebSnyanmisaka 28*437bfbebSnyanmisaka #define VP8D_PROB_TABLE_SIZE (1<<16) 29*437bfbebSnyanmisaka #define VP8D_MAX_SEGMAP_SIZE (2048 + 1024) 30*437bfbebSnyanmisaka 31*437bfbebSnyanmisaka #define VP8D_REG_NUM 101 32*437bfbebSnyanmisaka 33*437bfbebSnyanmisaka typedef struct { 34*437bfbebSnyanmisaka struct { 35*437bfbebSnyanmisaka RK_U32 build_version : 3; 36*437bfbebSnyanmisaka RK_U32 product_IDen : 1; 37*437bfbebSnyanmisaka RK_U32 minor_version : 8; 38*437bfbebSnyanmisaka RK_U32 major_version : 4; 39*437bfbebSnyanmisaka RK_U32 product_numer : 16; 40*437bfbebSnyanmisaka } reg0_id; 41*437bfbebSnyanmisaka 42*437bfbebSnyanmisaka struct { 43*437bfbebSnyanmisaka RK_U32 sw_dec_e : 1; 44*437bfbebSnyanmisaka RK_U32 reserve4 : 3; 45*437bfbebSnyanmisaka RK_U32 sw_dec_irq_dis : 1; 46*437bfbebSnyanmisaka RK_U32 reserve3 : 3; 47*437bfbebSnyanmisaka RK_U32 sw_dec_irq : 1; 48*437bfbebSnyanmisaka RK_U32 reserve2 : 3; 49*437bfbebSnyanmisaka RK_U32 sw_dec_rdy_int : 1; 50*437bfbebSnyanmisaka RK_U32 sw_dec_bus_int : 1; 51*437bfbebSnyanmisaka RK_U32 sw_dec_buffer_int : 1; 52*437bfbebSnyanmisaka RK_U32 sw_dec_aso_int : 1; 53*437bfbebSnyanmisaka RK_U32 sw_dec_error_int : 1; 54*437bfbebSnyanmisaka RK_U32 sw_dec_slice_int : 1; 55*437bfbebSnyanmisaka RK_U32 sw_dec_timeout : 1; 56*437bfbebSnyanmisaka RK_U32 reseved1 : 5; 57*437bfbebSnyanmisaka RK_U32 sw_dec_pic_inf : 1; 58*437bfbebSnyanmisaka RK_U32 reserved0 : 7; 59*437bfbebSnyanmisaka } reg1_interrupt; 60*437bfbebSnyanmisaka 61*437bfbebSnyanmisaka struct { 62*437bfbebSnyanmisaka RK_U32 sw_dec_max_burst : 5; 63*437bfbebSnyanmisaka RK_U32 sw_dec_scmd_dis : 1; 64*437bfbebSnyanmisaka RK_U32 sw_dec_adv_pre_dis : 1; 65*437bfbebSnyanmisaka RK_U32 sw_priority_mode : 1; /* Not used */ 66*437bfbebSnyanmisaka RK_U32 sw_dec_out_endian : 1; 67*437bfbebSnyanmisaka RK_U32 sw_dec_in_endian : 1; 68*437bfbebSnyanmisaka RK_U32 sw_dec_clk_gate_e : 1; 69*437bfbebSnyanmisaka RK_U32 sw_dec_latency : 6; 70*437bfbebSnyanmisaka RK_U32 sw_dec_out_tiled_e : 1; /* Not used */ 71*437bfbebSnyanmisaka RK_U32 sw_dec_data_disc_e : 1; 72*437bfbebSnyanmisaka RK_U32 sw_dec_outswap32_e : 1; 73*437bfbebSnyanmisaka RK_U32 sw_dec_inswap32_e : 1; 74*437bfbebSnyanmisaka RK_U32 sw_dec_strendian_e : 1; 75*437bfbebSnyanmisaka RK_U32 sw_dec_strswap32_e : 1; 76*437bfbebSnyanmisaka RK_U32 sw_dec_timeout_e : 1; 77*437bfbebSnyanmisaka RK_U32 sw_dec_axi_rn_id : 8; 78*437bfbebSnyanmisaka } reg2_dec_ctrl; 79*437bfbebSnyanmisaka 80*437bfbebSnyanmisaka struct { 81*437bfbebSnyanmisaka RK_U32 sw_dec_axi_wr_id : 8; 82*437bfbebSnyanmisaka RK_U32 sw_dec_ahb_hlock_e : 1; /* Not used */ 83*437bfbebSnyanmisaka RK_U32 sw_picord_count_e : 1; 84*437bfbebSnyanmisaka RK_U32 sw_seq_mbaff_e : 1; 85*437bfbebSnyanmisaka RK_U32 sw_reftopfirst_e : 1; 86*437bfbebSnyanmisaka RK_U32 sw_write_mvs_e : 1; 87*437bfbebSnyanmisaka RK_U32 sw_pic_fixed_quant : 1; 88*437bfbebSnyanmisaka RK_U32 sw_filtering_dis : 1; 89*437bfbebSnyanmisaka RK_U32 sw_dec_out_dis : 1; 90*437bfbebSnyanmisaka RK_U32 sw_ref_topfield_e : 1; 91*437bfbebSnyanmisaka RK_U32 sw_sorenson_e : 1; 92*437bfbebSnyanmisaka RK_U32 sw_fwd_interlace_e : 1; 93*437bfbebSnyanmisaka RK_U32 sw_pic_topfield_e : 1; 94*437bfbebSnyanmisaka RK_U32 sw_pic_inter_e : 1; 95*437bfbebSnyanmisaka RK_U32 sw_pic_b_e : 1; 96*437bfbebSnyanmisaka RK_U32 sw_pic_fieldmode_e : 1; 97*437bfbebSnyanmisaka RK_U32 sw_pic_interlace_e : 1; 98*437bfbebSnyanmisaka RK_U32 sw_pjpeg_e : 1; 99*437bfbebSnyanmisaka RK_U32 sw_divx3_e : 1; /* Not used */ 100*437bfbebSnyanmisaka RK_U32 sw_skip_mode : 1; 101*437bfbebSnyanmisaka RK_U32 sw_rlc_mode_e : 1; 102*437bfbebSnyanmisaka RK_U32 sw_dec_mode : 4; 103*437bfbebSnyanmisaka } reg3; 104*437bfbebSnyanmisaka 105*437bfbebSnyanmisaka struct { 106*437bfbebSnyanmisaka RK_U32 sw_pic_mb_h_ext : 3; 107*437bfbebSnyanmisaka RK_U32 sw_pic_mb_w_ext : 3; 108*437bfbebSnyanmisaka RK_U32 sw_alt_scan_e : 1; 109*437bfbebSnyanmisaka RK_U32 sw_mb_height_off : 4; 110*437bfbebSnyanmisaka RK_U32 sw_pic_mb_hight_p : 8; 111*437bfbebSnyanmisaka RK_U32 sw_mb_width_off : 4; 112*437bfbebSnyanmisaka RK_U32 sw_pic_mb_width : 9; 113*437bfbebSnyanmisaka } reg4; 114*437bfbebSnyanmisaka 115*437bfbebSnyanmisaka struct { 116*437bfbebSnyanmisaka RK_U32 sw_boolean_range : 8; 117*437bfbebSnyanmisaka RK_U32 sw_boolean_value : 8; 118*437bfbebSnyanmisaka RK_U32 reserved1 : 2; 119*437bfbebSnyanmisaka RK_U32 sw_strm1_start_bit : 6; 120*437bfbebSnyanmisaka RK_U32 reserved0 : 2; 121*437bfbebSnyanmisaka RK_U32 sw_strm0_start_bit : 6; 122*437bfbebSnyanmisaka } reg5; 123*437bfbebSnyanmisaka 124*437bfbebSnyanmisaka struct { 125*437bfbebSnyanmisaka RK_U32 sw_stream_len : 24; 126*437bfbebSnyanmisaka RK_U32 sw_ch_8pix_ileav_e : 1; 127*437bfbebSnyanmisaka RK_U32 sw_init_qp : 6; 128*437bfbebSnyanmisaka RK_U32 sw_start_code_e : 1; 129*437bfbebSnyanmisaka } reg6; 130*437bfbebSnyanmisaka 131*437bfbebSnyanmisaka struct { 132*437bfbebSnyanmisaka RK_U32 reserved1 : 5; 133*437bfbebSnyanmisaka RK_U32 sw_vp7_version : 1; 134*437bfbebSnyanmisaka RK_U32 sw_dc_match1 : 3; 135*437bfbebSnyanmisaka RK_U32 sw_dc_match0 : 3; 136*437bfbebSnyanmisaka RK_U32 sw_bilin_mc_e : 1; 137*437bfbebSnyanmisaka RK_U32 sw_ch_mv_res : 1; 138*437bfbebSnyanmisaka RK_U32 reserved0 : 6; 139*437bfbebSnyanmisaka RK_U32 sw_dct2_start_bit : 6; 140*437bfbebSnyanmisaka RK_U32 sw_dct1_start_bit : 6; 141*437bfbebSnyanmisaka } reg7; 142*437bfbebSnyanmisaka 143*437bfbebSnyanmisaka struct { 144*437bfbebSnyanmisaka RK_U32 sw_dc_comp1 : 16; 145*437bfbebSnyanmisaka RK_U32 sw_dc_comp0 : 16; 146*437bfbebSnyanmisaka } reg8; 147*437bfbebSnyanmisaka 148*437bfbebSnyanmisaka struct { 149*437bfbebSnyanmisaka RK_U32 sw_stream1_len : 24; 150*437bfbebSnyanmisaka RK_U32 sw_coeffs_part_am : 4; 151*437bfbebSnyanmisaka RK_U32 reserved0 : 4; 152*437bfbebSnyanmisaka } reg9; 153*437bfbebSnyanmisaka 154*437bfbebSnyanmisaka RK_U32 reg10_segment_map_base; 155*437bfbebSnyanmisaka 156*437bfbebSnyanmisaka struct { 157*437bfbebSnyanmisaka RK_U32 sw_dct_start_bit_7 : 6; 158*437bfbebSnyanmisaka RK_U32 sw_dct_start_bit_6 : 6; 159*437bfbebSnyanmisaka RK_U32 sw_dct_start_bit_5 : 6; 160*437bfbebSnyanmisaka RK_U32 sw_dct_start_bit_4 : 6; 161*437bfbebSnyanmisaka RK_U32 sw_dct_start_bit_3 : 6; 162*437bfbebSnyanmisaka RK_U32 reserved0 : 2; 163*437bfbebSnyanmisaka } reg11; 164*437bfbebSnyanmisaka 165*437bfbebSnyanmisaka RK_U32 reg12_input_stream_base; 166*437bfbebSnyanmisaka RK_U32 reg13_cur_pic_base; /* Decoder output base */ 167*437bfbebSnyanmisaka RK_U32 reg14_ref0_base; /* sw_ch_out_base */ 168*437bfbebSnyanmisaka RK_U32 reg15_17[3]; /* Not used */ 169*437bfbebSnyanmisaka 170*437bfbebSnyanmisaka RK_U32 reg18_golden_ref_base; 171*437bfbebSnyanmisaka 172*437bfbebSnyanmisaka union { 173*437bfbebSnyanmisaka RK_U32 alternate_ref_base; /* sw_refer5_base */ 174*437bfbebSnyanmisaka struct { 175*437bfbebSnyanmisaka RK_U32 sw_scan_map_5 : 6; 176*437bfbebSnyanmisaka RK_U32 sw_scan_map_4 : 6; 177*437bfbebSnyanmisaka RK_U32 sw_scan_map_3 : 6; 178*437bfbebSnyanmisaka RK_U32 sw_scan_map_2 : 6; 179*437bfbebSnyanmisaka RK_U32 sw_scan_map_1 : 6; 180*437bfbebSnyanmisaka RK_U32 reserved0 : 2; 181*437bfbebSnyanmisaka }; 182*437bfbebSnyanmisaka } reg19; 183*437bfbebSnyanmisaka 184*437bfbebSnyanmisaka struct { 185*437bfbebSnyanmisaka RK_U32 sw_scan_map_10 : 6; 186*437bfbebSnyanmisaka RK_U32 sw_scan_map_9 : 6; 187*437bfbebSnyanmisaka RK_U32 sw_scan_map_8 : 6; 188*437bfbebSnyanmisaka RK_U32 sw_scan_map_7 : 6; 189*437bfbebSnyanmisaka RK_U32 sw_scan_map_6 : 6; 190*437bfbebSnyanmisaka RK_U32 reserved0 : 2; 191*437bfbebSnyanmisaka } reg20; 192*437bfbebSnyanmisaka 193*437bfbebSnyanmisaka struct { 194*437bfbebSnyanmisaka RK_U32 sw_scan_map_15 : 6; 195*437bfbebSnyanmisaka RK_U32 sw_scan_map_14 : 6; 196*437bfbebSnyanmisaka RK_U32 sw_scan_map_13 : 6; 197*437bfbebSnyanmisaka RK_U32 sw_scan_map_12 : 6; 198*437bfbebSnyanmisaka RK_U32 sw_scan_map_11 : 6; 199*437bfbebSnyanmisaka RK_U32 reserved0 : 2; 200*437bfbebSnyanmisaka } reg21; 201*437bfbebSnyanmisaka 202*437bfbebSnyanmisaka RK_U32 reg_dct_strm0_base[5]; /* From reg22 to reg26 */ 203*437bfbebSnyanmisaka RK_U32 reg27_bitpl_ctrl_base; 204*437bfbebSnyanmisaka RK_U32 reg_dct_strm1_base[2]; /* From reg28 to reg29 */ 205*437bfbebSnyanmisaka 206*437bfbebSnyanmisaka struct { 207*437bfbebSnyanmisaka RK_U32 sw_filt_mb_adj_3 : 7; 208*437bfbebSnyanmisaka RK_U32 sw_filt_mb_adj_2 : 7; 209*437bfbebSnyanmisaka RK_U32 sw_filt_mb_adj_1 : 7; 210*437bfbebSnyanmisaka RK_U32 sw_filt_mb_adj_0 : 7; 211*437bfbebSnyanmisaka RK_U32 sw_filt_sharpness : 3; 212*437bfbebSnyanmisaka RK_U32 sw_filt_type : 1; 213*437bfbebSnyanmisaka } reg30; 214*437bfbebSnyanmisaka 215*437bfbebSnyanmisaka struct { 216*437bfbebSnyanmisaka RK_U32 sw_filt_ref_adj_3 : 7; 217*437bfbebSnyanmisaka RK_U32 sw_filt_ref_adj_2 : 7; 218*437bfbebSnyanmisaka RK_U32 sw_filt_ref_adj_1 : 7; 219*437bfbebSnyanmisaka RK_U32 sw_filt_ref_adj_0 : 7; 220*437bfbebSnyanmisaka RK_U32 reserved0 : 4; 221*437bfbebSnyanmisaka } reg31; 222*437bfbebSnyanmisaka 223*437bfbebSnyanmisaka struct { 224*437bfbebSnyanmisaka RK_U32 sw_filt_level_3 : 6; 225*437bfbebSnyanmisaka RK_U32 sw_filt_level_2 : 6; 226*437bfbebSnyanmisaka RK_U32 sw_filt_level_1 : 6; 227*437bfbebSnyanmisaka RK_U32 sw_filt_level_0 : 6; 228*437bfbebSnyanmisaka RK_U32 reserved0 : 8; 229*437bfbebSnyanmisaka } reg32; 230*437bfbebSnyanmisaka 231*437bfbebSnyanmisaka struct { 232*437bfbebSnyanmisaka RK_U32 sw_quant_1 : 11; 233*437bfbebSnyanmisaka RK_U32 sw_quant_0 : 11; 234*437bfbebSnyanmisaka RK_U32 sw_quant_delta_1 : 5; 235*437bfbebSnyanmisaka RK_U32 sw_quant_delta_0 : 5; 236*437bfbebSnyanmisaka } reg33; 237*437bfbebSnyanmisaka 238*437bfbebSnyanmisaka struct { 239*437bfbebSnyanmisaka RK_U32 reserved0 : 2; 240*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_1_1 : 10; 241*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_1_0 : 10; 242*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_0_3 : 10; 243*437bfbebSnyanmisaka } reg34; 244*437bfbebSnyanmisaka 245*437bfbebSnyanmisaka struct { 246*437bfbebSnyanmisaka RK_U32 reserved0 : 2; 247*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_2_0 : 10; 248*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_1_3 : 10; 249*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_1_2 : 10; 250*437bfbebSnyanmisaka } reg35; 251*437bfbebSnyanmisaka 252*437bfbebSnyanmisaka struct { 253*437bfbebSnyanmisaka RK_U32 reserved0 : 2; 254*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_2_3 : 10; 255*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_2_2 : 10; 256*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_2_1 : 10; 257*437bfbebSnyanmisaka } reg36; 258*437bfbebSnyanmisaka 259*437bfbebSnyanmisaka struct { 260*437bfbebSnyanmisaka RK_U32 reserved0 : 2; 261*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_3_2 : 10; 262*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_3_1 : 10; 263*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_3_0 : 10; 264*437bfbebSnyanmisaka } reg37; 265*437bfbebSnyanmisaka 266*437bfbebSnyanmisaka struct { 267*437bfbebSnyanmisaka RK_U32 reserved0 : 2; 268*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_4_1 : 10; 269*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_4_0 : 10; 270*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_3_3 : 10; 271*437bfbebSnyanmisaka } reg38; 272*437bfbebSnyanmisaka 273*437bfbebSnyanmisaka struct { 274*437bfbebSnyanmisaka RK_U32 reserved0 : 2; 275*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_5_0 : 10; 276*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_4_3 : 10; 277*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_4_2 : 10; 278*437bfbebSnyanmisaka } reg39; 279*437bfbebSnyanmisaka 280*437bfbebSnyanmisaka RK_U32 reg40_qtable_base; 281*437bfbebSnyanmisaka RK_U32 reg41_directmv_base; 282*437bfbebSnyanmisaka 283*437bfbebSnyanmisaka struct { 284*437bfbebSnyanmisaka RK_U32 reserved0 : 2; 285*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_5_3 : 10; 286*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_5_2 : 10; 287*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_5_1 : 10; 288*437bfbebSnyanmisaka } reg42; 289*437bfbebSnyanmisaka 290*437bfbebSnyanmisaka struct { 291*437bfbebSnyanmisaka RK_U32 reserved0 : 2; 292*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_6_2 : 10; 293*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_6_1 : 10; 294*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_6_0 : 10; 295*437bfbebSnyanmisaka } reg43; 296*437bfbebSnyanmisaka 297*437bfbebSnyanmisaka struct { 298*437bfbebSnyanmisaka RK_U32 reserved0 : 2; 299*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_7_1 : 10; 300*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_7_0 : 10; 301*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_6_3 : 10; 302*437bfbebSnyanmisaka } reg44; 303*437bfbebSnyanmisaka 304*437bfbebSnyanmisaka struct { 305*437bfbebSnyanmisaka RK_U32 sw_pred_tap_6_4 : 2; 306*437bfbebSnyanmisaka RK_U32 sw_pred_tap_6_M1 : 2; 307*437bfbebSnyanmisaka RK_U32 sw_pred_tap_4_4 : 2; 308*437bfbebSnyanmisaka RK_U32 sw_pred_tap_4_M1 : 2; 309*437bfbebSnyanmisaka RK_U32 sw_pred_tap_2_4 : 2; 310*437bfbebSnyanmisaka RK_U32 sw_pred_tap_2_M1 : 2; 311*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_7_3 : 10; 312*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_7_2 : 10; 313*437bfbebSnyanmisaka } reg45; 314*437bfbebSnyanmisaka 315*437bfbebSnyanmisaka struct { 316*437bfbebSnyanmisaka RK_U32 sw_quant_3 : 11; 317*437bfbebSnyanmisaka RK_U32 sw_quant_2 : 11; 318*437bfbebSnyanmisaka RK_U32 sw_quant_delta_3 : 5; 319*437bfbebSnyanmisaka RK_U32 sw_quant_delta_2 : 5; 320*437bfbebSnyanmisaka } reg46; 321*437bfbebSnyanmisaka 322*437bfbebSnyanmisaka struct { 323*437bfbebSnyanmisaka RK_U32 sw_quant_5 : 11; 324*437bfbebSnyanmisaka RK_U32 sw_quant_4 : 11; 325*437bfbebSnyanmisaka RK_U32 reserved : 5; 326*437bfbebSnyanmisaka RK_U32 sw_quant_delta_4 : 5; 327*437bfbebSnyanmisaka } reg47; 328*437bfbebSnyanmisaka 329*437bfbebSnyanmisaka struct { 330*437bfbebSnyanmisaka RK_U32 reserved0 : 15; 331*437bfbebSnyanmisaka RK_U32 sw_startmb_y : 8; 332*437bfbebSnyanmisaka RK_U32 sw_startmb_x : 9; 333*437bfbebSnyanmisaka } reg48; 334*437bfbebSnyanmisaka 335*437bfbebSnyanmisaka struct { 336*437bfbebSnyanmisaka RK_U32 reserved0 : 2; 337*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_0_2 : 10; 338*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_0_1 : 10; 339*437bfbebSnyanmisaka RK_U32 sw_pred_bc_tap_0_0 : 10; 340*437bfbebSnyanmisaka } reg49; 341*437bfbebSnyanmisaka 342*437bfbebSnyanmisaka RK_U32 reg50; 343*437bfbebSnyanmisaka 344*437bfbebSnyanmisaka struct { 345*437bfbebSnyanmisaka RK_U32 sw_refbu_y_offset : 9; 346*437bfbebSnyanmisaka RK_U32 reserve0 : 3; 347*437bfbebSnyanmisaka RK_U32 sw_refbu_fparmod_e : 1; 348*437bfbebSnyanmisaka RK_U32 sw_refbu_eval_e : 1; 349*437bfbebSnyanmisaka RK_U32 sw_refbu_picid : 5; 350*437bfbebSnyanmisaka RK_U32 sw_refbu_thr : 12; 351*437bfbebSnyanmisaka RK_U32 sw_refbu_e : 1; 352*437bfbebSnyanmisaka } reg51_refpicbuf_ctrl; 353*437bfbebSnyanmisaka 354*437bfbebSnyanmisaka struct { 355*437bfbebSnyanmisaka RK_U32 sw_refbu_intra_sum : 16; 356*437bfbebSnyanmisaka RK_U32 sw_refbu_hit_sum : 16; 357*437bfbebSnyanmisaka } reg52_sum_inf; 358*437bfbebSnyanmisaka 359*437bfbebSnyanmisaka struct { 360*437bfbebSnyanmisaka RK_U32 sw_refbu_mv_sum : 22; 361*437bfbebSnyanmisaka RK_U32 reserve0 : 10; 362*437bfbebSnyanmisaka } reg53_sum_mv; 363*437bfbebSnyanmisaka 364*437bfbebSnyanmisaka struct { 365*437bfbebSnyanmisaka RK_U32 reserve0 : 17; 366*437bfbebSnyanmisaka /* sw_priority_mode */ 367*437bfbebSnyanmisaka RK_U32 sw_dec_tiled_l : 2; 368*437bfbebSnyanmisaka RK_U32 sw_dec_vp8snap_e : 1; 369*437bfbebSnyanmisaka RK_U32 sw_dec_mvc_prof : 2; 370*437bfbebSnyanmisaka RK_U32 sw_dec_avs_prof : 1; 371*437bfbebSnyanmisaka RK_U32 sw_dec_vp8_prof : 1; 372*437bfbebSnyanmisaka RK_U32 sw_dec_vp7_prof : 1; 373*437bfbebSnyanmisaka RK_U32 sw_dec_rtl_rom : 1; 374*437bfbebSnyanmisaka RK_U32 sw_dec_rv_prof : 2; 375*437bfbebSnyanmisaka RK_U32 sw_ref_buff2_exist : 1; 376*437bfbebSnyanmisaka RK_U32 reserve1 : 1; 377*437bfbebSnyanmisaka RK_U32 sw_dec_refbu_ilace : 1; 378*437bfbebSnyanmisaka RK_U32 sw_dec_jpeg_exten : 1; 379*437bfbebSnyanmisaka } reg54_synthesis_cfg; 380*437bfbebSnyanmisaka 381*437bfbebSnyanmisaka struct { 382*437bfbebSnyanmisaka RK_U32 sw_apf_threshold : 14; 383*437bfbebSnyanmisaka RK_U32 sw_refbu2_picid : 5; 384*437bfbebSnyanmisaka RK_U32 sw_refbu2_thr : 12; 385*437bfbebSnyanmisaka RK_U32 sw_refbu2_buf_e : 1; 386*437bfbebSnyanmisaka } reg55; 387*437bfbebSnyanmisaka 388*437bfbebSnyanmisaka struct { 389*437bfbebSnyanmisaka RK_U32 sw_refbu_bot_sum : 16; 390*437bfbebSnyanmisaka RK_U32 sw_refbu_top_sum : 16; 391*437bfbebSnyanmisaka } reg56_sum_of_partitions; 392*437bfbebSnyanmisaka 393*437bfbebSnyanmisaka /* Not used */ 394*437bfbebSnyanmisaka RK_U32 reg57_decoder_fuse; 395*437bfbebSnyanmisaka RK_U32 reg58_debug; 396*437bfbebSnyanmisaka 397*437bfbebSnyanmisaka RK_U32 reg59_addit_ch_st_base; 398*437bfbebSnyanmisaka RK_U32 reg60_100_post_processor[41]; 399*437bfbebSnyanmisaka } VP8DRegSet_t; 400*437bfbebSnyanmisaka 401*437bfbebSnyanmisaka #endif 402