520 lines
16 KiB
C
520 lines
16 KiB
C
/* Copyright (c) 2009-2011, The Linux Foundation. All rights reserved.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 and
|
|
* only version 2 as published by the Free Software Foundation.
|
|
*
|
|
* 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.
|
|
*
|
|
*/
|
|
|
|
#ifndef QDSP5AUDPREPROCCMDI_H
|
|
#define QDSP5AUDPREPROCCMDI_H
|
|
|
|
/*
|
|
* AUDIOPREPROC COMMANDS:
|
|
* ARM uses uPAudPreProcAudRecCmdQueue to communicate with AUDPREPROCTASK
|
|
* Location : MEMB
|
|
* Buffer size : 7
|
|
* Number of buffers in a queue : 4
|
|
*/
|
|
|
|
/*
|
|
* Command to enable or disable particular encoder for new interface
|
|
*/
|
|
|
|
#define AUDPREPROC_AUDREC_CMD_ENC_CFG 0x0000
|
|
#define AUDPREPROC_AUDREC_CMD_ENC_CFG_LEN \
|
|
sizeof(struct audpreproc_audrec_cmd_enc_cfg)
|
|
#define AUDREC_TASK_0 0x00 /* SBC / PCM */
|
|
#define AUDREC_TASK_1 0x01 /* AAC / PCM / VOICE ENC */
|
|
|
|
#define ENCODE_ENABLE 0x8000
|
|
|
|
/* encoder type supported */
|
|
#define ENC_TYPE_WAV 0x00
|
|
#define ENC_TYPE_AAC 0x01
|
|
#define ENC_TYPE_SBC 0x02
|
|
#define ENC_TYPE_AMRNB 0x03
|
|
#define ENC_TYPE_EVRC 0x04
|
|
#define ENC_TYPE_V13K 0x05
|
|
#define ENC_TYPE_EXT_WAV 0x0F /* to dynamically configure frame size */
|
|
|
|
/* structure definitions according to
|
|
* command description of ARM-DSP interface specifications
|
|
*/
|
|
struct audpreproc_audrec_cmd_enc_cfg {
|
|
unsigned short cmd_id;
|
|
unsigned short stream_id;
|
|
unsigned short audrec_enc_type;
|
|
} __attribute__((packed));
|
|
|
|
/*
|
|
* Command to configure parameters of selected Encoder
|
|
*/
|
|
|
|
#define AUDPREPROC_AUDREC_CMD_PARAM_CFG 0x0001
|
|
|
|
#define AUDPREPROC_AUDREC_CMD_PARAM_CFG_COMMON_LEN \
|
|
sizeof(struct audpreproc_audrec_cmd_param_cfg_common)
|
|
|
|
#define DUAL_MIC_STEREO_RECORDING 2
|
|
|
|
struct audpreproc_audrec_cmd_param_cfg_common {
|
|
unsigned short cmd_id;
|
|
unsigned short stream_id;
|
|
} __attribute__((packed));
|
|
|
|
/*
|
|
* Command Structure to configure WAV Encoder
|
|
*/
|
|
|
|
#define AUDPREPROC_AUDREC_CMD_PARAM_CFG_WAV_LEN \
|
|
sizeof(struct audpreproc_audrec_cmd_parm_cfg_wav)
|
|
|
|
#define AUDREC_CMD_MODE_MONO 0
|
|
#define AUDREC_CMD_MODE_STEREO 1
|
|
|
|
struct audpreproc_audrec_cmd_parm_cfg_wav {
|
|
struct audpreproc_audrec_cmd_param_cfg_common common;
|
|
unsigned short aud_rec_samplerate_idx;
|
|
unsigned short aud_rec_stereo_mode;
|
|
unsigned short aud_rec_frame_size;
|
|
} __attribute__((packed));
|
|
|
|
/*
|
|
* Command Structure to configure AAC Encoder
|
|
*/
|
|
|
|
#define AUDPREPROC_AUDREC_CMD_PARAM_CFG_AAC_LEN \
|
|
sizeof(struct audpreproc_audrec_cmd_parm_cfg_aac)
|
|
|
|
struct audpreproc_audrec_cmd_parm_cfg_aac {
|
|
struct audpreproc_audrec_cmd_param_cfg_common common;
|
|
unsigned short aud_rec_samplerate_idx;
|
|
unsigned short aud_rec_stereo_mode;
|
|
signed short recording_quality;
|
|
} __attribute__((packed));
|
|
|
|
/*
|
|
* Command Structure to configure SBC Encoder
|
|
*/
|
|
|
|
#define AUDPREPROC_AUDREC_CMD_PARAM_CFG_SBC_LEN \
|
|
sizeof(struct audpreproc_audrec_cmd_parm_cfg_sbc)
|
|
|
|
/* encoder parameters mask definitions*/
|
|
|
|
#define AUDREC_SBC_ENC_PARAM_VER_MASK 0x000A
|
|
#define AUDREC_SBC_ENC_PARAM_ENAHANCED_SBC_BASELINE_VERSION 0x0000
|
|
#define AUDREC_SBC_ENC_PARAM_ENAHANCED_SBC_NA_MASK 0x0400
|
|
#define AUDREC_SBC_ENC_PARAM_BIT_ALLOC_MASK 0x0008
|
|
#define AUDREC_SBC_ENC_PARAM_SNR_MASK 0x0100
|
|
#define AUDREC_SBC_ENC_PARAM_MODE_MASK 0x0006
|
|
#define AUDREC_SBC_ENC_PARAM_MODE_DUAL_MASK 0x0040
|
|
#define AUDREC_SBC_ENC_PARAM_MODE_STEREO_MASK 0x0080
|
|
#define AUDREC_SBC_ENC_PARAM_MODE_JOINT_STEREO_MASK 0x00C0
|
|
#define AUDREC_SBC_ENC_PARAM_NUM_SUB_BANDS_MASK 0x0004
|
|
#define AUDREC_SBC_ENC_PARAM_NUM_SUB_BANDS_8_MASK 0x0001
|
|
#define AUDREC_SBC_ENC_PARAM_NUM_SUB_BLOCKS_MASK 0x0000
|
|
#define AUDREC_SBC_ENC_PARAM_NUM_SUB_BLOCKS_4_MASK 0x0000
|
|
#define AUDREC_SBC_ENC_PARAM_NUM_SUB_BLOCKS_8_MASK 0x0001
|
|
#define AUDREC_SBC_ENC_PARAM_NUM_SUB_BLOCKS_12_MASK 0x0002
|
|
#define AUDREC_SBC_ENC_PARAM_NUM_SUB_BLOCKS_16_MASK 0x0003
|
|
|
|
struct audpreproc_audrec_cmd_parm_cfg_sbc {
|
|
struct audpreproc_audrec_cmd_param_cfg_common common;
|
|
unsigned short aud_rec_sbc_enc_param;
|
|
unsigned short aud_rec_sbc_bit_rate_msw;
|
|
unsigned short aud_rec_sbc_bit_rate_lsw;
|
|
} __attribute__((packed));
|
|
|
|
/*
|
|
* Command Structure to configure AMRNB Encoder
|
|
*/
|
|
|
|
#define AUDPREPROC_AUDREC_CMD_PARAM_CFG_AMRNB_LEN \
|
|
sizeof(struct audpreproc_audrec_cmd_parm_cfg_amrnb)
|
|
|
|
#define AMRNB_DTX_MODE_ENABLE -1
|
|
#define AMRNB_DTX_MODE_DISABLE 0
|
|
|
|
#define AMRNB_TEST_MODE_ENABLE -1
|
|
#define AMRNB_TEST_MODE_DISABLE 0
|
|
|
|
#define AMRNB_USED_MODE_MR475 0x0
|
|
#define AMRNB_USED_MODE_MR515 0x1
|
|
#define AMRNB_USED_MODE_MR59 0x2
|
|
#define AMRNB_USED_MODE_MR67 0x3
|
|
#define AMRNB_USED_MODE_MR74 0x4
|
|
#define AMRNB_USED_MODE_MR795 0x5
|
|
#define AMRNB_USED_MODE_MR102 0x6
|
|
#define AMRNB_USED_MODE_MR122 0x7
|
|
|
|
struct audpreproc_audrec_cmd_parm_cfg_amrnb {
|
|
struct audpreproc_audrec_cmd_param_cfg_common common;
|
|
signed short dtx_mode;
|
|
signed short test_mode;
|
|
unsigned short used_mode;
|
|
} __attribute__((packed)) ;
|
|
|
|
/*
|
|
* Command Structure to configure EVRC Encoder
|
|
*/
|
|
|
|
#define AUDPREPROC_AUDREC_CMD_PARAM_CFG_EVRC_LEN \
|
|
sizeof(struct audpreproc_audrec_cmd_parm_cfg_evrc)
|
|
|
|
struct audpreproc_audrec_cmd_parm_cfg_evrc {
|
|
struct audpreproc_audrec_cmd_param_cfg_common common;
|
|
unsigned short enc_min_rate;
|
|
unsigned short enc_max_rate;
|
|
unsigned short rate_modulation_cmd;
|
|
} __attribute__((packed));
|
|
|
|
/*
|
|
* Command Structure to configure QCELP_13K Encoder
|
|
*/
|
|
|
|
#define AUDPREPROC_AUDREC_CMD_PARAM_CFG_QCELP13K_LEN \
|
|
sizeof(struct audpreproc_audrec_cmd_parm_cfg_qcelp13k)
|
|
|
|
struct audpreproc_audrec_cmd_parm_cfg_qcelp13k {
|
|
struct audpreproc_audrec_cmd_param_cfg_common common;
|
|
unsigned short enc_min_rate;
|
|
unsigned short enc_max_rate;
|
|
unsigned short rate_modulation_cmd;
|
|
unsigned short reduced_rate_level;
|
|
} __attribute__((packed));
|
|
|
|
/*
|
|
* Command to configure AFE for recording paths
|
|
*/
|
|
#define AUDPREPROC_AFE_CMD_AUDIO_RECORD_CFG 0x0002
|
|
|
|
#define AUDPREPROC_AFE_CMD_AUDIO_RECORD_CFG_LEN \
|
|
sizeof(struct audpreproc_afe_cmd_audio_record_cfg)
|
|
|
|
#define AUDIO_RECORDING_TURN_ON 0xFFFF
|
|
#define AUDIO_RECORDING_TURN_OFF 0x0000
|
|
|
|
#define AUDPP_A2DP_PIPE_SOURCE_MIX_MASK 0x0020
|
|
#define VOICE_DL_SOURCE_MIX_MASK 0x0010
|
|
#define VOICE_UL_SOURCE_MIX_MASK 0x0008
|
|
#define FM_SOURCE_MIX_MASK 0x0004
|
|
#define AUX_CODEC_TX_SOURCE_MIX_MASK 0x0002
|
|
#define INTERNAL_CODEC_TX_SOURCE_MIX_MASK 0x0001
|
|
|
|
struct audpreproc_afe_cmd_audio_record_cfg {
|
|
unsigned short cmd_id;
|
|
unsigned short stream_id;
|
|
unsigned short destination_activity;
|
|
unsigned short source_mix_mask;
|
|
unsigned short pipe_id;
|
|
unsigned short reserved;
|
|
} __attribute__((packed));
|
|
|
|
/*
|
|
* Command to configure Tunnel(RT) or Non-Tunnel(FTRT) mode
|
|
*/
|
|
#define AUDPREPROC_AUDREC_CMD_ROUTING_MODE 0x0003
|
|
#define AUDPREPROC_AUDREC_CMD_ROUTING_MODE_LEN \
|
|
sizeof(struct audpreproc_audrec_cmd_routing_mode)
|
|
|
|
#define AUDIO_ROUTING_MODE_FTRT 0x0001
|
|
#define AUDIO_ROUTING_MODE_RT 0x0002
|
|
|
|
struct audpreproc_audrec_cmd_routing_mode {
|
|
unsigned short cmd_id;
|
|
unsigned short stream_id;
|
|
unsigned short routing_mode;
|
|
} __attribute__((packed));
|
|
|
|
/*
|
|
* Command to configure DSP for topology where resampler moved
|
|
* in front of pre processing chain
|
|
*/
|
|
#define AUDPREPROC_AUDREC_CMD_ENC_CFG_2 0x0004
|
|
#define AUDPREPROC_AUDREC_CMD_ENC_CFG_2_LEN \
|
|
sizeof(struct audpreproc_audrec_cmd_enc_cfg_2)
|
|
|
|
|
|
struct audpreproc_audrec_cmd_enc_cfg_2 {
|
|
unsigned short cmd_id;
|
|
unsigned short stream_id;
|
|
unsigned short audrec_enc_type;
|
|
} __attribute__((packed));
|
|
|
|
/*
|
|
* AUDIOPREPROC COMMANDS:
|
|
* ARM uses uPAudPreProcCmdQueue to communicate with AUDPREPROCTASK
|
|
* Location : MEMB
|
|
* Buffer size : 52
|
|
* 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(struct audpreproc_cmd_cfg_agc_params)
|
|
|
|
#define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_COMP_SLOPE 0x0200
|
|
#define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_COMP_TH 0x0400
|
|
#define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_EXP_SLOPE 0x0800
|
|
#define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_EXP_TH 0x1000
|
|
#define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_COMP_AIG_FLAG 0x2000
|
|
#define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_COMP_STATIC_GAIN 0x4000
|
|
#define AUDPREPROC_CMD_TX_AGC_PARAM_MASK_TX_AGC_ENA_FLAG 0x8000
|
|
|
|
#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 0x0010
|
|
#define AUDPREPROC_CMD_PARAM_MASK_RELEASEK 0x0020
|
|
#define AUDPREPROC_CMD_PARAM_MASK_DELAY 0x0040
|
|
#define AUDPREPROC_CMD_PARAM_MASK_ATTACKK 0x0080
|
|
#define AUDPREPROC_CMD_PARAM_MASK_LEAKRATE_SLOW 0x0100
|
|
#define AUDPREPROC_CMD_PARAM_MASK_LEAKRATE_FAST 0x0200
|
|
#define AUDPREPROC_CMD_PARAM_MASK_AIG_RELEASEK 0x0400
|
|
#define AUDPREPROC_CMD_PARAM_MASK_AIG_MIN 0x0800
|
|
#define AUDPREPROC_CMD_PARAM_MASK_AIG_MAX 0x1000
|
|
#define AUDPREPROC_CMD_PARAM_MASK_LEAK_UP 0x2000
|
|
#define AUDPREPROC_CMD_PARAM_MASK_LEAK_DOWN 0x4000
|
|
#define AUDPREPROC_CMD_PARAM_MASK_AIG_ATTACKK 0x8000
|
|
|
|
struct audpreproc_cmd_cfg_agc_params {
|
|
unsigned short cmd_id;
|
|
unsigned short stream_id;
|
|
unsigned short tx_agc_param_mask;
|
|
signed short tx_agc_enable_flag;
|
|
unsigned short comp_rlink_static_gain;
|
|
signed short comp_rlink_aig_flag;
|
|
unsigned short expander_rlink_th;
|
|
unsigned short expander_rlink_slope;
|
|
unsigned short compressor_rlink_th;
|
|
unsigned short compressor_rlink_slope;
|
|
unsigned short tx_adc_agc_param_mask;
|
|
unsigned short comp_rlink_aig_attackk;
|
|
unsigned short comp_rlink_aig_leak_down;
|
|
unsigned short comp_rlink_aig_leak_up;
|
|
unsigned short comp_rlink_aig_max;
|
|
unsigned short comp_rlink_aig_min;
|
|
unsigned short comp_rlink_aig_releasek;
|
|
unsigned short comp_rlink_aig_leakrate_fast;
|
|
unsigned short comp_rlink_aig_leakrate_slow;
|
|
unsigned short comp_rlink_attackk_msw;
|
|
unsigned short comp_rlink_attackk_lsw;
|
|
unsigned short comp_rlink_delay;
|
|
unsigned short comp_rlink_releasek_msw;
|
|
unsigned short comp_rlink_releasek_lsw;
|
|
unsigned short comp_rlink_rms_tav;
|
|
} __attribute__((packed));
|
|
|
|
/*
|
|
* 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(struct 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;
|
|
|
|
struct audpreproc_cmd_cfg_agc_params_2 {
|
|
unsigned short cmd_id;
|
|
unsigned short stream_id;
|
|
unsigned short agc_param_mask;
|
|
signed short tx_agc_enable_flag;
|
|
unsigned short comp_rlink_static_gain;
|
|
unsigned short exp_rlink_th;
|
|
unsigned short exp_rlink_slope;
|
|
unsigned short comp_rlink_th;
|
|
unsigned short comp_rlink_slope;
|
|
unsigned short comp_rlink_rms_tav;
|
|
unsigned short comp_rlink_down_samp_mask;
|
|
unsigned short comp_rlink_attackk_msw;
|
|
unsigned short comp_rlink_attackk_lsw;
|
|
unsigned short comp_rlink_releasek_msw;
|
|
unsigned short comp_rlink_releasek_lsw;
|
|
unsigned short comp_rlink_delay;
|
|
unsigned short comp_rlink_makeup_gain;
|
|
} __attribute__((packed));
|
|
|
|
/*
|
|
* Command to configure params for ns
|
|
*/
|
|
|
|
#define AUDPREPROC_CMD_CFG_NS_PARAMS 0x0002
|
|
#define AUDPREPROC_CMD_CFG_NS_PARAMS_LEN \
|
|
sizeof(struct audpreproc_cmd_cfg_ns_params)
|
|
|
|
#define AUDPREPROC_CMD_EC_MODE_NLMS_ENA 0x0001
|
|
#define AUDPREPROC_CMD_EC_MODE_NLMS_DIS 0x0000
|
|
#define AUDPREPROC_CMD_EC_MODE_DES_ENA 0x0002
|
|
#define AUDPREPROC_CMD_EC_MODE_DES_DIS 0x0000
|
|
#define AUDPREPROC_CMD_EC_MODE_NS_ENA 0x0004
|
|
#define AUDPREPROC_CMD_EC_MODE_NS_DIS 0x0000
|
|
#define AUDPREPROC_CMD_EC_MODE_CNI_ENA 0x0008
|
|
#define AUDPREPROC_CMD_EC_MODE_CNI_DIS 0x0000
|
|
|
|
#define AUDPREPROC_CMD_EC_MODE_NLES_ENA 0x0010
|
|
#define AUDPREPROC_CMD_EC_MODE_NLES_DIS 0x0000
|
|
#define AUDPREPROC_CMD_EC_MODE_HB_ENA 0x0020
|
|
#define AUDPREPROC_CMD_EC_MODE_HB_DIS 0x0000
|
|
#define AUDPREPROC_CMD_EC_MODE_VA_ENA 0x0040
|
|
#define AUDPREPROC_CMD_EC_MODE_VA_DIS 0x0000
|
|
#define AUDPREPROC_CMD_EC_MODE_PCD_ENA 0x0080
|
|
#define AUDPREPROC_CMD_EC_MODE_PCD_DIS 0x0000
|
|
#define AUDPREPROC_CMD_EC_MODE_FEHI_ENA 0x0100
|
|
#define AUDPREPROC_CMD_EC_MODE_FEHI_DIS 0x0000
|
|
#define AUDPREPROC_CMD_EC_MODE_NEHI_ENA 0x0200
|
|
#define AUDPREPROC_CMD_EC_MODE_NEHI_DIS 0x0000
|
|
#define AUDPREPROC_CMD_EC_MODE_NLPP_ENA 0x0400
|
|
#define AUDPREPROC_CMD_EC_MODE_NLPP_DIS 0x0000
|
|
#define AUDPREPROC_CMD_EC_MODE_FNE_ENA 0x0800
|
|
#define AUDPREPROC_CMD_EC_MODE_FNE_DIS 0x0000
|
|
#define AUDPREPROC_CMD_EC_MODE_PRENLMS_ENA 0x1000
|
|
#define AUDPREPROC_CMD_EC_MODE_PRENLMS_DIS 0x0000
|
|
|
|
struct audpreproc_cmd_cfg_ns_params {
|
|
unsigned short cmd_id;
|
|
unsigned short stream_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));
|
|
|
|
/*
|
|
* 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(struct audpreproc_cmd_cfg_iir_tuning_filter_params)
|
|
|
|
#define AUDPREPROC_CMD_IIR_ACTIVE_FLAG_DIS 0x0000
|
|
#define AUDPREPROC_CMD_IIR_ACTIVE_FLAG_ENA 0x0001
|
|
|
|
struct audpreproc_cmd_cfg_iir_tuning_filter_params {
|
|
unsigned short cmd_id;
|
|
unsigned short stream_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 pan_of_filter0;
|
|
unsigned short pan_of_filter1;
|
|
unsigned short pan_of_filter2;
|
|
unsigned short pan_of_filter3;
|
|
} __attribute__((packed));
|
|
|
|
/*
|
|
* Command to configure parameters for calibration gain rx
|
|
*/
|
|
|
|
#define AUDPREPROC_CMD_CFG_CAL_GAIN_PARAMS 0x0004
|
|
#define AUDPREPROC_CMD_CFG_CAL_GAIN_LEN \
|
|
sizeof(struct audpreproc_cmd_cfg_cal_gain)
|
|
|
|
struct audpreproc_cmd_cfg_cal_gain {
|
|
unsigned short cmd_id;
|
|
unsigned short stream_id;
|
|
unsigned short audprecalgain;
|
|
unsigned short reserved;
|
|
} __attribute__((packed));
|
|
|
|
#define AUDPREPROC_CMD_CFG_LVNV_PARMS 0x0006
|
|
#define AUDPREPROC_CMD_CFG_LVNV_PARMS_LEN \
|
|
sizeof(struct audpreproc_cmd_cfg_lvnv_param)
|
|
|
|
struct audpreproc_cmd_cfg_lvnv_param {
|
|
unsigned short cmd_id;
|
|
unsigned short stream_id;
|
|
unsigned short cs_mode;
|
|
unsigned short lvnv_ext_buf_size;
|
|
unsigned short lvnv_ext_partition;
|
|
unsigned short lvnv_ext_buf_start_lsw;
|
|
unsigned short lvnv_ext_buf_start_msw;
|
|
};
|
|
|
|
#define AUDPREPROC_CMD_FEAT_QUERY_PARAMS 0x0005
|
|
|
|
struct rtc_audpreproc_read_data {
|
|
unsigned short cmd_id;
|
|
unsigned short stream_id;
|
|
unsigned short feature_id;
|
|
unsigned short extbufsizemsw;
|
|
unsigned short extbufsizelsw;
|
|
unsigned short extpart;
|
|
unsigned short extbufstartmsw;
|
|
unsigned short extbufstartlsw;
|
|
} __attribute__((packed)) ;
|
|
|
|
#endif /* QDSP5AUDPREPROCCMDI_H */
|