1#ifndef QDSP5AUDPREPROCCMDI_H 2#define QDSP5AUDPREPROCCMDI_H 3 4/*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====* 5 6 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 7 8GENERAL DESCRIPTION 9 This file contains defintions of format blocks of commands 10 that are accepted by AUDPREPROC Task 11 12REFERENCES 13 None 14 15EXTERNALIZED FUNCTIONS 16 None 17 18Copyright(c) 1992 - 2008 by QUALCOMM, Incorporated. 19 20This software is licensed under the terms of the GNU General Public 21License version 2, as published by the Free Software Foundation, and 22may be copied, distributed, and modified under those terms. 23 24This program is distributed in the hope that it will be useful, 25but WITHOUT ANY WARRANTY; without even the implied warranty of 26MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 27GNU General Public License for more details. 28 29*====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*/ 30/*=========================================================================== 31 32 EDIT HISTORY FOR FILE 33 34This section contains comments describing changes made to this file. 35Notice that changes are listed in reverse chronological order. 36 37$Header: //source/qcom/qct/multimedia2/Audio/drivers/QDSP5Driver/QDSP5Interface/main/latest/qdsp5audpreproccmdi.h#2 $ 38 39===========================================================================*/ 40 41/* 42 * AUDIOPREPROC COMMANDS: 43 * ARM uses uPAudPreProcCmdQueue to communicate with AUDPREPROCTASK 44 * Location : MEMB 45 * Buffer size : 51 46 * Number of buffers in a queue : 3 47 */ 48 49/* 50 * Command to configure the parameters of AGC 51 */ 52 53#define AUDPREPROC_CMD_CFG_AGC_PARAMS 0x0000 54#define AUDPREPROC_CMD_CFG_AGC_PARAMS_LEN \ 55 sizeof(audpreproc_cmd_cfg_agc_params) 56 57#define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_COMP_SLOPE 0x0009 58#define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_COMP_TH 0x000A 59#define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_EXP_SLOPE 0x000B 60#define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_EXP_TH 0x000C 61#define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_COMP_AIG_FLAG 0x000D 62#define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_COMP_STATIC_GAIN 0x000E 63#define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_TX_AGC_ENA_FLAG 0x000F 64 65#define AUDPREPROC_CMD_TX_AGC_ENA_FLAG_ENA -1 66#define AUDPREPROC_CMD_TX_AGC_ENA_FLAG_DIS 0x0000 67 68#define AUDPREPROC_CMD_ADP_GAIN_FLAG_ENA_ADP_GAIN -1 69#define AUDPREPROC_CMD_ADP_GAIN_FLAG_ENA_STATIC_GAIN 0x0000 70 71#define AUDPREPROC_CMD_PARAM_MASK_RMS_TAY 0x0004 72#define AUDPREPROC_CMD_PARAM_MASK_RELEASEK 0x0005 73#define AUDPREPROC_CMD_PARAM_MASK_DELAY 0x0006 74#define AUDPREPROC_CMD_PARAM_MASK_ATTACKK 0x0007 75#define AUDPREPROC_CMD_PARAM_MASK_LEAKRATE_SLOW 0x0008 76#define AUDPREPROC_CMD_PARAM_MASK_LEAKRATE_FAST 0x0009 77#define AUDPREPROC_CMD_PARAM_MASK_AIG_RELEASEK 0x000A 78#define AUDPREPROC_CMD_PARAM_MASK_AIG_MIN 0x000B 79#define AUDPREPROC_CMD_PARAM_MASK_AIG_MAX 0x000C 80#define AUDPREPROC_CMD_PARAM_MASK_LEAK_UP 0x000D 81#define AUDPREPROC_CMD_PARAM_MASK_LEAK_DOWN 0x000E 82#define AUDPREPROC_CMD_PARAM_MASK_AIG_ATTACKK 0x000F 83 84typedef struct { 85 unsigned short cmd_id; 86 unsigned short tx_agc_param_mask; 87 unsigned short tx_agc_enable_flag; 88 unsigned short static_gain; 89 signed short adaptive_gain_flag; 90 unsigned short expander_th; 91 unsigned short expander_slope; 92 unsigned short compressor_th; 93 unsigned short compressor_slope; 94 unsigned short param_mask; 95 unsigned short aig_attackk; 96 unsigned short aig_leak_down; 97 unsigned short aig_leak_up; 98 unsigned short aig_max; 99 unsigned short aig_min; 100 unsigned short aig_releasek; 101 unsigned short aig_leakrate_fast; 102 unsigned short aig_leakrate_slow; 103 unsigned short attackk_msw; 104 unsigned short attackk_lsw; 105 unsigned short delay; 106 unsigned short releasek_msw; 107 unsigned short releasek_lsw; 108 unsigned short rms_tav; 109} __attribute__((packed)) audpreproc_cmd_cfg_agc_params; 110 111 112/* 113 * Command to configure the params of Advanved AGC 114 */ 115 116#define AUDPREPROC_CMD_CFG_AGC_PARAMS_2 0x0001 117#define AUDPREPROC_CMD_CFG_AGC_PARAMS_2_LEN \ 118 sizeof(audpreproc_cmd_cfg_agc_params_2) 119 120#define AUDPREPROC_CMD_2_TX_AGC_ENA_FLAG_ENA -1; 121#define AUDPREPROC_CMD_2_TX_AGC_ENA_FLAG_DIS 0x0000; 122 123typedef struct { 124 unsigned short cmd_id; 125 unsigned short agc_param_mask; 126 signed short tx_agc_enable_flag; 127 unsigned short comp_static_gain; 128 unsigned short exp_th; 129 unsigned short exp_slope; 130 unsigned short comp_th; 131 unsigned short comp_slope; 132 unsigned short comp_rms_tav; 133 unsigned short comp_samp_mask; 134 unsigned short comp_attackk_msw; 135 unsigned short comp_attackk_lsw; 136 unsigned short comp_releasek_msw; 137 unsigned short comp_releasek_lsw; 138 unsigned short comp_delay; 139 unsigned short comp_makeup_gain; 140} __attribute__((packed)) audpreproc_cmd_cfg_agc_params_2; 141 142/* 143 * Command to configure params for ns 144 */ 145 146#define AUDPREPROC_CMD_CFG_NS_PARAMS 0x0002 147#define AUDPREPROC_CMD_CFG_NS_PARAMS_LEN \ 148 sizeof(audpreproc_cmd_cfg_ns_params) 149 150#define AUDPREPROC_CMD_EC_MODE_NEW_NLMS_ENA 0x0001 151#define AUDPREPROC_CMD_EC_MODE_NEW_NLMS_DIS 0x0000 152#define AUDPREPROC_CMD_EC_MODE_NEW_DES_ENA 0x0002 153#define AUDPREPROC_CMD_EC_MODE_NEW_DES_DIS 0x0000 154#define AUDPREPROC_CMD_EC_MODE_NEW_NS_ENA 0x0004 155#define AUDPREPROC_CMD_EC_MODE_NEW_NS_DIS 0x0000 156#define AUDPREPROC_CMD_EC_MODE_NEW_CNI_ENA 0x0008 157#define AUDPREPROC_CMD_EC_MODE_NEW_CNI_DIS 0x0000 158 159#define AUDPREPROC_CMD_EC_MODE_NEW_NLES_ENA 0x0010 160#define AUDPREPROC_CMD_EC_MODE_NEW_NLES_DIS 0x0000 161#define AUDPREPROC_CMD_EC_MODE_NEW_HB_ENA 0x0020 162#define AUDPREPROC_CMD_EC_MODE_NEW_HB_DIS 0x0000 163#define AUDPREPROC_CMD_EC_MODE_NEW_VA_ENA 0x0040 164#define AUDPREPROC_CMD_EC_MODE_NEW_VA_DIS 0x0000 165#define AUDPREPROC_CMD_EC_MODE_NEW_PCD_ENA 0x0080 166#define AUDPREPROC_CMD_EC_MODE_NEW_PCD_DIS 0x0000 167#define AUDPREPROC_CMD_EC_MODE_NEW_FEHI_ENA 0x0100 168#define AUDPREPROC_CMD_EC_MODE_NEW_FEHI_DIS 0x0000 169#define AUDPREPROC_CMD_EC_MODE_NEW_NEHI_ENA 0x0200 170#define AUDPREPROC_CMD_EC_MODE_NEW_NEHI_DIS 0x0000 171#define AUDPREPROC_CMD_EC_MODE_NEW_NLPP_ENA 0x0400 172#define AUDPREPROC_CMD_EC_MODE_NEW_NLPP_DIS 0x0000 173#define AUDPREPROC_CMD_EC_MODE_NEW_FNE_ENA 0x0800 174#define AUDPREPROC_CMD_EC_MODE_NEW_FNE_DIS 0x0000 175#define AUDPREPROC_CMD_EC_MODE_NEW_PRENLMS_ENA 0x1000 176#define AUDPREPROC_CMD_EC_MODE_NEW_PRENLMS_DIS 0x0000 177 178typedef struct { 179 unsigned short cmd_id; 180 unsigned short ec_mode_new; 181 unsigned short dens_gamma_n; 182 unsigned short dens_nfe_block_size; 183 unsigned short dens_limit_ns; 184 unsigned short dens_limit_ns_d; 185 unsigned short wb_gamma_e; 186 unsigned short wb_gamma_n; 187} __attribute__((packed)) audpreproc_cmd_cfg_ns_params; 188 189/* 190 * Command to configure parameters for IIR tuning filter 191 */ 192 193#define AUDPREPROC_CMD_CFG_IIR_TUNING_FILTER_PARAMS 0x0003 194#define AUDPREPROC_CMD_CFG_IIR_TUNING_FILTER_PARAMS_LEN \ 195 sizeof(audpreproc_cmd_cfg_iir_tuning_filter_params) 196 197#define AUDPREPROC_CMD_IIR_ACTIVE_FLAG_DIS 0x0000 198#define AUDPREPROC_CMD_IIR_ACTIVE_FLAG_ENA 0x0001 199 200typedef struct { 201 unsigned short cmd_id; 202 unsigned short active_flag; 203 unsigned short num_bands; 204 unsigned short numerator_coeff_b0_filter0_lsw; 205 unsigned short numerator_coeff_b0_filter0_msw; 206 unsigned short numerator_coeff_b1_filter0_lsw; 207 unsigned short numerator_coeff_b1_filter0_msw; 208 unsigned short numerator_coeff_b2_filter0_lsw; 209 unsigned short numerator_coeff_b2_filter0_msw; 210 unsigned short numerator_coeff_b0_filter1_lsw; 211 unsigned short numerator_coeff_b0_filter1_msw; 212 unsigned short numerator_coeff_b1_filter1_lsw; 213 unsigned short numerator_coeff_b1_filter1_msw; 214 unsigned short numerator_coeff_b2_filter1_lsw; 215 unsigned short numerator_coeff_b2_filter1_msw; 216 unsigned short numerator_coeff_b0_filter2_lsw; 217 unsigned short numerator_coeff_b0_filter2_msw; 218 unsigned short numerator_coeff_b1_filter2_lsw; 219 unsigned short numerator_coeff_b1_filter2_msw; 220 unsigned short numerator_coeff_b2_filter2_lsw; 221 unsigned short numerator_coeff_b2_filter2_msw; 222 unsigned short numerator_coeff_b0_filter3_lsw; 223 unsigned short numerator_coeff_b0_filter3_msw; 224 unsigned short numerator_coeff_b1_filter3_lsw; 225 unsigned short numerator_coeff_b1_filter3_msw; 226 unsigned short numerator_coeff_b2_filter3_lsw; 227 unsigned short numerator_coeff_b2_filter3_msw; 228 unsigned short denominator_coeff_a0_filter0_lsw; 229 unsigned short denominator_coeff_a0_filter0_msw; 230 unsigned short denominator_coeff_a1_filter0_lsw; 231 unsigned short denominator_coeff_a1_filter0_msw; 232 unsigned short denominator_coeff_a0_filter1_lsw; 233 unsigned short denominator_coeff_a0_filter1_msw; 234 unsigned short denominator_coeff_a1_filter1_lsw; 235 unsigned short denominator_coeff_a1_filter1_msw; 236 unsigned short denominator_coeff_a0_filter2_lsw; 237 unsigned short denominator_coeff_a0_filter2_msw; 238 unsigned short denominator_coeff_a1_filter2_lsw; 239 unsigned short denominator_coeff_a1_filter2_msw; 240 unsigned short denominator_coeff_a0_filter3_lsw; 241 unsigned short denominator_coeff_a0_filter3_msw; 242 unsigned short denominator_coeff_a1_filter3_lsw; 243 unsigned short denominator_coeff_a1_filter3_msw; 244 245 unsigned short shift_factor_filter0; 246 unsigned short shift_factor_filter1; 247 unsigned short shift_factor_filter2; 248 unsigned short shift_factor_filter3; 249 250 unsigned short channel_selected0; 251 unsigned short channel_selected1; 252 unsigned short channel_selected2; 253 unsigned short channel_selected3; 254} __attribute__((packed))audpreproc_cmd_cfg_iir_tuning_filter_params; 255 256#endif 257