257 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			257 lines
		
	
	
		
			9.0 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| #ifndef QDSP5AUDPREPROCCMDI_H
 | |
| #define QDSP5AUDPREPROCCMDI_H
 | |
| 
 | |
| /*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*
 | |
| 
 | |
|     A U D I O   P R E   P R O C E S S I N G  I N T E R N A L  C O M M A N D S
 | |
| 
 | |
| GENERAL DESCRIPTION
 | |
|   This file contains defintions of format blocks of commands
 | |
|   that are accepted by AUDPREPROC Task
 | |
| 
 | |
| REFERENCES
 | |
|   None
 | |
| 
 | |
| EXTERNALIZED FUNCTIONS
 | |
|   None
 | |
| 
 | |
| Copyright(c) 1992 - 2008 by QUALCOMM, Incorporated.
 | |
| 
 | |
| This software is licensed under the terms of the GNU General Public
 | |
| License version 2, as published by the Free Software Foundation, and
 | |
| may be copied, distributed, and modified under those terms.
 | |
| 
 | |
| This program is distributed in the hope that it will be useful,
 | |
| but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
| GNU General Public License for more details.
 | |
| 
 | |
| *====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*/
 | |
| /*===========================================================================
 | |
| 
 | |
|                       EDIT HISTORY FOR FILE
 | |
| 
 | |
| This section contains comments describing changes made to this file.
 | |
| Notice that changes are listed in reverse chronological order.
 | |
|    
 | |
| $Header: //source/qcom/qct/multimedia2/Audio/drivers/QDSP5Driver/QDSP5Interface/main/latest/qdsp5audpreproccmdi.h#2 $
 | |
|   
 | |
| ===========================================================================*/
 | |
| 
 | |
| /*
 | |
|  * AUDIOPREPROC COMMANDS:
 | |
|  * ARM uses uPAudPreProcCmdQueue to communicate with AUDPREPROCTASK
 | |
|  * Location : MEMB
 | |
|  * Buffer size : 51
 | |
|  * Number of buffers in a queue : 3
 | |
|  */
 | |
| 
 | |
| /*
 | |
|  * Command to configure the parameters of AGC
 | |
|  */
 | |
| 
 | |
| #define	AUDPREPROC_CMD_CFG_AGC_PARAMS	0x0000
 | |
| #define	AUDPREPROC_CMD_CFG_AGC_PARAMS_LEN	\
 | |
| 	sizeof(audpreproc_cmd_cfg_agc_params)
 | |
| 
 | |
| #define	AUDPREPROC_CMD_TX_AGC_PARAM_MASK_COMP_SLOPE	0x0009
 | |
| #define	AUDPREPROC_CMD_TX_AGC_PARAM_MASK_COMP_TH	0x000A
 | |
| #define	AUDPREPROC_CMD_TX_AGC_PARAM_MASK_EXP_SLOPE	0x000B
 | |
| #define	AUDPREPROC_CMD_TX_AGC_PARAM_MASK_EXP_TH		0x000C
 | |
| #define	AUDPREPROC_CMD_TX_AGC_PARAM_MASK_COMP_AIG_FLAG		0x000D
 | |
| #define	AUDPREPROC_CMD_TX_AGC_PARAM_MASK_COMP_STATIC_GAIN	0x000E
 | |
| #define	AUDPREPROC_CMD_TX_AGC_PARAM_MASK_TX_AGC_ENA_FLAG	0x000F
 | |
| 
 | |
| #define	AUDPREPROC_CMD_TX_AGC_ENA_FLAG_ENA	-1
 | |
| #define	AUDPREPROC_CMD_TX_AGC_ENA_FLAG_DIS	0x0000
 | |
| 
 | |
| #define	AUDPREPROC_CMD_ADP_GAIN_FLAG_ENA_ADP_GAIN	-1
 | |
| #define	AUDPREPROC_CMD_ADP_GAIN_FLAG_ENA_STATIC_GAIN	0x0000
 | |
| 
 | |
| #define	AUDPREPROC_CMD_PARAM_MASK_RMS_TAY	0x0004
 | |
| #define	AUDPREPROC_CMD_PARAM_MASK_RELEASEK	0x0005
 | |
| #define	AUDPREPROC_CMD_PARAM_MASK_DELAY		0x0006
 | |
| #define	AUDPREPROC_CMD_PARAM_MASK_ATTACKK	0x0007
 | |
| #define	AUDPREPROC_CMD_PARAM_MASK_LEAKRATE_SLOW	0x0008
 | |
| #define	AUDPREPROC_CMD_PARAM_MASK_LEAKRATE_FAST	0x0009
 | |
| #define	AUDPREPROC_CMD_PARAM_MASK_AIG_RELEASEK 	0x000A
 | |
| #define	AUDPREPROC_CMD_PARAM_MASK_AIG_MIN	0x000B
 | |
| #define	AUDPREPROC_CMD_PARAM_MASK_AIG_MAX	0x000C
 | |
| #define	AUDPREPROC_CMD_PARAM_MASK_LEAK_UP	0x000D
 | |
