| #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 |