cs46xx_dsp_scb_types.h

来自「Linux Kernel 2.6.9 for OMAP1710」· C头文件 代码 · 共 1,217 行 · 第 1/2 页

H
1,217
字号
	u32  dec2_reserved2;	u32  dec2_input_nuf_strm_config;	/* inputBufStrmConfig: rsConfig for the input buffer to the decimator	   (buffer size = decimationFactor * 32 dwords)	*/	___DSP_DUAL_16BIT_ALLOC(	    dec2_phi_incr,	    dec2_input_buf_consumer_ptr	)	/* inputBufConsumerPtr: Input buffer read pointer (into SRC filter)	   phiIncr = decimationFactor * 4	*/	u32 dec2_reserved3;	___DSP_DUAL_16BIT_ALLOC(	    dec2_exp_vol_change_rate,	    dec2_input_buf_producer_ptr	)	/* inputBufProducerPtr: Input buffer write pointer	   expVolChangeRate: Exponential volume change rate for possible	                     future mixer on input streams	*/	___DSP_DUAL_16BIT_ALLOC(	    dec2_next_scb,	    dec2_sub_list_ptr	)	___DSP_DUAL_16BIT_ALLOC(	    dec2_entry_point,	    dec2_this_spb	)	u32  dec2_strm_rs_config;	u32  dec2_strm_buf_ptr;	u32  dec2_reserved4;	volume_control_t dec2_vol_ctrl; /* Not used! */} decimate_by_pow2_scb_t;typedef struct _vari_decimate_scb_t {	___DSP_DUAL_16BIT_ALLOC(	    vdec_frames_left_in_gof,	    vdec_gofs_left_in_sec	)	___DSP_DUAL_16BIT_ALLOC(	    vdec_const2_thirds,	    vdec_extra_in_samples	)	/* extraInSamples: # of accumulated, unused input samples (init. to 0)	   const2thirds: constant 2/3 in 16Q0 format (sign.15) */	___DSP_DUAL_16BIT_ALLOC(	    vdec_cor_per_gof,	    vdec_correction_per_sec	)	___DSP_DUAL_16BIT_ALLOC(	    vdec_output_buf_producer_ptr,	    vdec_input_buf_consumer_ptr	)	/* inputBufConsumerPtr: Input buffer read pointer (into SRC filter) */	___DSP_DUAL_16BIT_ALLOC(	    vdec_gof_length,	    vdec_gofs_per_sec	)	u32  vdec_input_buf_strm_config;	/* inputBufStrmConfig: rsConfig for the input buffer to the decimator	   (buffer size = 64 dwords) */	u32  vdec_coef_increment;	/* coefIncrement = - 128.0 / decimationFactor (as a 32Q15 number) */	u32  vdec_accumphi;	/* accumPhi: accumulated fractional phase increment (6.26) */	___DSP_DUAL_16BIT_ALLOC( 	    vdec_exp_vol_change_rate,	    vdec_input_buf_producer_ptr	)	/* inputBufProducerPtr: Input buffer write pointer	   expVolChangeRate: Exponential volume change rate for possible	   future mixer on input streams */	___DSP_DUAL_16BIT_ALLOC(	    vdec_next_scb,	    vdec_sub_list_ptr	)	___DSP_DUAL_16BIT_ALLOC(	    vdec_entry_point,	    vdec_this_spb	)	u32 vdec_strm_rs_config;	u32 vdec_strm_buf_ptr;	u32 vdec_phi_incr_6int_26frac;	volume_control_t vdec_vol_ctrl;} vari_decimate_scb_t;/* SCB for MIX_TO_OSTREAM algorithm family */typedef struct _mix2_ostream_scb_t {	/* First 13 dwords from generic_scb_t */	basic_dma_req_t  basic_req;  /* Optional */	scatter_gather_ext_t sg_ext;  /* Optional */	___DSP_DUAL_16BIT_ALLOC(	    next_scb,       /* REQUIRED */	    sub_list_ptr    /* REQUIRED */	)	___DSP_DUAL_16BIT_ALLOC(	    entry_point,    /* REQUIRED */	    this_spb        /* REQUIRED */	)	u32 strm_rs_config; /* REQUIRED */	u32 strm_buf_ptr;   /* REQUIRED */	/* hi: Number of mixed-down input triplets	       computed since start of group	   lo: Number of frames remaining to be	       processed in the current group of	       frames	*/	___DSP_DUAL_16BIT_ALLOC(	    frames_left_in_group,	    accum_input_triplets	)	/* hi: Exponential volume change rate	       for mixer on input streams	   lo: Number of frames in the group	*/	___DSP_DUAL_16BIT_ALLOC(	    frame_group_length,	    exp_vol_change_rate	)  	___DSP_DUAL_16BIT_ALLOC(	    const_FFFF,	    const_zero	)} mix2_ostream_scb_t;/* SCB for S16_MIX algorithm */typedef struct _mix_only_scb_t {	/* First 13 dwords from generic_scb_t */	basic_dma_req_t  basic_req;  /* Optional */	scatter_gather_ext_t sg_ext;  /* Optional */	___DSP_DUAL_16BIT_ALLOC(	    next_scb,       /* REQUIRED */	    sub_list_ptr    /* REQUIRED */	)	___DSP_DUAL_16BIT_ALLOC(	    entry_point,    /* REQUIRED */	    this_spb        /* REQUIRED */	)	u32 strm_rs_config; /* REQUIRED */	u32 strm_buf_ptr;   /* REQUIRED */	u32 reserved;	volume_control_t vol_ctrl;} mix_only_scb_t;/* SCB for the async. CODEC input algorithm */typedef struct _async_codec_input_scb_t {		 	u32 io_free2;       	u32 io_current_total;	u32 io_previous_total;  	u16 io_count;	u16 io_count_limit;  	u16 o_fifo_base_addr;            	u16 ost_mo_format;	/* 1 = stereo; 0 = mono 	   xxx for ASER 1 (not allowed); 118 for ASER2 */	u32  ostrm_rs_config;	u32  ostrm_buf_ptr;  	___DSP_DUAL_16BIT_ALLOC(	    io_sclks_per_lr_clk,	    io_io_enable	)	u32  io_free4;	___DSP_DUAL_16BIT_ALLOC(  	    io_next_scb,	    io_sub_list_ptr	)	___DSP_DUAL_16BIT_ALLOC(	    io_entry_point,	    io_this_spb	)	u32 istrm_rs_config;	u32 istrm_buf_ptr;	/* Init. 0000:8042: for ASER1                 0000:8044: for ASER2  */	___DSP_DUAL_16BIT_ALLOC(	    io_stat_reg_addr,	    iofifo_pointer	)	/* Init 1 stero:100 ASER1	   Init 0 mono:110 ASER2 	*/	___DSP_DUAL_16BIT_ALLOC(	    ififo_base_addr,            	    ist_mo_format	)	u32 i_free;} async_codec_input_scb_t;/* SCB for the SP/DIF CODEC input and output */typedef struct _spdifiscb_t {	___DSP_DUAL_16BIT_ALLOC(	    status_ptr,     	    status_start_ptr	)	u32 current_total;	u32 previous_total;	___DSP_DUAL_16BIT_ALLOC(	    count,	    count_limit	)	u32 status_data;	___DSP_DUAL_16BIT_ALLOC(  	    status,	    free4	)	u32 free3;	___DSP_DUAL_16BIT_ALLOC(  	    free2,	    bit_count	)	u32  temp_status;  	___DSP_DUAL_16BIT_ALLOC(	    next_SCB,	    sub_list_ptr	)	___DSP_DUAL_16BIT_ALLOC(	    entry_point,	    this_spb	)	u32  strm_rs_config;	u32  strm_buf_ptr;  	___DSP_DUAL_16BIT_ALLOC(	    stat_reg_addr, 	    fifo_pointer	)	___DSP_DUAL_16BIT_ALLOC(	    fifo_base_addr, 	    st_mo_format	)	u32  free1;} spdifiscb_t;/* SCB for the SP/DIF CODEC input and output  */typedef struct _spdifoscb_t {		 	u32 free2;     	u32 free3[4];             	/* Need to be here for compatibility with AsynchFGTxCode */	u32 strm_rs_config;                               	u32 strm_buf_ptr;	___DSP_DUAL_16BIT_ALLOC(  	    status,	    free5	)	u32 free4;	___DSP_DUAL_16BIT_ALLOC(  	    next_scb,	    sub_list_ptr	)	___DSP_DUAL_16BIT_ALLOC(	    entry_point,	    this_spb	)	u32 free6[2];  	___DSP_DUAL_16BIT_ALLOC(	    stat_reg_addr, 	    fifo_pointer	)	___DSP_DUAL_16BIT_ALLOC(	    fifo_base_addr,	    st_mo_format	)	u32  free1;                                         } spdifoscb_t;typedef struct _asynch_fg_rx_scb_t {	___DSP_DUAL_16BIT_ALLOC(	    bot_buf_mask,	    buf_Mask	)	___DSP_DUAL_16BIT_ALLOC(	    max,	    min	)	___DSP_DUAL_16BIT_ALLOC(	    old_producer_pointer,	    hfg_scb_ptr	)	___DSP_DUAL_16BIT_ALLOC(	    delta,	    adjust_count	)	u32 unused2[5];  	___DSP_DUAL_16BIT_ALLOC(  	    sibling_ptr,  	    child_ptr	)	___DSP_DUAL_16BIT_ALLOC(	    code_ptr,	    this_ptr	)	u32 strm_rs_config; 	u32 strm_buf_ptr;  	u32 unused_phi_incr;  	___DSP_DUAL_16BIT_ALLOC(	    right_targ,   	    left_targ	)	___DSP_DUAL_16BIT_ALLOC(	    right_vol,	    left_vol	)} asynch_fg_rx_scb_t;typedef struct _asynch_fg_tx_scb_t {	___DSP_DUAL_16BIT_ALLOC(	    not_buf_mask,	    buf_mask	)	___DSP_DUAL_16BIT_ALLOC(	    max,	    min	)	___DSP_DUAL_16BIT_ALLOC(	    unused1,	    hfg_scb_ptr	)	___DSP_DUAL_16BIT_ALLOC(	    delta,	    adjust_count	)	u32 accum_phi;	___DSP_DUAL_16BIT_ALLOC(	    unused2,	    const_one_third	)	u32 unused3[3];	___DSP_DUAL_16BIT_ALLOC(	    sibling_ptr,	    child_ptr	)	___DSP_DUAL_16BIT_ALLOC(	    codePtr,	    this_ptr	)	u32 strm_rs_config;	u32 strm_buf_ptr;	u32 phi_incr;	___DSP_DUAL_16BIT_ALLOC(	    unused_right_targ,	    unused_left_targ	)	___DSP_DUAL_16BIT_ALLOC(	    unused_right_vol,	    unused_left_vol	)} asynch_fg_tx_scb_t;typedef struct _output_snoop_scb_t {	/* First 13 dwords from generic_scb_t */	basic_dma_req_t  basic_req;  /* Optional */	scatter_gather_ext_t sg_ext;  /* Optional */	___DSP_DUAL_16BIT_ALLOC(	    next_scb,       /* REQUIRED */	    sub_list_ptr    /* REQUIRED */	)	___DSP_DUAL_16BIT_ALLOC(	    entry_point,    /* REQUIRED */	    this_spb        /* REQUIRED */	)	u32 strm_rs_config; /* REQUIRED */	u32 strm_buf_ptr;   /* REQUIRED */	___DSP_DUAL_16BIT_ALLOC(	    init_snoop_input_link,	    snoop_child_input_scb	)	u32 snoop_input_buf_ptr;	___DSP_DUAL_16BIT_ALLOC(	    reserved,	    input_scb	)} output_snoop_scb_t;typedef struct _spio_write_scb_t {	___DSP_DUAL_16BIT_ALLOC(	    address1,	    address2	)	u32 data1;	u32 data2;	___DSP_DUAL_16BIT_ALLOC(	    address3,	    address4	)	u32 data3;	u32 data4;	___DSP_DUAL_16BIT_ALLOC(	    unused1,	    data_ptr	)	u32 unused2[2];	___DSP_DUAL_16BIT_ALLOC(	    sibling_ptr,	    child_ptr	)	___DSP_DUAL_16BIT_ALLOC(	    entry_point,	    this_ptr	)	u32 unused3[5];} spio_write_scb_t;typedef struct _magic_snoop_task_t {	u32 i0;	u32 i1;	u32 strm_buf_ptr1;  	u16 i2;	u16 snoop_scb;	u32 i3;	u32 i4;	u32 i5;	u32 i6;	u32 i7;	___DSP_DUAL_16BIT_ALLOC(	    next_scb,	    sub_list_ptr	)	___DSP_DUAL_16BIT_ALLOC(	    entry_point,	    this_ptr	)	u32 strm_buf_config;	u32 strm_buf_ptr2;	u32 i8;	volume_control_t vdec_vol_ctrl;} magic_snoop_task_t;typedef struct _filter_scb_t {	___DSP_DUAL_16BIT_ALLOC(	      a0_right,          /* 0x00 */	      a0_left	)	___DSP_DUAL_16BIT_ALLOC(	      a1_right,          /* 0x01 */	      a1_left	)	___DSP_DUAL_16BIT_ALLOC(	      a2_right,          /* 0x02 */	      a2_left	)	___DSP_DUAL_16BIT_ALLOC(	      output_buf_ptr,    /* 0x03 */	      init	)	___DSP_DUAL_16BIT_ALLOC(	      filter_unused3,    /* 0x04 */	      filter_unused2	)	u32 prev_sample_output1; /* 0x05 */	u32 prev_sample_output2; /* 0x06 */	u32 prev_sample_input1;  /* 0x07 */	u32 prev_sample_input2;  /* 0x08 */	___DSP_DUAL_16BIT_ALLOC(	      next_scb_ptr,      /* 0x09 */	      sub_list_ptr	)	___DSP_DUAL_16BIT_ALLOC(	      entry_point,       /* 0x0A */	      spb_ptr	)	u32  strm_rs_config;     /* 0x0B */	u32  strm_buf_ptr;       /* 0x0C */	___DSP_DUAL_16BIT_ALLOC(              b0_right,          /* 0x0D */	      b0_left	)	___DSP_DUAL_16BIT_ALLOC(              b1_right,          /* 0x0E */	      b1_left	)	___DSP_DUAL_16BIT_ALLOC(              b2_right,          /* 0x0F */	      b2_left	)} filter_scb_t;#endif /* __DSP_SCB_TYPES_H__ */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?