| #define	AUDPREPROC_CMD_PARAM_MASK_LEAK_DOWN	0x000E
 | |
| #define	AUDPREPROC_CMD_PARAM_MASK_AIG_ATTACKK	0x000F
 | |
| 
 | |
| typedef struct {
 | |
| 	unsigned short	cmd_id;
 | |
| 	unsigned short	tx_agc_param_mask;
 | |
| 	unsigned short	tx_agc_enable_flag;
 | |
| 	unsigned short	static_gain;
 | |
| 	signed short	adaptive_gain_flag;
 | |
| 	unsigned short	expander_th;
 | |
| 	unsigned short	expander_slope;
 | |
| 	unsigned short	compressor_th;
 | |
| 	unsigned short	compressor_slope;
 | |
| 	unsigned short	param_mask;
 | |
| 	unsigned short	aig_attackk;
 | |
| 	unsigned short	aig_leak_down;
 | |
| 	unsigned short	aig_leak_up;
 | |
| 	unsigned short	aig_max;
 | |
| 	unsigned short	aig_min;
 | |
| 	unsigned short	aig_releasek;
 | |
| 	unsigned short	aig_leakrate_fast;
 | |
| 	unsigned short	aig_leakrate_slow;
 | |
| 	unsigned short	attackk_msw;
 | |
| 	unsigned short	attackk_lsw;
 | |
| 	unsigned short	delay;
 | |
| 	unsigned short	releasek_msw;
 | |
| 	unsigned short	releasek_lsw;
 | |
| 	unsigned short	rms_tav;
 | |
| } __attribute__((packed)) audpreproc_cmd_cfg_agc_params;
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * Command to configure the params of Advanved AGC
 | |
|  */
 | |
| 
 | |
| #define	AUDPREPROC_CMD_CFG_AGC_PARAMS_2		0x0001
 | |
| #define	AUDPREPROC_CMD_CFG_AGC_PARAMS_2_LEN		\
 | |
| 	sizeof(audpreproc_cmd_cfg_agc_params_2)
 | |
| 
 | |
| #define	AUDPREPROC_CMD_2_TX_AGC_ENA_FLAG_ENA	-1;
 | |
| #define	AUDPREPROC_CMD_2_TX_AGC_ENA_FLAG_DIS	0x0000;
 | |
| 
 | |
| typedef struct {
 | |
| 	unsigned short	cmd_id;
 | |
| 	unsigned short	agc_param_mask;
 | |
| 	signed short	tx_agc_enable_flag;
 | |
| 	unsigned short	comp_static_gain;
 | |
| 	unsigned short	exp_th;
 | |
| 	unsigned short	exp_slope;
 | |
| 	unsigned short	comp_th;
 | |
| 	unsigned short	comp_slope;
 | |
| 	unsigned short	comp_rms_tav;
 | |
| 	unsigned short	comp_samp_mask;
 | |
| 	unsigned short	comp_attackk_msw;
 | |
| 	unsigned short	comp_attackk_lsw;
 | |
| 	unsigned short	comp_releasek_msw;
 | |
| 	unsigned short	comp_releasek_lsw;
 | |
| 	unsigned short	comp_delay;
 | |
| 	unsigned short	comp_makeup_gain;
 | |
| } __attribute__((packed)) audpreproc_cmd_cfg_agc_params_2;
 | |
| 
 | |
| /*
 | |
|  * Command to configure params for ns
 | |
|  */
 | |
| 
 | |
| #define	AUDPREPROC_CMD_CFG_NS_PARAMS		0x0002
 | |
| #define	AUDPREPROC_CMD_CFG_NS_PARAMS_LEN	\
 | |
| 	sizeof(audpreproc_cmd_cfg_ns_params)
 | |
| 
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_NLMS_ENA	0x0001
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_NLMS_DIS 	0x0000
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_DES_ENA	0x0002
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_DES_DIS	0x0000
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_NS_ENA	0x0004
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_NS_DIS	0x0000
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_CNI_ENA	0x0008
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_CNI_DIS	0x0000
 | |
| 
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_NLES_ENA	0x0010
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_NLES_DIS	0x0000
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_HB_ENA	0x0020
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_HB_DIS	0x0000
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_VA_ENA	0x0040
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_VA_DIS	0x0000
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_PCD_ENA	0x0080
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_PCD_DIS	0x0000
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_FEHI_ENA	0x0100
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_FEHI_DIS 	0x0000
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_NEHI_ENA	0x0200
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_NEHI_DIS 	0x0000
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_NLPP_ENA	0x0400
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_NLPP_DIS	0x0000
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_FNE_ENA	0x0800
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_FNE_DIS	0x0000
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_PRENLMS_ENA 	0x1000
 | |
| #define	AUDPREPROC_CMD_EC_MODE_NEW_PRENLMS_DIS 	0x0000
 | |
| 
 | |
| typedef struct {
 | |
| 	unsigned short	cmd_id;
 | |
| 	unsigned short	ec_mode_new;
 | |
| 	unsigned short	dens_gamma_n;
 | |
| 	unsigned short	dens_nfe_block_size;
 | |
| 	unsigned short	dens_limit_ns;
 | |
| 	unsigned short	dens_limit_ns_d;
 | |
| 	unsigned short	wb_gamma_e;
 | |
| 	unsigned short	wb_gamma_n;
 | |
| } __attribute__((packed)) audpreproc_cmd_cfg_ns_params;
 | |
| 
 | |
| /*
 | |
|  * Command to configure parameters for IIR tuning filter
 | |
|  */
 | |
| 
 | |
| #define	AUDPREPROC_CMD_CFG_IIR_TUNING_FILTER_PARAMS		0x0003
 | |
| #define	AUDPREPROC_CMD_CFG_IIR_TUNING_FILTER_PARAMS_LEN	\
 | |
| 	sizeof(audpreproc_cmd_cfg_iir_tuning_filter_params)
 | |
| 
 | |
| #define	AUDPREPROC_CMD_IIR_ACTIVE_FLAG_DIS	0x0000
 | |
| #define	AUDPREPROC_CMD_IIR_ACTIVE_FLAG_ENA	0x0001
 | |
| 
 | |
| typedef struct {
 | |
| 	unsigned short	cmd_id;
 | |
| 	unsigned short	active_flag;
 | |
| 	unsigned short	num_bands;
 | |
| 	unsigned short	numerator_coeff_b0_filter0_lsw;
 | |
| 	unsigned short	numerator_coeff_b0_filter0_msw;
 | |
| 	unsigned short	numerator_coeff_b1_filter0_lsw;
 | |
| 	unsigned short	numerator_coeff_b1_filter0_msw;
 | |
| 	unsigned short	numerator_coeff_b2_filter0_lsw;
 | |
| 	unsigned short	numerator_coeff_b2_filter0_msw;
 | |
| 	unsigned short	numerator_coeff_b0_filter1_lsw;
 | |
| 	unsigned short	numerator_coeff_b0_filter1_msw;
 | |
| 	unsigned short	numerator_coeff_b1_filter1_lsw;
 | |
| 	unsigned short	numerator_coeff_b1_filter1_msw;
 | |
| 	unsigned short	numerator_coeff_b2_filter1_lsw;
 | |
| 	unsigned short	numerator_coeff_b2_filter1_msw;
 | |
| 	unsigned short	numerator_coeff_b0_filter2_lsw;
 | |
| 	unsigned short	numerator_coeff_b0_filter2_msw;
 | |
| 	unsigned short	numerator_coeff_b1_filter2_lsw;
 | |
| 	unsigned short	numerator_coeff_b1_filter2_msw;
 | |
| 	unsigned short	numerator_coeff_b2_filter2_lsw;
 | |
| 	unsigned short	numerator_coeff_b2_filter2_msw;
 | |
| 	unsigned short	numerator_coeff_b0_filter3_lsw;
 | |
| 	unsigned short	numerator_coeff_b0_filter3_msw;
 | |
| 	unsigned short	numerator_coeff_b1_filter3_lsw;
 | |
| 	unsigned short	numerator_coeff_b1_filter3_msw;
 | |
| 	unsigned short	numerator_coeff_b2_filter3_lsw;
 | |
| 	unsigned short	numerator_coeff_b2_filter3_msw;
 | |
| 	unsigned short 	denominator_coeff_a0_filter0_lsw;
 | |
| 	unsigned short 	denominator_coeff_a0_filter0_msw;
 | |
| 	unsigned short 	denominator_coeff_a1_filter0_lsw;
 | |
| 	unsigned short 	denominator_coeff_a1_filter0_msw; 
 | |
| 	unsigned short 	denominator_coeff_a0_filter1_lsw;
 | |
| 	unsigned short 	denominator_coeff_a0_filter1_msw;
 | |
| 	unsigned short 	denominator_coeff_a1_filter1_lsw;
 | |
| 	unsigned short 	denominator_coeff_a1_filter1_msw;
 | |
|   unsigned short 	denominator_coeff_a0_filter2_lsw;
 | |
| 	unsigned short 	denominator_coeff_a0_filter2_msw;
 | |
| 	unsigned short 	denominator_coeff_a1_filter2_lsw;
 | |
| 	unsigned short 	denominator_coeff_a1_filter2_msw;
 | |
|   unsigned short 	denominator_coeff_a0_filter3_lsw;
 | |
| 	unsigned short 	denominator_coeff_a0_filter3_msw;
 | |
| 	unsigned short 	denominator_coeff_a1_filter3_lsw;
 | |
| 	unsigned short 	denominator_coeff_a1_filter3_msw;
 | |
| 
 | |
| 	unsigned short	shift_factor_filter0;
 | |
| 	unsigned short	shift_factor_filter1;
 | |
| 	unsigned short	shift_factor_filter2;
 | |
| 	unsigned short	shift_factor_filter3;
 | |
| 
 | |
| 	unsigned short	channel_selected0;
 | |
| 	unsigned short	channel_selected1;
 | |
| 	unsigned short	channel_selected2;
 | |
| 	unsigned short	channel_selected3;
 | |
| } __attribute__((packed))audpreproc_cmd_cfg_iir_tuning_filter_params;
 | |
| 
 | |
| #endif
 |