Merge "hal: use handset-mic as input device when USB headset is unplugged."
diff --git a/configs/msm8909/audio_io_policy.conf b/configs/msm8909/audio_io_policy.conf
new file mode 100644
index 0000000..46cd8cf
--- /dev/null
+++ b/configs/msm8909/audio_io_policy.conf
@@ -0,0 +1,113 @@
+# List of profiles for the output device session where stream is routed.
+# A stream opened with the inputs attributes which match the "flags" and
+# "formats" as specified in the profile is routed to a device at
+# sample rate specified under "sampling_rates" and bit width under
+# "bit_width" and the topology extracted from the acdb data against
+# the "app_type".
+#
+# the flags and formats are specified using the strings corresponding to
+# enums in audio.h and audio_policy.h. They are concatenated with "|"
+# without space or "\n".
+# the flags and formats should match the ones in "audio_policy.conf"
+
+outputs {
+ default {
+ flags AUDIO_OUTPUT_FLAG_PRIMARY
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 48000
+ bit_width 16
+ app_type 69937
+ }
+ deep_buffer {
+ flags AUDIO_OUTPUT_FLAG_DEEP_BUFFER
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 48000
+ bit_width 16
+ app_type 69936
+ }
+ direct_pcm_16 {
+ flags AUDIO_OUTPUT_FLAG_DIRECT
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 44100|48000|96000|192000
+ bit_width 16
+ app_type 69936
+ }
+ direct_pcm_24 {
+ flags AUDIO_OUTPUT_FLAG_DIRECT
+ formats AUDIO_FORMAT_PCM_24_BIT_PACKED
+ sampling_rates 44100|48000|96000|192000
+ bit_width 24
+ app_type 69940
+ }
+ compress_offload_16 {
+ flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING
+ formats AUDIO_FORMAT_MP3|AUDIO_FORMAT_AC3|AUDIO_FORMAT_E_AC3|AUDIO_FORMAT_PCM_16_BIT_OFFLOAD|AUDIO_FORMAT_PCM_24_BIT_OFFLOAD|AUDIO_FORMAT_FLAC|AUDIO_FORMAT_ALAC|AUDIO_FORMAT_APE|AUDIO_FORMAT_AAC_LC|AUDIO_FORMAT_AAC_HE_V1|AUDIO_FORMAT_AAC_HE_V2|AUDIO_FORMAT_WMA|AUDIO_FORMAT_WMA_PRO|AUDIO_FORMAT_VORBIS|AUDIO_FORMAT_AAC_ADTS_LC|AUDIO_FORMAT_AAC_ADTS_HE_V1|AUDIO_FORMAT_AAC_ADTS_HE_V2
+ sampling_rates 44100|48000|96000|192000
+ bit_width 16
+ app_type 69936
+ }
+ compress_offload_24 {
+ flags AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING
+ formats AUDIO_FORMAT_PCM_24_BIT_OFFLOAD|AUDIO_FORMAT_FLAC|AUDIO_FORMAT_ALAC|AUDIO_FORMAT_APE|AUDIO_FORMAT_VORBIS
+ sampling_rates 44100|48000|96000|192000
+ bit_width 24
+ app_type 69940
+ }
+}
+
+inputs {
+ primary {
+ flags AUDIO_INPUT_FLAG_NONE
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
+ bit_width 16
+ app_type 69938
+ }
+ record_24bit {
+ profile none
+ flags AUDIO_INPUT_FLAG_NONE
+ formats AUDIO_FORMAT_PCM_24_BIT_PACKED
+ sampling_rates 16000|48000
+ bit_width 24
+ app_type 69945
+ }
+ record_unprocessed {
+ profile record_unprocessed
+ formats AUDIO_FORMAT_PCM_24_BIT_PACKED
+ sampling_rates 16000|48000
+ bit_width 24
+ app_type 69942
+ }
+ record_mec {
+ flags AUDIO_INPUT_FLAG_TIMESTAMP
+ profile record_mec
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 16000|48000
+ bit_width 16
+ app_type 69944
+ }
+ record_fluence {
+ flags AUDIO_INPUT_FLAG_TIMESTAMP
+ profile record_fluence
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 48000
+ bit_width 16
+ app_type 69943
+ }
+ record_fluence1 {
+ flags AUDIO_INPUT_FLAG_NONE
+ profile record_fluence
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 16000|48000
+ bit_width 16
+ app_type 69943
+ }
+ record_fluence2 {
+ flags AUDIO_INPUT_FLAG_COMPRESS
+ profile record_fluence
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 16000|48000
+ bit_width 16
+ app_type 69943
+ }
+}
diff --git a/configs/msm8909/audio_platform_info_extcodec.xml b/configs/msm8909/audio_platform_info_extcodec.xml
new file mode 100644
index 0000000..a49754d
--- /dev/null
+++ b/configs/msm8909/audio_platform_info_extcodec.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Copyright (c) 2015, 2017-2018, The Linux Foundation. All rights reserved. -->
+<!-- -->
+<!-- Redistribution and use in source and binary forms, with or without -->
+<!-- modification, are permitted provided that the following conditions are -->
+<!-- met: -->
+<!-- * Redistributions of source code must retain the above copyright -->
+<!-- notice, this list of conditions and the following disclaimer. -->
+<!-- * Redistributions in binary form must reproduce the above -->
+<!-- copyright notice, this list of conditions and the following -->
+<!-- disclaimer in the documentation and/or other materials provided -->
+<!-- with the distribution. -->
+<!-- * Neither the name of The Linux Foundation nor the names of its -->
+<!-- contributors may be used to endorse or promote products derived -->
+<!-- from this software without specific prior written permission. -->
+<!-- -->
+<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
+<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
+<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
+<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
+<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
+<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
+<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
+<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
+<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
+<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
+<audio_platform_info>
+ <acdb_ids>
+ <device name="SND_DEVICE_IN_HANDSET_QMIC" acdb_id="140"/>
+ <device name="SND_DEVICE_IN_HANDSET_6MIC" acdb_id="140"/>
+ <device name="SND_DEVICE_IN_HANDSET_8MIC" acdb_id="140"/>
+ <device name="SND_DEVICE_IN_EC_REF_LOOPBACK_MONO" acdb_id="140"/>
+ <device name="SND_DEVICE_IN_EC_REF_LOOPBACK_STEREO" acdb_id="140"/>
+ </acdb_ids>
+ <bit_width_configs>
+ <device name="SND_DEVICE_OUT_SPEAKER" bit_width="24"/>
+ </bit_width_configs>
+ <interface_names>
+ <device name="AUDIO_DEVICE_IN_BUILTIN_MIC" interface="QUATERNARY_MI2S" codec_type="external"/>
+ <device name="AUDIO_DEVICE_IN_BACK_MIC" interface="QUATERNARY_MI2S" codec_type="external"/>
+ <device name="AUDIO_DEVICE_IN_BUILTIN_MIC" interface="TERT_MI2S" codec_type="internal"/>
+ <device name="AUDIO_DEVICE_IN_BACK_MIC" interface="TERT_MI2S" codec_type="internal"/>
+ </interface_names>
+ <config_params>
+ <param key="input_mic_max_count" value="6"/>
+ <param key="ffv_split_ec_ref_data" value="false"/>
+ <param key="ffv_ec_ref_channel_count" value="1"/>
+ </config_params>
+ <pcm_ids>
+ <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD2" type="out" id="24"/>
+ <usecase name="USECASE_AUDIO_EC_REF_LOOPBACK" type="in" id="14"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_SILENCE" type="out" id="14"/>
+ <usecase name="USECASE_AUDIO_RECORD_COMPRESS2" type="in" id="43"/>
+ <usecase name="USECASE_AUDIO_RECORD_COMPRESS3" type="in" id="44"/>
+ <usecase name="USECASE_AUDIO_RECORD_COMPRESS4" type="in" id="45"/>
+ </pcm_ids>
+ <acdb_metainfo_key>
+ <param name="aptx" value="456"/>
+ </acdb_metainfo_key>
+</audio_platform_info>
+
+
diff --git a/configs/msm8909/mixer_paths_wcd9326_i2s_tdm.xml b/configs/msm8909/mixer_paths_wcd9326_i2s_tdm.xml
new file mode 100644
index 0000000..61e2bde
--- /dev/null
+++ b/configs/msm8909/mixer_paths_wcd9326_i2s_tdm.xml
@@ -0,0 +1,1909 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. -->
+<!-- -->
+<!-- Redistribution and use in source and binary forms, with or without -->
+<!-- modification, are permitted provided that the following conditions are -->
+<!-- met: -->
+<!-- * Redistributions of source code must retain the above copyright -->
+<!-- notice, this list of conditions and the following disclaimer. -->
+<!-- * Redistributions in binary form must reproduce the above -->
+<!-- copyright notice, this list of conditions and the following -->
+<!-- disclaimer in the documentation and/or other materials provided -->
+<!-- with the distribution. -->
+<!-- * Neither the name of The Linux Foundation nor the names of its -->
+<!-- contributors may be used to endorse or promote products derived -->
+<!-- from this software without specific prior written permission. -->
+<!-- -->
+<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
+<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
+<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
+<!-- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
+<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
+<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
+<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
+<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
+<!-- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
+<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
+<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
+<mixer>
+ <!-- These are the initial mixer settings -->
+ <ctl name="Voice Rx Device Mute" id="0" value="0" />
+ <ctl name="Voice Rx Device Mute" id="1" value="-1" />
+ <ctl name="Voice Rx Device Mute" id="2" value="20" />
+ <ctl name="Voice Tx Mute" id="0" value="0" />
+ <ctl name="Voice Tx Mute" id="1" value="-1" />
+ <ctl name="Voice Tx Mute" id="2" value="500" />
+ <ctl name="Voice Rx Gain" id="0" value="0" />
+ <ctl name="Voice Rx Gain" id="1" value="-1" />
+ <ctl name="Voice Rx Gain" id="2" value="20" />
+ <ctl name="Voip Tx Mute" id="0" value="0" />
+ <ctl name="Voip Tx Mute" id="1" value="500" />
+ <ctl name="Voip Rx Gain" id="0" value="0" />
+ <ctl name="Voip Rx Gain" id="1" value="20" />
+ <ctl name="Voip Mode Config" value="12" />
+ <ctl name="Voip Rate Config" value="0" />
+ <ctl name="Voip Evrc Min Max Rate Config" id="0" value="1" />
+ <ctl name="Voip Evrc Min Max Rate Config" id="1" value="4" />
+ <ctl name="Voip Dtx Mode" value="0" />
+ <ctl name="TTY Mode" value="OFF" />
+ <ctl name="LINEOUT1 Volume" value="13" />
+ <ctl name="LINEOUT2 Volume" value="13" />
+ <ctl name="LINEOUT3 Volume" value="13" />
+ <ctl name="LINEOUT4 Volume" value="13" />
+ <ctl name="HPHL Volume" value="20" />
+ <ctl name="HPHR Volume" value="20" />
+ <ctl name="RX0 Digital Volume" value="84" />
+ <ctl name="RX1 Digital Volume" value="84" />
+ <ctl name="RX2 Digital Volume" value="84" />
+ <ctl name="RX3 Digital Volume" value="84" />
+ <ctl name="RX4 Digital Volume" value="84" />
+ <ctl name="RX5 Digital Volume" value="84" />
+ <ctl name="RX6 Digital Volume" value="84" />
+ <ctl name="RX7 Digital Volume" value="84" />
+ <ctl name="RX8 Digital Volume" value="84" />
+ <ctl name="ADC1 Volume" value="12" />
+ <ctl name="ADC2 Volume" value="12" />
+ <ctl name="ADC3 Volume" value="0" />
+ <ctl name="ADC4 Volume" value="0" />
+ <ctl name="ADC5 Volume" value="12" />
+ <ctl name="ADC6 Volume" value="12" />
+ <ctl name="DEC0 Volume" value="84" />
+ <ctl name="DEC1 Volume" value="84" />
+ <ctl name="DEC2 Volume" value="84" />
+ <ctl name="DEC3 Volume" value="84" />
+ <ctl name="DEC4 Volume" value="84" />
+ <ctl name="DEC5 Volume" value="84" />
+ <ctl name="DEC6 Volume" value="84" />
+ <ctl name="DEC7 Volume" value="84" />
+ <ctl name="DEC8 Volume" value="84" />
+ <ctl name="COMP1 Switch" value="1" />
+ <ctl name="COMP2 Switch" value="1" />
+ <ctl name="COMP7 Switch" value="1" />
+ <ctl name="COMP8 Switch" value="1" />
+ <ctl name="RX HPH Mode" value="CLS_H_LP" />
+ <ctl name="PRI_MI2S_RX Port Mixer MI2S_TX" value="0" />
+ <ctl name="HDMI_RX Port Mixer MI2S_TX" value="0" />
+ <ctl name="PRI_MI2S_RX Port Mixer SLIM_0_TX" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia7" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia11" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia12" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia13" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia14" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia15" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia16" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia2" value="0" />
+ <ctl name="MultiMedia5 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia5 Mixer AFE_PCM_TX" value="0" />
+ <ctl name="MultiMedia4 Mixer MI2S_TX" value="0" />
+ <ctl name="MultiMedia1 Mixer MI2S_TX" value="0" />
+ <ctl name="MultiMedia7 Mixer MI2S_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer MI2S_TX" value="0" />
+ <ctl name="MultiMedia11 Mixer MI2S_TX" value="0" />
+ <ctl name="MultiMedia12 Mixer MI2S_TX" value="0" />
+ <ctl name="MultiMedia13 Mixer MI2S_TX" value="0" />
+ <ctl name="MultiMedia14 Mixer MI2S_TX" value="0" />
+ <ctl name="MultiMedia15 Mixer MI2S_TX" value="0" />
+ <ctl name="MultiMedia16 Mixer MI2S_TX" value="0" />
+ <ctl name="MultiMedia1 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia1 Mixer SLIM_4_TX" value="0" />
+ <ctl name="MultiMedia1 Mixer INTERNAL_BT_SCO_TX" value="0" />
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia2" value="0" />
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia3" value="0" />
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia7" value="0" />
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia11" value="0" />
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia12" value="0" />
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia13" value="0" />
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia14" value="0" />
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia15" value="0" />
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia16" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia2" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia3" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia7" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia11" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia12" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia13" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia14" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia15" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia16" value="0" />
+ <ctl name="MultiMedia6 Mixer SLIM_0_TX" value="0" />
+ <ctl name="IIR0 INP0 MUX" value="ZERO" />
+ <ctl name="IIR0 INP1 MUX" value="ZERO" />
+ <ctl name="IIR0 INP2 MUX" value="ZERO" />
+ <ctl name="IIR1 INP0 MUX" value="ZERO" />
+ <ctl name="IIR1 INP1 MUX" value="ZERO" />
+ <ctl name="IIR1 INP2 MUX" value="ZERO" />
+ <ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="ZERO" />
+ <ctl name="SLIM TX13 MUX" value="ZERO" />
+ <ctl name="SLIM TX10 MUX" value="ZERO" />
+ <ctl name="SLIM TX9 MUX" value="ZERO" />
+ <ctl name="SLIM TX8 MUX" value="ZERO" />
+ <ctl name="SLIM TX7 MUX" value="ZERO" />
+ <ctl name="SLIM TX6 MUX" value="ZERO" />
+ <ctl name="SLIM TX11 MUX" value="ZERO" />
+ <ctl name="SLIM TX4 MUX" value="ZERO" />
+ <ctl name="SLIM TX3 MUX" value="ZERO" />
+ <ctl name="SLIM TX2 MUX" value="ZERO" />
+ <ctl name="SLIM TX1 MUX" value="ZERO" />
+ <ctl name="SLIM TX0 MUX" value="ZERO" />
+ <ctl name="ADC MUX13" value="AMIC" />
+ <ctl name="ADC MUX12" value="AMIC" />
+ <ctl name="ADC MUX11" value="AMIC" />
+ <ctl name="ADC MUX10" value="AMIC" />
+ <ctl name="ADC MUX8" value="AMIC" />
+ <ctl name="ADC MUX7" value="AMIC" />
+ <ctl name="ADC MUX6" value="AMIC" />
+ <ctl name="ADC MUX5" value="AMIC" />
+ <ctl name="ADC MUX4" value="AMIC" />
+ <ctl name="ADC MUX3" value="AMIC" />
+ <ctl name="ADC MUX2" value="AMIC" />
+ <ctl name="ADC MUX1" value="AMIC" />
+ <ctl name="ADC MUX0" value="AMIC" />
+ <ctl name="DMIC MUX0" value="ZERO" />
+ <ctl name="DMIC MUX1" value="ZERO" />
+ <ctl name="DMIC MUX2" value="ZERO" />
+ <ctl name="DMIC MUX3" value="ZERO" />
+ <ctl name="DMIC MUX4" value="ZERO" />
+ <ctl name="DMIC MUX5" value="ZERO" />
+ <ctl name="DMIC MUX6" value="ZERO" />
+ <ctl name="DMIC MUX7" value="ZERO" />
+ <ctl name="DMIC MUX8" value="ZERO" />
+ <ctl name="DMIC MUX10" value="ZERO" />
+ <ctl name="DMIC MUX11" value="ZERO" />
+ <ctl name="DMIC MUX12" value="ZERO" />
+ <ctl name="DMIC MUX13" value="ZERO" />
+ <ctl name="AMIC MUX0" value="ZERO" />
+ <ctl name="AMIC MUX1" value="ZERO" />
+ <ctl name="AMIC MUX2" value="ZERO" />
+ <ctl name="AMIC MUX3" value="ZERO" />
+ <ctl name="AMIC MUX4" value="ZERO" />
+ <ctl name="AMIC MUX5" value="ZERO" />
+ <ctl name="AMIC MUX6" value="ZERO" />
+ <ctl name="AMIC MUX7" value="ZERO" />
+ <ctl name="AMIC MUX8" value="ZERO" />
+ <ctl name="AMIC MUX10" value="ZERO" />
+ <ctl name="AMIC MUX11" value="ZERO" />
+ <ctl name="AMIC MUX12" value="ZERO" />
+ <ctl name="AMIC MUX13" value="ZERO" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT2_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT3_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT4_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT5_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT6_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT7_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT8_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT0_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT2_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT3_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT4_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT5_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT6_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT7_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT8_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT0_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX INT2_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX INT3_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX INT4_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX INT5_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX INT6_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX INT7_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX INT8_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX INT0_2 MUX" value="ZERO" />
+ <ctl name="RX INT1_2 MUX" value="ZERO" />
+ <ctl name="RX INT2_2 MUX" value="ZERO" />
+ <ctl name="RX INT3_2 MUX" value="ZERO" />
+ <ctl name="RX INT4_2 MUX" value="ZERO" />
+ <ctl name="RX INT5_2 MUX" value="ZERO" />
+ <ctl name="RX INT6_2 MUX" value="ZERO" />
+ <ctl name="RX INT7_2 MUX" value="ZERO" />
+ <ctl name="RX INT8_2 MUX" value="ZERO" />
+ <ctl name="SPL SRC0 MUX" value="ZERO" />
+ <ctl name="SPL SRC1 MUX" value="ZERO" />
+ <ctl name="SPL SRC2 MUX" value="ZERO" />
+ <ctl name="SPL SRC3 MUX" value="ZERO" />
+ <ctl name="RX INT1 SPLINE MIX HPHL Switch" value="0" />
+ <ctl name="RX INT3 SPLINE MIX LO1 Switch" value="0" />
+ <ctl name="RX INT2 SPLINE MIX HPHR Switch" value="0" />
+ <ctl name="RX INT4 SPLINE MIX LO2 Switch" value="0" />
+ <ctl name="RX MIX TX0 MUX" value="ZERO" />
+ <ctl name="RX MIX TX1 MUX" value="ZERO" />
+ <ctl name="RX MIX TX2 MUX" value="ZERO" />
+ <ctl name="RX MIX TX3 MUX" value="ZERO" />
+ <ctl name="RX MIX TX4 MUX" value="ZERO" />
+ <ctl name="RX MIX TX5 MUX" value="ZERO" />
+ <ctl name="RX MIX TX6 MUX" value="ZERO" />
+ <ctl name="RX MIX TX7 MUX" value="ZERO" />
+ <ctl name="RX MIX TX8 MUX" value="ZERO" />
+ <ctl name="IIR0 INP0 MUX" value="ZERO" />
+ <ctl name="IIR0 INP1 MUX" value="ZERO" />
+ <ctl name="IIR0 INP2 MUX" value="ZERO" />
+ <ctl name="IIR0 INP3 MUX" value="ZERO" />
+ <ctl name="IIR1 INP0 MUX" value="ZERO" />
+ <ctl name="IIR1 INP1 MUX" value="ZERO" />
+ <ctl name="IIR1 INP2 MUX" value="ZERO" />
+ <ctl name="IIR1 INP3 MUX" value="ZERO" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX INT2 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="SLIM_0_RX Channels" value="One" />
+ <ctl name="MI2S_TX Channels" value="One" />
+ <ctl name="PRI_TDM_TX_0 Channels" value="One" />
+ <ctl name="EAR PA Gain" value="G_6_DB" />
+ <ctl name="SpkrLeft COMP Switch" value="0" />
+ <ctl name="SpkrRight COMP Switch" value="0" />
+ <ctl name="SpkrLeft BOOST Switch" value="0" />
+ <ctl name="SpkrRight BOOST Switch" value="0" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="0" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="0" />
+ <ctl name="AIF1_CAP Mixer SLIM TX7" value="0" />
+ <ctl name="AIF1_CAP Mixer SLIM TX8" value="0"/>
+ <ctl name="AIF1_CAP Mixer SLIM TX6" value="0" />
+ <ctl name="AIF1_CAP Mixer SLIM TX11" value="0"/>
+ <ctl name="AIF1_CAP Mixer SLIM TX4" value="0" />
+ <ctl name="AIF1_CAP Mixer SLIM TX3" value="0"/>
+ <ctl name="AIF1_CAP Mixer SLIM TX2" value="0" />
+ <ctl name="AIF1_CAP Mixer SLIM TX1" value="0"/>
+ <ctl name="AIF1_CAP Mixer SLIM TX0" value="0"/>
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="HDMI Mixer MultiMedia4" value="0" />
+ <!-- echo reference -->
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="None" />
+ <!-- usb headset -->
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia7" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia11" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia12" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia13" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia14" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia15" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="0" />
+ <ctl name="MultiMedia1 Mixer AFE_PCM_TX" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="0" />
+ <!-- usb headset end -->
+ <!-- fm -->
+ <ctl name="PRI_MI2S_RX Port Mixer INTERNAL_FM_TX" value="0" />
+ <ctl name="MultiMedia1 Mixer INTERNAL_FM_TX" value="0" />
+ <ctl name="MultiMedia2 Mixer INTERNAL_FM_TX" value="0" />
+ <ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia4" value="0" />
+ <!-- fm end -->
+
+ <!-- RT Proxy Cal -->
+ <ctl name="RT_PROXY_1_RX SetCalMode" value="CAL_MODE_NONE" />
+ <ctl name="RT_PROXY_1_TX SetCalMode" value="CAL_MODE_NONE" />
+ <!-- RT Proxy Cal end -->
+
+ <!-- Voice -->
+ <ctl name="SLIM_0_RX_Voice Mixer CSVoice" value="0" />
+ <ctl name="Voice_Tx Mixer SLIM_0_TX_Voice" value="0" />
+ <!-- Voice HDMI -->
+ <ctl name="HDMI_RX_Voice Mixer CSVoice" value="0" />
+ <!-- Voice BTSCO -->
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_8KHZ" />
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer CSVoice" value="0" />
+ <ctl name="Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice" value="0" />
+ <!-- Voice USB headset -->
+ <ctl name="AFE_PCM_RX_Voice Mixer CSVoice" value="0" />
+ <ctl name="Voice_Tx Mixer AFE_PCM_TX_Voice" value="0" />
+ <!-- Voice end-->
+
+ <!-- Voice2 -->
+ <ctl name="SLIM_0_RX_Voice Mixer Voice2" value="0" />
+ <ctl name="Voice2_Tx Mixer SLIM_0_TX_Voice2" value="0" />
+ <!-- Voice2 HDMI -->
+ <ctl name="HDMI_RX_Voice Mixer Voice2" value="0" />
+ <!-- Voice2 BTSCO -->
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer Voice2" value="0" />
+ <ctl name="Voice2_Tx Mixer INTERNAL_BT_SCO_TX_Voice2" value="0" />
+ <!-- Voice2 USB headset -->
+ <ctl name="AFE_PCM_RX_Voice Mixer Voice2" value="0" />
+ <ctl name="Voice2_Tx Mixer AFE_PCM_TX_Voice2" value="0" />
+ <!-- Voice2 end-->
+
+ <!-- VoLTE -->
+ <ctl name="SLIM_0_RX_Voice Mixer VoLTE" value="0" />
+ <ctl name="VoLTE_Tx Mixer SLIM_0_TX_VoLTE" value="0" />
+ <!-- VoLTE HDMI -->
+ <ctl name="HDMI_RX_Voice Mixer VoLTE" value="0" />
+ <!-- VoLTE BTSCO -->
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer VoLTE" value="0" />
+ <ctl name="VoLTE_Tx Mixer INTERNAL_BT_SCO_TX_VoLTE" value="0" />
+ <!-- VoLTE USB headset -->
+ <ctl name="AFE_PCM_RX_Voice Mixer VoLTE" value="0" />
+ <ctl name="VoLTE_Tx Mixer AFE_PCM_TX_VoLTE" value="0" />
+ <!-- VoLTE end-->
+
+ <!-- Multimode Voice1 -->
+ <ctl name="SLIM_0_RX_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer SLIM_0_TX_MMode1" value="0" />
+ <!-- Multimode Voice1 HDMI -->
+ <ctl name="HDMI_RX_Voice Mixer VoiceMMode1" value="0" />
+ <!-- Multimode Voice1 BTSCO -->
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer INT_BT_SCO_TX_MMode1" value="0" />
+ <!-- Multimode Voice1 USB headset -->
+ <ctl name="AFE_PCM_RX_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer AFE_PCM_TX_MMode1" value="0" />
+ <!-- Miltimode Voice1 end-->
+
+ <!-- Multimode Voice2 -->
+ <ctl name="SLIM_0_RX_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="VoiceMMode2_Tx Mixer SLIM_0_TX_MMode2" value="0" />
+ <!-- Multimode Voice2 HDMI -->
+ <ctl name="HDMI_RX_Voice Mixer VoiceMMode2" value="0" />
+ <!-- Multimode Voice2 BTSCO -->
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="VoiceMMode2_Tx Mixer INT_BT_SCO_TX_MMode2" value="0" />
+ <!-- Multimode Voice2 USB headset -->
+ <ctl name="AFE_PCM_RX_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="VoiceMMode2_Tx Mixer AFE_PCM_TX_MMode2" value="0" />
+ <!-- Multimode Voice2 end-->
+
+ <!-- Incall Recording -->
+ <ctl name="MultiMedia1 Mixer VOC_REC_UL" value="0" />
+ <ctl name="MultiMedia1 Mixer VOC_REC_DL" value="0" />
+ <ctl name="MultiMedia8 Mixer VOC_REC_UL" value="0" />
+ <ctl name="MultiMedia8 Mixer VOC_REC_DL" value="0" />
+ <!-- Incall Recording End -->
+
+ <!-- Incall Music -->
+ <ctl name="Incall_Music Audio Mixer MultiMedia2" value="0" />
+ <ctl name="Incall_Music_2 Audio Mixer MultiMedia9" value="0" />
+ <!-- Incall Music End -->
+
+ <!-- compress-voip-call start -->
+ <ctl name="SLIM_0_RX_Voice Mixer Voip" value="0" />
+ <ctl name="Voip_Tx Mixer SLIM_0_TX_Voip" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer Voip" value="0" />
+ <ctl name="Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip" value="0" />
+ <ctl name="AFE_PCM_RX_Voice Mixer Voip" value="0" />
+ <ctl name="Voip_Tx Mixer AFE_PCM_TX_Voip" value="0" />
+ <!-- compress-voip-call end-->
+
+ <!-- QCHAT start -->
+ <ctl name="SLIM_0_RX_Voice Mixer QCHAT" value="0" />
+ <ctl name="QCHAT_Tx Mixer SLIM_0_TX_QCHAT" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer QCHAT" value="0" />
+ <ctl name="QCHAT_Tx Mixer INTERNAL_BT_SCO_TX_QCHAT" value="0" />
+ <!-- QCHAT end-->
+
+ <!-- VoWLAN start -->
+ <ctl name="SLIM_0_RX_Voice Mixer VoWLAN" value="0" />
+ <ctl name="VoWLAN_Tx Mixer SLIM_0_TX_VoWLAN" value="0" />
+ <ctl name="HDMI_RX_Voice Mixer VoWLAN" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer VoWLAN" value="0" />
+ <ctl name="VoWLAN_Tx Mixer INTERNAL_BT_SCO_TX_VoWLAN" value="0" />
+ <ctl name="AFE_PCM_RX_Voice Mixer VoWLAN" value="0" />
+ <ctl name="VoWLAN_Tx Mixer AFE_PCM_TX_VoWLAN" value="0" />
+ <!-- VoWLAN end-->
+
+ <!-- Audio BTSCO -->
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia6" value="0" />
+ <ctl name="MultiMedia1 Mixer INTERNAL_BT_SCO_TX" value="0" />
+ <ctl name="MultiMedia5 Mixer INTERNAL_BT_SCO_TX" value="0" />
+ <!-- IIR/voice anc -->
+ <ctl name="IIR0 Band1" id ="0" value="268435456" />
+ <ctl name="IIR0 Band1" id ="1" value="0" />
+ <ctl name="IIR0 Band1" id ="2" value="0" />
+ <ctl name="IIR0 Band1" id ="3" value="0" />
+ <ctl name="IIR0 Band1" id ="4" value="0" />
+ <ctl name="IIR0 Band2" id ="0" value="268435456" />
+ <ctl name="IIR0 Band2" id ="1" value="0" />
+ <ctl name="IIR0 Band2" id ="2" value="0" />
+ <ctl name="IIR0 Band2" id ="3" value="0" />
+ <ctl name="IIR0 Band2" id ="4" value="0" />
+ <ctl name="IIR0 Band3" id ="0" value="268435456" />
+ <ctl name="IIR0 Band3" id ="1" value="0" />
+ <ctl name="IIR0 Band3" id ="2" value="0" />
+ <ctl name="IIR0 Band3" id ="3" value="0" />
+ <ctl name="IIR0 Band3" id ="4" value="0" />
+ <ctl name="IIR0 Band4" id ="0" value="268435456" />
+ <ctl name="IIR0 Band4" id ="1" value="0" />
+ <ctl name="IIR0 Band4" id ="2" value="0" />
+ <ctl name="IIR0 Band4" id ="3" value="0" />
+ <ctl name="IIR0 Band4" id ="4" value="0" />
+ <ctl name="IIR0 Band5" id ="0" value="268435456" />
+ <ctl name="IIR0 Band5" id ="1" value="0" />
+ <ctl name="IIR0 Band5" id ="2" value="0" />
+ <ctl name="IIR0 Band5" id ="3" value="0" />
+ <ctl name="IIR0 Band5" id ="4" value="0" />
+ <ctl name="IIR0 Enable Band1" value="0" />
+ <ctl name="IIR0 Enable Band2" value="0" />
+ <ctl name="IIR0 Enable Band3" value="0" />
+ <ctl name="IIR0 Enable Band4" value="0" />
+ <ctl name="IIR0 Enable Band5" value="0" />
+ <ctl name="IIR0 INP0 Volume" value="54" />
+ <!-- IIR/voice anc end -->
+ <!-- ssr qmic -->
+ <ctl name="AIF1_CAP Mixer SLIM TX10" value="0" />
+ <!-- ssr qmic end-->
+ <!-- audio record compress-->
+ <ctl name="MultiMedia8 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer INTERNAL_BT_SCO_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer AFE_PCM_TX" value="0" />
+ <!-- audio record compress end-->
+ <!-- listen -->
+ <ctl name="LSM1 MUX" value="None" />
+ <ctl name="LSM2 MUX" value="None" />
+ <ctl name="LSM3 MUX" value="None" />
+ <ctl name="LSM4 MUX" value="None" />
+ <ctl name="LSM5 MUX" value="None" />
+ <ctl name="LSM6 MUX" value="None" />
+ <ctl name="LSM7 MUX" value="None" />
+ <ctl name="LSM8 MUX" value="None" />
+ <ctl name="QUAT_MI2S_TX LSM Function" value="None" />
+ <!-- listen end-->
+
+ <!-- ADSP testfwk -->
+ <!-- ADSP testfwk end-->
+
+ <!-- These are audio route (FE to BE) specific mixer settings -->
+ <path name="deep-buffer-playback">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-protected">
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="echo-reference">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="I2S_RX" />
+ </path>
+
+ <path name="deep-buffer-playback hdmi">
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-and-hdmi">
+ <path name="deep-buffer-playback hdmi" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="deep-buffer-playback bt-sco" />
+ </path>
+
+ <path name="deep-buffer-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback usb-headphones">
+ <path name="deep-buffer-playback afe-proxy" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-and-usb-headphones">
+ <path name="deep-buffer-playback usb-headphones" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback transmission-fm">
+ <ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback headphones">
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="low-latency-playback">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback speaker-protected">
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback hdmi">
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="low-latency-playback bt-sco" />
+ </path>
+
+ <path name="low-latency-playback speaker-and-hdmi">
+ <path name="low-latency-playback hdmi" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback usb-headphones">
+ <path name="low-latency-playback afe-proxy" />
+ </path>
+
+ <path name="low-latency-playback speaker-and-usb-headphones">
+ <path name="low-latency-playback usb-headphones" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback transmission-fm">
+ <ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-record capture-fm">
+ <ctl name="MultiMedia5 Mixer INTERNAL_FM_TX" value="1" />
+ </path>
+
+ <path name="low-latency-playback headphones">
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="multi-channel-playback hdmi">
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="multi-channel-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="compress-offload-playback">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback speaker-protected">
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback hdmi">
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="compress-offload-playback bt-sco" />
+ </path>
+
+ <path name="compress-offload-playback speaker-and-hdmi">
+ <path name="compress-offload-playback hdmi" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback usb-headphones">
+ <path name="compress-offload-playback afe-proxy" />
+ </path>
+
+ <path name="compress-offload-playback speaker-and-usb-headphones">
+ <path name="compress-offload-playback usb-headphones" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback headphones">
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback headphones-44.1">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 hdmi">
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback transmission-fm">
+ <ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="compress-offload-playback2 bt-sco" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-and-hdmi">
+ <path name="compress-offload-playback2 hdmi" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 usb-headphones">
+ <path name="compress-offload-playback2 afe-proxy" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-and-usb-headphones">
+ <path name="compress-offload-playback2 usb-headphones" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 headphones">
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 headphones-44.1">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 hdmi">
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="compress-offload-playback3 bt-sco" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-and-hdmi">
+ <path name="compress-offload-playback3 hdmi" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 usb-headphones">
+ <path name="compress-offload-playback3 afe-proxy" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-and-usb-headphones">
+ <path name="compress-offload-playback3 usb-headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 headphones">
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 headphones-44.1">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 hdmi">
+ <ctl name="HDMI Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="compress-offload-playback4 bt-sco" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-and-hdmi">
+ <path name="compress-offload-playback4 hdmi" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 usb-headphones">
+ <path name="compress-offload-playback4 afe-proxy" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-and-usb-headphones">
+ <path name="compress-offload-playback4 usb-headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 headphones">
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 headphones-44.1">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 hdmi">
+ <ctl name="HDMI Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="compress-offload-playback5 bt-sco" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-and-hdmi">
+ <path name="compress-offload-playback5 hdmi" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 usb-headphones">
+ <path name="compress-offload-playback5 afe-proxy" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-and-usb-headphones">
+ <path name="compress-offload-playback5 usb-headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 headphones">
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 headphones-44.1">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 hdmi">
+ <ctl name="HDMI Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="compress-offload-playback6 bt-sco" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-and-hdmi">
+ <path name="compress-offload-playback6 hdmi" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 usb-headphones">
+ <path name="compress-offload-playback6 afe-proxy" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-and-usb-headphones">
+ <path name="compress-offload-playback6 usb-headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 headphones">
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 headphones-44.1">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 hdmi">
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="compress-offload-playback7 bt-sco" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-and-hdmi">
+ <path name="compress-offload-playback7 hdmi" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 usb-headphones">
+ <path name="compress-offload-playback7 afe-proxy" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-and-usb-headphones">
+ <path name="compress-offload-playback7 usb-headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 headphones">
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 headphones-44.1">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 hdmi">
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="compress-offload-playback8 bt-sco" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-and-hdmi">
+ <path name="compress-offload-playback8 hdmi" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 usb-headphones">
+ <path name="compress-offload-playback8 afe-proxy" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-and-usb-headphones">
+ <path name="compress-offload-playback8 usb-headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 headphones">
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 headphones-44.1">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 hdmi">
+ <ctl name="MI2S_HDMI_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="compress-offload-playback9 bt-sco" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-and-hdmi">
+ <path name="compress-offload-playback9 hdmi" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 usb-headphones">
+ <path name="compress-offload-playback9 afe-proxy" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-and-usb-headphones">
+ <path name="compress-offload-playback9 usb-headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 headphones">
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 headphones-44.1">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="audio-record">
+ <ctl name="MultiMedia1 Mixer PRI_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="audio-record usb-headset-mic">
+ <ctl name="MultiMedia1 Mixer AFE_PCM_TX" value="1" />
+ </path>
+
+ <path name="audio-record bt-sco">
+ <ctl name="MultiMedia1 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+
+ <path name="audio-record bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="audio-record bt-sco" />
+ </path>
+
+ <path name="audio-record capture-fm">
+ <ctl name="MultiMedia1 Mixer INTERNAL_FM_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress">
+ <ctl name="MultiMedia8 Mixer PRI_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="audio-record-compress bt-sco">
+ <ctl name="MultiMedia8 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="audio-record-compress bt-sco" />
+ </path>
+
+ <path name="audio-record-compress usb-headset-mic">
+ <ctl name="MultiMedia8 Mixer AFE_PCM_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress2">
+ <ctl name="MultiMedia17 Mixer PRI_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="audio-record-compress2 bt-sco">
+ <ctl name="MultiMedia17 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress2 bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="audio-record-compress2 bt-sco" />
+ </path>
+
+ <path name="audio-record-compress2 usb-headset-mic">
+ <ctl name="MultiMedia8 Mixer AFE_PCM_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress3">
+ <ctl name="MultiMedia18 Mixer PRI_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="audio-record-compress3 bt-sco">
+ <ctl name="MultiMedia18 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress3 bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="audio-record-compress3 bt-sco" />
+ </path>
+
+ <path name="audio-record-compress3 usb-headset-mic">
+ <ctl name="MultiMedia8 Mixer AFE_PCM_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress4">
+ <ctl name="MultiMedia19 Mixer PRI_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="audio-record-compress4 bt-sco">
+ <ctl name="MultiMedia19 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress4 bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="audio-record-compress4 bt-sco" />
+ </path>
+
+ <path name="audio-record-compress4 usb-headset-mic">
+ <ctl name="MultiMedia8 Mixer AFE_PCM_TX" value="1" />
+ </path>
+
+ <path name="low-latency-record">
+ <ctl name="MultiMedia5 Mixer PRI_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="low-latency-record bt-sco">
+ <ctl name="MultiMedia5 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+
+ <path name="low-latency-record bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <path name="low-latency-record bt-sco" />
+ </path>
+
+ <path name="fm-virtual-record capture-fm">
+ <ctl name="MultiMedia2 Mixer INTERNAL_FM_TX" value="1" />
+ </path>
+
+ <path name="voice-call">
+ <ctl name="SLIM_0_RX_Voice Mixer CSVoice" value="1" />
+ <ctl name="Voice_Tx Mixer SLIM_0_TX_Voice" value="1" />
+ </path>
+
+ <path name="voice-call hdmi">
+ <ctl name="HDMI_RX_Voice Mixer CSVoice" value="1" />
+ <ctl name="Voice_Tx Mixer SLIM_0_TX_Voice" value="1" />
+ </path>
+
+ <path name="voice-call bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer CSVoice" value="1" />
+ <ctl name="Voice_Tx Mixer INTERNAL_BT_SCO_TX_Voice" value="1" />
+ </path>
+
+ <path name="voice-call bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <path name="voice-call bt-sco" />
+ </path>
+
+ <path name="voice-call afe-proxy">
+ <ctl name="AFE_PCM_RX_Voice Mixer CSVoice" value="1" />
+ <ctl name="Voice_Tx Mixer AFE_PCM_TX_Voice" value="1" />
+ </path>
+
+ <path name="voice-call usb-headphones">
+ <ctl name="AFE_PCM_RX_Voice Mixer CSVoice" value="1" />
+ <ctl name="Voice_Tx Mixer AFE_PCM_TX_Voice" value="1" />
+ </path>
+
+ <path name="voice2-call">
+ <ctl name="SLIM_0_RX_Voice Mixer Voice2" value="1" />
+ <ctl name="Voice2_Tx Mixer SLIM_0_TX_Voice2" value="1" />
+ </path>
+
+ <path name="voice2-call hdmi">
+ <ctl name="HDMI_RX_Voice Mixer Voice2" value="1" />
+ <ctl name="Voice2_Tx Mixer SLIM_0_TX_Voice2" value="1" />
+ </path>
+
+ <path name="voice2-call bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer Voice2" value="1" />
+ <ctl name="Voice2_Tx Mixer INTERNAL_BT_SCO_TX_Voice2" value="1" />
+ </path>
+
+ <path name="voice2-call bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <path name="voice2-call bt-sco" />
+ </path>
+
+ <path name="voice2-call afe-proxy">
+ <ctl name="AFE_PCM_RX_Voice Mixer Voice2" value="1" />
+ <ctl name="Voice2_Tx Mixer AFE_PCM_TX_Voice2" value="1" />
+ </path>
+
+ <path name="voice2-call usb-headphones">
+ <ctl name="AFE_PCM_RX_Voice Mixer Voice2" value="1" />
+ <ctl name="Voice2_Tx Mixer AFE_PCM_TX_Voice2" value="1" />
+ </path>
+
+ <path name="play-fm">
+ <ctl name="Internal FM RX Volume" value="1" />
+ <ctl name="PRI_MI2S_RX Port Mixer INTERNAL_FM_TX" value="1" />
+ </path>
+
+ <path name="incall-rec-uplink">
+ <ctl name="MultiMedia1 Mixer VOC_REC_UL" value="1" />
+ </path>
+
+ <path name="silence-playback">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia9" value="1" />
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="I2S_RX" />
+ </path>
+
+ <path name="incall-rec-uplink bt-sco">
+ <path name="incall-rec-uplink" />
+ </path>
+
+ <path name="incall-rec-uplink bt-sco-wb">
+ <path name="incall-rec-uplink" />
+ </path>
+
+ <path name="incall-rec-uplink usb-headset-mic">
+ <path name="incall-rec-uplink" />
+ </path>
+
+ <path name="incall-rec-uplink afe-proxy">
+ <path name="incall-rec-uplink" />
+ </path>
+
+ <path name="incall-rec-uplink-compress">
+ <ctl name="MultiMedia8 Mixer VOC_REC_UL" value="1" />
+ </path>
+
+ <path name="incall-rec-uplink-compress bt-sco">
+ <path name="incall-rec-uplink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-compress bt-sco-wb">
+ <path name="incall-rec-uplink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-compress usb-headset-mic">
+ <path name="incall-rec-uplink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-compress afe-proxy">
+ <path name="incall-rec-uplink-compress" />
+ </path>
+
+ <path name="incall-rec-downlink">
+ <ctl name="MultiMedia1 Mixer VOC_REC_DL" value="1" />
+ </path>
+
+ <path name="incall-rec-downlink bt-sco">
+ <path name="incall-rec-downlink" />
+ </path>
+
+ <path name="incall-rec-downlink bt-sco-wb">
+ <path name="incall-rec-downlink" />
+ </path>
+
+ <path name="incall-rec-downlink usb-headset-mic">
+ <path name="incall-rec-downlink" />
+ </path>
+
+ <path name="incall-rec-downlink afe-proxy">
+ <path name="incall-rec-downlink" />
+ </path>
+
+ <path name="incall-rec-downlink-compress">
+ <ctl name="MultiMedia8 Mixer VOC_REC_DL" value="1" />
+ </path>
+
+ <path name="incall-rec-downlink-compress bt-sco">
+ <path name="incall-rec-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-downlink-compress bt-sco-wb">
+ <path name="incall-rec-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-downlink-compress usb-headset-mic">
+ <path name="incall-rec-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-downlink-compress afe-proxy">
+ <path name="incall-rec-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink">
+ <path name="incall-rec-uplink" />
+ <path name="incall-rec-downlink" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink bt-sco">
+ <path name="incall-rec-uplink-and-downlink" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink bt-sco-wb">
+ <path name="incall-rec-uplink-and-downlink" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink usb-headset-mic">
+ <path name="incall-rec-uplink-and-downlink" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink afe-proxy">
+ <path name="incall-rec-uplink-and-downlink" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink-compress">
+ <path name="incall-rec-uplink-compress" />
+ <path name="incall-rec-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink-compress bt-sco">
+ <path name="incall-rec-uplink-and-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink-compress bt-sco-wb">
+ <path name="incall-rec-uplink-and-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink-compress usb-headset-mic">
+ <path name="incall-rec-uplink-and-downlink-compress" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink-compress afe-proxy">
+ <path name="incall-rec-uplink-and-downlink-compress" />
+ </path>
+
+ <path name="hfp-sco">
+ <ctl name="HFP_INT_UL_HL Switch" value="1" />
+ <ctl name="PRI_MI2S_RX Port Mixer INTERNAL_BT_SCO_TX" value="1" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia6" value="1" />
+ <ctl name="MultiMedia6 Mixer QUAT_MI2S_TX" value="1" />
+ </path>
+
+ <path name="hfp-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <path name="hfp-sco" />
+ </path>
+
+ <path name="volte-call">
+ <ctl name="SLIM_0_RX_Voice Mixer VoLTE" value="1" />
+ <ctl name="VoLTE_Tx Mixer SLIM_0_TX_VoLTE" value="1" />
+ </path>
+
+ <path name="volte-call hdmi">
+ <ctl name="HDMI_RX_Voice Mixer VoLTE" value="1" />
+ <ctl name="VoLTE_Tx Mixer SLIM_0_TX_VoLTE" value="1" />
+ </path>
+
+ <path name="volte-call bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer VoLTE" value="1" />
+ <ctl name="VoLTE_Tx Mixer INTERNAL_BT_SCO_TX_VoLTE" value="1" />
+ </path>
+
+ <path name="volte-call bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <path name="volte-call bt-sco" />
+ </path>
+
+ <path name="volte-call afe-proxy">
+ <ctl name="AFE_PCM_RX_Voice Mixer VoLTE" value="1" />
+ <ctl name="VoLTE_Tx Mixer AFE_PCM_TX_VoLTE" value="1" />
+ </path>
+
+ <path name="volte-call usb-headphones">
+ <ctl name="AFE_PCM_RX_Voice Mixer VoLTE" value="1" />
+ <ctl name="VoLTE_Tx Mixer AFE_PCM_TX_VoLTE" value="1" />
+ </path>
+
+ <path name="compress-voip-call">
+ <ctl name="SLIM_0_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer SLIM_0_TX_Voip" value="1" />
+ </path>
+
+ <path name="compress-voip-call bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip" value="1" />
+ </path>
+
+ <path name="compress-voip-call bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="compress-voip-call bt-sco" />
+ </path>
+
+ <path name="compress-voip-call afe-proxy">
+ <ctl name="AFE_PCM_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer AFE_PCM_TX_Voip" value="1" />
+ </path>
+
+ <path name="compress-voip-call usb-headphones">
+ <ctl name="AFE_PCM_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer AFE_PCM_TX_Voip" value="1" />
+ </path>
+
+ <path name="vowlan-call">
+ <ctl name="SLIM_0_RX_Voice Mixer VoWLAN" value="1" />
+ <ctl name="VoWLAN_Tx Mixer SLIM_0_TX_VoWLAN" value="1" />
+ </path>
+
+ <path name="vowlan-call hdmi">
+ <ctl name="HDMI_RX_Voice Mixer VoWLAN" value="1" />
+ <ctl name="VoWLAN_Tx Mixer SLIM_0_TX_VoWLAN" value="1" />
+ </path>
+
+ <path name="vowlan-call bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer VoWLAN" value="1" />
+ <ctl name="VoWLAN_Tx Mixer INTERNAL_BT_SCO_TX_VoWLAN" value="1" />
+ </path>
+
+ <path name="vowlan-call bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <path name="vowlan-call bt-sco" />
+ </path>
+
+ <path name="vowlan-call afe-proxy">
+ <ctl name="AFE_PCM_RX_Voice Mixer VoWLAN" value="1" />
+ <ctl name="VoWLAN_Tx Mixer AFE_PCM_TX_VoWLAN" value="1" />
+ </path>
+
+ <path name="vowlan-call usb-headphones">
+ <ctl name="AFE_PCM_RX_Voice Mixer VoWLAN" value="1" />
+ <ctl name="VoWLAN_Tx Mixer AFE_PCM_TX_VoWLAN" value="1" />
+ </path>
+
+ <path name="voicemmode1-call">
+ <ctl name="SLIM_0_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer SLIM_0_TX_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call hdmi">
+ <ctl name="HDMI_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer SLIM_0_TX_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer INT_BT_SCO_TX_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <path name="voicemmode1-call bt-sco" />
+ </path>
+
+ <path name="voicemmode1-call afe-proxy">
+ <ctl name="AFE_PCM_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer AFE_PCM_TX_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call usb-headphones">
+ <ctl name="AFE_PCM_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer AFE_PCM_TX_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call speaker-protected">
+ </path>
+
+ <path name="voicemmode2-call">
+ <ctl name="SLIM_0_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer SLIM_0_TX_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call hdmi">
+ <ctl name="HDMI_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer SLIM_0_TX_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer INT_BT_SCO_TX_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <path name="voicemmode2-call bt-sco" />
+ </path>
+
+ <path name="voicemmode2-call afe-proxy">
+ <ctl name="AFE_PCM_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer AFE_PCM_TX_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call usb-headphones">
+ <ctl name="AFE_PCM_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer AFE_PCM_TX_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call speaker-protected">
+ </path>
+
+ <path name="listen-voice-wakeup-1">
+ <ctl name="LSM1 MUX" value="QUAT_MI2S_TX" />
+ <ctl name="QUAT_MI2S_TX LSM Function" value="AUDIO" />
+ </path>
+ <path name="listen-voice-wakeup-2">
+ <ctl name="LSM2 MUX" value="QUAT_MI2S_TX" />
+ <ctl name="QUAT_MI2S_TX LSM Function" value="AUDIO" />
+ </path>
+ <path name="listen-voice-wakeup-3">
+ <ctl name="LSM3 MUX" value="QUAT_MI2S_TX" />
+ <ctl name="QUAT_MI2S_TX LSM Function" value="AUDIO" />
+ </path>
+ <path name="listen-voice-wakeup-4">
+ <ctl name="LSM4 MUX" value="QUAT_MI2S_TX" />
+ <ctl name="QUAT_MI2S_TX LSM Function" value="AUDIO" />
+ </path>
+ <path name="listen-voice-wakeup-5">
+ <ctl name="LSM5 MUX" value="QUAT_MI2S_TX" />
+ <ctl name="QUAT_MI2S_TX LSM Function" value="AUDIO" />
+ </path>
+ <path name="listen-voice-wakeup-6">
+ <ctl name="LSM6 MUX" value="QUAT_MI2S_TX" />
+ <ctl name="QUAT_MI2S_TX LSM Function" value="AUDIO" />
+ </path>
+ <path name="listen-voice-wakeup-7">
+ <ctl name="LSM7 MUX" value="QUAT_MI2S_TX" />
+ <ctl name="QUAT_MI2S_TX LSM Function" value="AUDIO" />
+ </path>
+ <path name="listen-voice-wakeup-8">
+ <ctl name="LSM8 MUX" value="QUAT_MI2S_TX" />
+ <ctl name="QUAT_MI2S_TX LSM Function" value="AUDIO" />
+ </path>
+
+ <path name="spkr-vi-record">
+ <ctl name="SLIM0_RX_VI_FB_LCH_MUX" value="SLIM4_TX" />
+ </path>
+
+ <!-- These are actual sound device specific mixer settings -->
+ <path name="adc2">
+ <ctl name="AIF1_CAP Mixer SLIM TX6" value="1"/>
+ <ctl name="MI2S_TX Channels" value="One" />
+ <ctl name="SLIM TX6 MUX" value="DEC6" />
+ <ctl name="ADC MUX6" value="AMIC" />
+ <ctl name="AMIC MUX6" value="ADC2" />
+ <ctl name="IIR0 INP0 MUX" value="DEC6" />
+ </path>
+
+ <!-- For Tasha, DMIC numbered from 0 to 5 -->
+ <path name="dmic3">
+ <ctl name="AIF1_CAP Mixer SLIM TX6" value="1"/>
+ <ctl name="MI2S_TX Channels" value="One" />
+ <ctl name="SLIM TX6 MUX" value="DEC6" />
+ <ctl name="ADC MUX6" value="DMIC" />
+ <ctl name="DMIC MUX6" value="DMIC2" />
+ <ctl name="IIR0 INP0 MUX" value="DEC6" />
+ </path>
+
+ <path name="dmic1">
+ <ctl name="AIF1_CAP Mixer SLIM TX6" value="1"/>
+ <ctl name="MI2S_TX Channels" value="One" />
+ <ctl name="SLIM TX6 MUX" value="DEC6" />
+ <ctl name="ADC MUX6" value="DMIC" />
+ <ctl name="DMIC MUX6" value="DMIC0" />
+ <ctl name="IIR0 INP0 MUX" value="DEC6" />
+ </path>
+
+ <path name="dmic2">
+ <ctl name="AIF1_CAP Mixer SLIM TX6" value="1"/>
+ <ctl name="MI2S_TX Channels" value="One" />
+ <ctl name="SLIM TX6 MUX" value="DEC6" />
+ <ctl name="ADC MUX6" value="DMIC" />
+ <ctl name="DMIC MUX6" value="DMIC1" />
+ <ctl name="IIR0 INP0 MUX" value="DEC6" />
+ </path>
+
+ <path name="dmic4">
+ <ctl name="AIF1_CAP Mixer SLIM TX6" value="1"/>
+ <ctl name="MI2S_TX Channels" value="One" />
+ <ctl name="SLIM TX6 MUX" value="DEC6" />
+ <ctl name="ADC MUX6" value="DMIC" />
+ <ctl name="DMIC MUX6" value="DMIC3" />
+ <ctl name="IIR0 INP0 MUX" value="DEC6" />
+ </path>
+
+ <path name="dmic5">
+ <ctl name="AIF1_CAP Mixer SLIM TX6" value="1"/>
+ <ctl name="MI2S_TX Channels" value="One" />
+ <ctl name="SLIM TX6 MUX" value="DEC6" />
+ <ctl name="ADC MUX6" value="DMIC" />
+ <ctl name="DMIC MUX6" value="DMIC4" />
+ <ctl name="IIR0 INP0 MUX" value="DEC6" />
+ </path>
+
+ <path name="dmic6">
+ <ctl name="AIF1_CAP Mixer SLIM TX6" value="1"/>
+ <ctl name="MI2S_TX Channels" value="One" />
+ <ctl name="SLIM TX6 MUX" value="DEC6" />
+ <ctl name="ADC MUX6" value="DMIC" />
+ <ctl name="DMIC MUX6" value="DMIC5" />
+ <ctl name="IIR0 INP0 MUX" value="DEC6" />
+ </path>
+
+ <path name="wsa-speaker">
+ <ctl name="SLIM RX0 MUX" value="AIF1_PB" />
+ <ctl name="SLIM RX1 MUX" value="AIF1_PB" />
+ <ctl name="MI2S_RX Channels" value="Two" />
+ <ctl name="RX INT7_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT8_1 MIX1 INP0" value="RX1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrRight COMP Switch" value="1" />
+ <ctl name="SpkrLeft BOOST Switch" value="1" />
+ <ctl name="SpkrRight BOOST Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
+ <ctl name="RX INT7 VBAT SPKRL VBAT Enable" value="1" />
+ <ctl name="RX INT8 VBAT SPKRR VBAT Enable" value="1" />
+ </path>
+
+ <path name="wsa-speaker-mono">
+ <ctl name="SLIM RX0 MUX" value="AIF1_PB" />
+ <ctl name="MI2S_RX Channels" value="One" />
+ <ctl name="RX INT7_1 MIX1 INP0" value="RX0" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft BOOST Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="RX INT7 VBAT SPKRL VBAT Enable" value="1" />
+ </path>
+
+
+ <path name="sidetone-iir">
+ <ctl name="IIR0 Enable Band1" value="1" />
+ <ctl name="IIR0 Enable Band2" value="1" />
+ <ctl name="IIR0 Enable Band3" value="1" />
+ <ctl name="IIR0 Enable Band4" value="1" />
+ <ctl name="IIR0 Enable Band5" value="1" />
+ </path>
+
+ <path name="sidetone-headphones">
+ <path name="sidetone-iir" />
+ <ctl name="IIR0 INP0 Volume" value="54" />
+ <ctl name="RX INT1 MIX2 INP" value="SRC0" />
+ <ctl name="RX INT2 MIX2 INP" value="SRC0" />
+ </path>
+
+ <path name="sidetone-handset">
+ <path name="sidetone-iir" />
+ <ctl name="IIR0 INP0 Volume" value="54" />
+ <ctl name="RX INT0 MIX2 INP" value="SRC0" />
+ </path>
+
+ <path name="speaker-mic">
+ <ctl name="PRI_TDM_TX_0 Channels" value="One" />
+ </path>
+
+ <path name="speaker-protected">
+ <ctl name="SLIM RX0 MUX" value="AIF_MIX1_PB" />
+ <ctl name="SLIM_0_RX Channels" value="One" />
+ <ctl name="RX INT7_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX7 Digital Volume" value="85" />
+ </path>
+
+ <path name="vi-feedback">
+ <ctl name="VIONOFF Switch" value="1" />
+ </path>
+
+ <path name="handset">
+ <ctl name="SLIM RX0 MUX" value="AIF_MIX1_PB" />
+ <ctl name="SLIM_0_RX Channels" value="One" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="EAR PA Gain" value="G_6_DB" />
+ </path>
+
+ <path name="handset-mic">
+ <ctl name="PRI_TDM_TX_0 Channels" value="One" />
+ </path>
+
+ <path name="unprocessed-handset-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="unprocessed-mic">
+ <path name="unprocessed-handset-mic" />
+ </path>
+
+ <path name="headphones">
+ <ctl name="SLIM RX0 MUX" value="AIF1_PB" />
+ <ctl name="SLIM RX1 MUX" value="AIF1_PB" />
+ <ctl name="MI2S_RX Channels" value="Two" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT2_1 MIX1 INP0" value="RX1" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia1" value="One" />
+ <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX INT2 DEM MUX" value="CLSH_DSM_OUT" />
+ </path>
+
+ <path name="headphones-44.1">
+ <ctl name="SLIM RX3 MUX" value="AIF3_PB" />
+ <ctl name="SLIM RX4 MUX" value="AIF3_PB" />
+ <ctl name="SLIM_5_RX Channels" value="Two" />
+ <ctl name="SLIM_5_RX SampleRate" value="KHZ_44P1" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="RX3" />
+ <ctl name="RX INT2_1 MIX1 INP1" value="RX4" />
+ <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX INT2 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="SPL SRC0 MUX" value="SRC_IN_HPHL" />
+ <ctl name="SPL SRC1 MUX" value="SRC_IN_HPHR" />
+ <ctl name="RX INT1 SPLINE MIX HPHL Switch" value="1" />
+ <ctl name="RX INT2 SPLINE MIX HPHR Switch" value="1" />
+ </path>
+
+ <path name="headset-mic">
+ <path name="adc2" />
+ <ctl name="ADC2 Volume" value="12" />
+ </path>
+
+
+ <path name="voice-handset">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-tmus">
+ <path name="handset" />
+ </path>
+
+ <path name="wsa-voice-speaker">
+ <path name="wsa-speaker-mono" />
+ </path>
+
+ <path name="voice-speaker">
+ <path name="wsa-speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-mic">
+ <path name="speaker-mic" />
+ </path>
+
+ <path name="voice-headphones">
+ <path name="headphones" />
+ </path>
+
+ <path name="voice-headset-mic">
+ <path name="headset-mic" />
+ <ctl name="ADC2 Volume" value="12" />
+ </path>
+
+ <path name="speaker-and-headphones">
+ <path name="headphones" />
+ <ctl name="RX INT7_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT8_1 MIX1 INP0" value="RX1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrRight COMP Switch" value="1" />
+ <ctl name="SpkrLeft BOOST Switch" value="1" />
+ <ctl name="SpkrRight BOOST Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
+ </path>
+
+
+ <path name="usb-headphones">
+ </path>
+
+ <path name="afe-proxy">
+ </path>
+
+ <path name="transmission-fm">
+ </path>
+
+ <path name="hdmi">
+ </path>
+
+ <path name="speaker-and-usb-headphones">
+ <path name="wsa-speaker" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="speaker-and-hdmi">
+ <path name="wsa-speaker" />
+ <path name="hdmi" />
+ </path>
+
+ <path name="voice-rec-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="camcorder-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="hdmi-tx">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="bt-sco-headset">
+ </path>
+
+ <path name="bt-sco-mic">
+ </path>
+
+ <path name="bt-sco-headset-wb">
+ </path>
+
+ <path name="bt-sco-mic-wb">
+ </path>
+
+ <path name="usb-headset-mic">
+ </path>
+
+ <path name="capture-fm">
+ </path>
+
+ <!-- Dual MIC devices -->
+ <path name="handset-dmic-endfire">
+ <ctl name="PRI_TDM_TX_0 Channels" value="Two" />
+ </path>
+
+ <path name="speaker-dmic-endfire">
+ <ctl name="PRI_TDM_TX_0 Channels" value="Two" />
+ </path>
+
+ <path name="dmic-endfire">
+ <path name="handset-dmic-endfire" />
+ <ctl name="IIR0 INP0 MUX" value="DEC6" />
+ </path>
+
+
+ <path name="handset-stereo-dmic-ef">
+ <path name="handset-dmic-endfire" />
+ </path>
+
+ <path name="speaker-stereo-dmic-ef">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef-tmus">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-speaker-dmic-ef">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-rec-dmic-ef">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-fluence">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="speaker-dmic-broadside">
+ <ctl name="PRI_TDM_TX_0 Channels" value="Two" />
+ </path>
+
+ <path name="dmic-broadside">
+ <path name="speaker-dmic-broadside" />
+ </path>
+
+ <path name="voice-speaker-dmic-broadside">
+ <path name="dmic-broadside" />
+ </path>
+
+ <!-- Quad MIC devices -->
+ <path name="speaker-qmic">
+ <ctl name="PRI_TDM_TX_0 Channels" value="Four" />
+ </path>
+
+
+ <path name="voice-speaker-qmic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <path name="quad-mic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <!-- TTY devices -->
+
+ <path name="tty-headphones">
+ <ctl name="SLIM RX0 MUX" value="AIF_MIX1_PB" />
+ <ctl name="SLIM_0_RX Channels" value="One" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
+ </path>
+
+ <path name="voice-tty-full-headphones">
+ <ctl name="TTY Mode" value="FULL" />
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-vco-headphones">
+ <ctl name="TTY Mode" value="VCO" />
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-hco-handset">
+ <ctl name="TTY Mode" value="HCO" />
+ <path name="handset" />
+ </path>
+
+ <path name="voice-tty-full-headset-mic">
+ <path name="adc2" />
+ <ctl name="ADC2 Volume" value="12" />
+ </path>
+
+ <path name="voice-tty-hco-headset-mic">
+ <path name="voice-tty-full-headset-mic" />
+ </path>
+
+ <path name="voice-tty-vco-handset-mic">
+ <path name="dmic1" />
+ </path>
+
+ <path name="listen-handset-mic">
+ <ctl name="MADONOFF Switch" value="1" />
+ <ctl name="MAD Input" value="DMIC0" />
+ </path>
+
+ <path name="ec-ref-audio-capture">
+ <ctl name="MultiMedia9 Mixer AFE_LOOPBACK_TX" value="1" />
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="I2S_RX" />
+ </path>
+
+ <path name="handset-6mic">
+ <ctl name="PRI_TDM_TX_0 Channels" value="Six" />
+ </path>
+
+ <path name="handset-8mic">
+ <ctl name="PRI_TDM_TX_0 Channels" value="Eight" />
+ </path>
+
+ <path name="ec-ref-loopback-mono">
+
+ </path>
+
+ <path name="ec-ref-loopback-stereo">
+
+ </path>
+
+</mixer>
diff --git a/configs/msm8909/msm8909.mk b/configs/msm8909/msm8909.mk
old mode 100755
new mode 100644
index f9ce14c..fcece79
--- a/configs/msm8909/msm8909.mk
+++ b/configs/msm8909/msm8909.mk
@@ -26,6 +26,10 @@
endif
USE_XML_AUDIO_POLICY_CONF := 1
BOARD_SUPPORTS_SOUND_TRIGGER := true
+BOARD_SUPPORTS_SOUND_TRIGGER_ARM := true
+AUDIO_FEATURE_ENABLED_FFV := true
+AUDIO_FEATURE_ENABLED_KEEP_ALIVE_ARM_FFV := true
+AUDIO_FEATURE_ENABLED_KEEP_ALIVE := true
AUDIO_FEATURE_ENABLED_SOURCE_TRACKING := true
AUDIO_FEATURE_ENABLED_FLUENCE := true
AUDIO_FEATURE_ENABLED_HFP := true
@@ -36,6 +40,10 @@
MM_AUDIO_ENABLED_FTM := true
TARGET_USES_QCOM_MM_AUDIO := true
AUDIO_FEATURE_ENABLED_SND_MONITOR := true
+BOARD_SUPPORTS_QAHW := true
+BOARD_SUPPORTS_QSTHW_API := true
+AUDIO_FEATURE_DISABLED_SOUND_TRIGGER_LEGACY_HAL := true
+AUDIO_FEATURE_ENABLED_COMPRESS_INPUT := true
##AUDIO_FEATURE_FLAGS
@@ -58,6 +66,7 @@
hardware/qcom/audio/configs/msm8909/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \
hardware/qcom/audio/configs/msm8909/mixer_paths_msm8909_pm8916.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_msm8909_pm8916.xml \
hardware/qcom/audio/configs/msm8909/mixer_paths_wcd9326_i2s.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_wcd9326_i2s.xml \
+ hardware/qcom/audio/configs/msm8909/mixer_paths_wcd9326_i2s_tdm.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_wcd9326_i2s_tdm.xml \
hardware/qcom/audio/configs/msm8909/mixer_paths_skua.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_skua.xml \
hardware/qcom/audio/configs/msm8909/mixer_paths_skuc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_skuc.xml \
hardware/qcom/audio/configs/msm8909/mixer_paths_skue.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_skue.xml \
@@ -65,7 +74,10 @@
hardware/qcom/audio/configs/msm8909/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml \
hardware/qcom/audio/configs/msm8909/sound_trigger_mixer_paths_wcd9326.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9326.xml \
hardware/qcom/audio/configs/msm8909/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
- hardware/qcom/audio/configs/msm8909/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml
+ hardware/qcom/audio/configs/msm8909/sound_trigger_mixer_paths_wcd9335.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9335.xml \
+ hardware/qcom/audio/configs/msm8909/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
+ hardware/qcom/audio/configs/msm8909/audio_platform_info_extcodec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_extcodec.xml \
+ hardware/qcom/audio/configs/msm8909/audio_io_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_io_policy.conf
#XML Audio configuration files
ifeq ($(USE_XML_AUDIO_POLICY_CONF), 1)
@@ -86,12 +98,24 @@
PRODUCT_PROPERTY_OVERRIDES += \
ro.vendor.audio.sdk.ssr=false
-##fluencetype can be "fluence" or "fluencepro" or "none"
+PRODUCT_PROPERTY_OVERRIDES += \
+ro.vendor.audio.sdk.ffv=false
+
+##fluencetype can be "fluence" or "fluencepro" or "fluenceffv" or "none"
PRODUCT_PROPERTY_OVERRIDES += \
ro.vendor.audio.sdk.fluencetype=none\
persist.vendor.audio.fluence.voicecall=true\
persist.vendor.audio.fluence.voicerec=false\
-persist.vendor.audio.fluence.speaker=true
+persist.vendor.audio.fluence.speaker=true\
+persist.vendor.audio.fluence.audiorec=false
+
+#enable generic handset mic
+PRODUCT_PROPERTY_OVERRIDES += \
+vendor.audio.apptype.multirec.enabled=false
+
+#enable multi record
+PRODUCT_PROPERTY_OVERRIDES += \
+vendor.audio.record.multiple.enabled=true
#disable tunnel encoding
PRODUCT_PROPERTY_OVERRIDES += \
diff --git a/configs/msm8909/sound_trigger_mixer_paths_wcd9335.xml b/configs/msm8909/sound_trigger_mixer_paths_wcd9335.xml
new file mode 100644
index 0000000..90706d9
--- /dev/null
+++ b/configs/msm8909/sound_trigger_mixer_paths_wcd9335.xml
@@ -0,0 +1,223 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!---Copyright (c) 2015, 2018 The Linux Foundation. All rights reserved -->
+<!--- -->
+<!--- Redistribution and use in source and binary forms, with or without -->
+<!--- modification, are permitted provided that the following conditions are -->
+<!--- met: -->
+<!--- * Redistributions of source code must retain the above copyright -->
+<!--- notice, this list of conditions and the following disclaimer. -->
+<!--- * Redistributions in binary form must reproduce the above -->
+<!--- copyright notice, this list of conditions and the following -->
+<!--- disclaimer in the documentation and/or other materials provided -->
+<!--- with the distribution. -->
+<!--- * Neither the name of The Linux Foundation nor the names of its -->
+<!--- contributors may be used to endorse or promote products derived -->
+<!--- from this software without specific prior written permission. -->
+<!--- -->
+<!--- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
+<!--- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
+<!--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
+<!--- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
+<!--- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
+<!--- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
+<!--- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
+<!--- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
+<!--- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
+<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
+<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
+<mixer>
+ <!-- These are the initial mixer settings -->
+ <ctl name="LSM1 Mixer QUAT_MI2S_TX" value="0" />
+ <ctl name="LSM2 Mixer QUAT_MI2S_TX" value="0" />
+ <ctl name="LSM3 Mixer QUAT_MI2S_TX" value="0" />
+ <ctl name="LSM4 Mixer QUAT_MI2S_TX" value="0" />
+ <ctl name="LSM5 Mixer QUAT_MI2S_TX" value="0" />
+ <ctl name="LSM6 Mixer QUAT_MI2S_TX" value="0" />
+ <ctl name="LSM7 Mixer QUAT_MI2S_TX" value="0" />
+ <ctl name="LSM8 Mixer QUAT_MI2S_TX" value="0" />
+ <ctl name="LSM1 Port" value="None" />
+ <ctl name="LSM2 Port" value="None" />
+ <ctl name="LSM3 Port" value="None" />
+ <ctl name="LSM4 Port" value="None" />
+ <ctl name="LSM5 Port" value="None" />
+ <ctl name="LSM6 Port" value="None" />
+ <ctl name="LSM7 Port" value="None" />
+ <ctl name="LSM8 Port" value="None" />
+ <ctl name="QUAT_MI2S_TX LSM Function" value="None" />
+ <ctl name="MADONOFF Switch" value="0" />
+ <ctl name="MAD Input" value="DMIC1" />
+ <ctl name="MAD_BROADCAST Switch" value="0" />
+ <ctl name="TX13 INP MUX" value="CDC_DEC_5" />
+ <ctl name="AIF4_MAD Mixer SLIM TX12" value="0" />
+ <ctl name="AIF4_MAD Mixer SLIM TX13" value="0" />
+ <ctl name="CPE AFE MAD Enable" value="0"/>
+ <ctl name="MultiMedia2 Mixer PRI_TDM_TX_0" value="0" />
+ <ctl name="MultiMedia9 Mixer AFE_LOOPBACK_TX" value="0" />
+
+ <ctl name="ADC MUX8" value="AMIC" />
+ <ctl name="ADC MUX7" value="AMIC" />
+ <ctl name="ADC MUX6" value="AMIC" />
+ <ctl name="PRI_TDM_TX_0 Channels" value="One" />
+
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="None"/>
+ <ctl name="EC Reference Channels" value="Zero"/>
+ <ctl name="EC Reference Bit Format" value="0"/>
+ <ctl name="EC Reference SampleRate" value="0"/>
+
+ <ctl name="AIF1_CAP Mixer SLIM TX7" value="0" />
+ <ctl name="AIF1_CAP Mixer SLIM TX8" value="0"/>
+ <ctl name="AIF1_CAP Mixer SLIM TX6" value="0" />
+ <ctl name="AIF1_CAP Mixer SLIM TX11" value="0"/>
+
+ <ctl name="DMIC MUX0" value="ZERO" />
+ <ctl name="DMIC MUX6" value="ZERO" />
+ <ctl name="DMIC MUX7" value="ZERO" />
+ <ctl name="DMIC MUX8" value="ZERO" />
+
+ <ctl name="ADC MUX0" value="AMIC" />
+ <ctl name="ADC MUX6" value="AMIC" />
+ <ctl name="ADC MUX7" value="AMIC" />
+ <ctl name="ADC MUX8" value="AMIC" />
+
+ <ctl name="SLIM TX6 MUX" value="ZERO" />
+ <ctl name="SLIM TX7 MUX" value="ZERO" />
+ <ctl name="SLIM TX8 MUX" value="ZERO" />
+ <ctl name="SLIM TX11 MUX" value="ZERO" />
+
+ <path name="listen-voice-wakeup-1">
+ <ctl name="QUAT_MI2S_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM1 Port" value="ADM_LSM_TX" />
+ <ctl name="LSM1 Mixer QUAT_MI2S_TX" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-2">
+ <ctl name="QUAT_MI2S_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM2 Port" value="ADM_LSM_TX" />
+ <ctl name="LSM2 Mixer QUAT_MI2S_TX" value="1" />
+ </path>
+ <path name="listen-voice-wakeup-3">
+ <ctl name="QUAT_MI2S_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM3 Port" value="ADM_LSM_TX" />
+ <ctl name="LSM3 Mixer QUAT_MI2S_TX" value="1" />
+ </path>
+ <path name="listen-voice-wakeup-4">
+ <ctl name="QUAT_MI2S_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM4 Port" value="ADM_LSM_TX" />
+ <ctl name="LSM4 Mixer QUAT_MI2S_TX" value="1" />
+ </path>
+ <path name="listen-voice-wakeup-5">
+ <ctl name="QUAT_MI2S_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM5 Port" value="ADM_LSM_TX" />
+ <ctl name="LSM5 Mixer QUAT_MI2S_TX" value="1" />
+ </path>
+ <path name="listen-voice-wakeup-6">
+ <ctl name="QUAT_MI2S_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM6 Port" value="ADM_LSM_TX" />
+ <ctl name="LSM6 Mixer QUAT_MI2S_TX" value="1" />
+ </path>
+ <path name="listen-voice-wakeup-7">
+ <ctl name="QUAT_MI2S_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM7 Port" value="ADM_LSM_TX" />
+ <ctl name="LSM7 Mixer QUAT_MI2S_TX" value="1" />
+ </path>
+ <path name="listen-voice-wakeup-8">
+ <ctl name="QUAT_MI2S_TX LSM Function" value="SWAUDIO" />
+ <ctl name="LSM8 Port" value="ADM_LSM_TX" />
+ <ctl name="LSM8 Mixer QUAT_MI2S_TX" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-1 preproc">
+ <path name="listen-voice-wakeup-1" />
+ </path>
+
+ <path name="listen-voice-wakeup-2 preproc">
+ <path name="listen-voice-wakeup-2" />
+ </path>
+
+ <path name="listen-voice-wakeup-3 preproc">
+ <path name="listen-voice-wakeup-3" />
+ </path>
+
+ <path name="listen-voice-wakeup-4 preproc">
+ <path name="listen-voice-wakeup-4" />
+ </path>
+
+ <path name="listen-voice-wakeup-5 preproc">
+ <path name="listen-voice-wakeup-5" />
+ </path>
+
+ <path name="listen-voice-wakeup-6 preproc">
+ <path name="listen-voice-wakeup-6" />
+ </path>
+
+ <path name="listen-voice-wakeup-7 preproc">
+ <path name="listen-voice-wakeup-7" />
+ </path>
+
+ <path name="listen-voice-wakeup-8 preproc">
+ <path name="listen-voice-wakeup-8" />
+ </path>
+
+ <path name="audio-capture">
+ <ctl name="MultiMedia2 Mixer PRI_TDM_TX_0" value="1" />
+ </path>
+
+ <path name="ec-ref-audio-capture">
+ <ctl name="MultiMedia9 Mixer AFE_LOOPBACK_TX" value="1" />
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="I2S_RX" />
+ </path>
+
+ <path name="listen-cpe-handset-mic">
+ <ctl name="MADONOFF Switch" value="1" />
+ <ctl name="TX13 INP MUX" value="CPE_TX_PP" />
+ <ctl name="AIF4_MAD Mixer SLIM TX13" value="1" />
+ <ctl name="MAD Input" value="DMIC0" />
+ <ctl name="CPE AFE MAD Enable" value="1"/>
+ </path>
+
+ <!-- path name used for low bandwidth FTRT codec interface -->
+ <path name="listen-cpe-handset-mic low-speed-intf">
+ <ctl name="MADONOFF Switch" value="1" />
+ <ctl name="AIF4_MAD Mixer SLIM TX12" value="1" />
+ <ctl name="MAD Input" value="DMIC0" />
+ <ctl name="CPE AFE MAD Enable" value="1"/>
+ </path>
+
+ <path name="listen-ape-handset-mic">
+ <ctl name="AIF1_CAP Mixer SLIM TX6" value="1"/>
+ <ctl name="MI2S_TX Channels" value="One" />
+ <ctl name="SLIM TX6 MUX" value="DEC6" />
+ <ctl name="ADC MUX6" value="DMIC" />
+ <ctl name="DMIC MUX6" value="DMIC0" />
+ </path>
+
+ <path name="listen-ape-handset-mic-preproc">
+ <path name="listen-ape-handset-mic" />
+ </path>
+
+ <path name="listen-ape-handset-qmic">
+ <ctl name="PRI_TDM_TX_0 Channels" value="Four" />
+ </path>
+
+ <path name="listen-handset-6mic">
+ <ctl name="PRI_TDM_TX_0 Channels" value="Six" />
+ </path>
+
+ <path name="listen-handset-8mic">
+ <ctl name="PRI_TDM_TX_0 Channels" value="Eight" />
+ </path>
+
+ <path name="ec-ref-loopback-mono">
+ </path>
+
+ <path name="ec-ref-loopback-stereo">
+ </path>
+
+ <path name="echo-reference">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="I2S_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ <ctl name="EC Reference Bit Format" value="S16_LE"/>
+ <ctl name="EC Reference SampleRate" value="48000"/>
+ </path>
+
+</mixer>
diff --git a/configs/msm8909/sound_trigger_platform_info.xml b/configs/msm8909/sound_trigger_platform_info.xml
index 02370ff..22f9f62 100644
--- a/configs/msm8909/sound_trigger_platform_info.xml
+++ b/configs/msm8909/sound_trigger_platform_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--- Copyright (c) 2013-2014, 2016, The Linux Foundation. All rights reserved. -->
+<!--- Copyright (c) 2013-2014, 2016, 2018, The Linux Foundation. All rights reserved. -->
<!--- -->
<!--- Redistribution and use in source and binary forms, with or without -->
<!--- modification, are permitted provided that the following conditions are -->
@@ -26,37 +26,110 @@
<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
<sound_trigger_platform_info>
- <device name="DEVICE_HANDSET_APE_ACDB_ID" value="130" />
- <device name="DEVICE_HANDSET_CPE_ACDB_ID" value="128" />
- <ctrl name="execution_type" value="APE" /> <!-- value: "CPE" "APE" -->
- <ctrl name="max_cpe_sessions" value="1" />
- <ctrl name="max_cpe_phrases" value="6" />
- <ctrl name="max_cpe_users" value="3" />
- <ctrl name="max_ape_sessions" value="5" />
- <ctrl name="max_ape_phrases" value="5" />
- <ctrl name="max_ape_users" value="5" />
- <ctrl name="enable_failure_detection" value="false" />
- <ctrl name="support_lec" value="false" />
+ <param version="0x0101" /> <!-- this must be the first param -->
- <!-- vendor_uuid for a soundmodel. More than one vendor_uuid tags can be -->
- <!-- listed in sequence, the below vendor uuid is reserved for Qualcomm -->
- <!-- module. ISV must use their own unique vendor uuid. app_type, -->
- <!-- module_id, param_id must match to the calibration database -->
- <!-- If ISV vendor_uuid is present, execution_type will be forced to APE -->
- <vendor_uuid value="68ab2d40-e860-11e3-95ef-0002a5d5c51b" app_type="2" library="libsmwrapper.so">
+ <common_config>
+ <param max_cpe_sessions="1" />
+ <param max_ape_sessions="5" />
+ <param enable_failure_detection="false" />
+ <param rx_concurrency_disabled="true" />
+ <param rx_conc_max_st_ses="1" />
+ <param backend_port_name="MI2S_TX" />
+ <param sw_mad="false"/>
+ <!-- Enable concurrent VA & audio capture excluding voip/voice call -->
+ <!-- using concurrent_capture param. -->
+ <!-- Enable VA & voip/voice call concurrency using concurrent_capture -->
+ <!-- param along with concurrent_voip_call/concurrent_voice_call params -->
+ <param concurrent_capture="false" />
+ <param concurrent_voip_call="false" />
+ <param concurrent_voice_call="false" />
+ </common_config>
+
+ <acdb_ids>
+ <param DEVICE_HANDSET_MIC_APE="130" />
+ <param DEVICE_HANDSET_MIC_CPE="128" />
+ <param DEVICE_HANDSET_MIC_ECPP_CPE="128" />
+ <param DEVICE_HANDSET_QMIC_APE="138" />
+ <param DEVICE_HANDSET_MIC_PP_APE="130" />
+ <param DEVICE_HANDSET_6MIC_ARM="140" />
+ <param DEVICE_HANDSET_8MIC_ARM="140" />
+ </acdb_ids>
+
+ <!-- Multiple sound_model_config tags can be listed, each with unique -->
+ <!-- vendor_uuid. The below tag represents QTI SVA engine sound model -->
+ <!-- configuration. ISV must use their own unique vendor_uuid. -->
+ <sound_model_config>
+ <param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b" />
+ <param execution_type="WDSP" /> <!-- value: "WDSP" "ADSP" "DYNAMIC" -->
+ <param app_type="2" /> <!-- app type used in ACDB -->
+ <param library="libsmwrapper.so" />
+ <param max_cpe_phrases="6" />
+ <param max_cpe_users="3" />
+ <param max_ape_phrases="10" />
+ <param max_ape_users="10" />
+ <param event_timestamp_mode="false" />
+
+ <!-- Module and param ids with which the algorithm is integrated in firmware -->
+ <lsm_usecase>
+ <param execution_mode="ADSP" />
+ <param load_sound_model_ids="0x00012C0D, 0x00012C14" />
+ <param unload_sound_model_ids="0x00012C0D, 0x00012C15" />
+ <param confidence_levels_ids="0x00012C0D, 0x00012C07" />
+ <param operation_mode_ids="0x00012C0D, 0x00012C02" />
+ </lsm_usecase>
+
<!-- format: "ADPCM_packet" or "PCM_packet" !-->
<!-- transfer_mode: "FTRT" or "RT" -->
<!-- kw_duration is in milli seconds. It is valid only for FTRT transfer mode -->
- <capture_keyword format="PCM_packet" transfer_mode="RT" kw_duration="2000" />
- <param_type name="load_sound_model" module_id="0x00012C0D" param_id="0x00012C14"/>
- <param_type name="unload_sound_model" module_id="0x00012C0D" param_id="0x00012C15"/>
- <param_type name="confidence_levels" module_id="0x00012C0D" param_id="0x00012C07"/>
- <param_type name="operation_mode" module_id="0x00012C0D" param_id="0x00012C02"/>
- <ctrl name="max_cpe_phrases" value="6" />
- <ctrl name="max_cpe_users" value="3" />
- <ctrl name="max_ape_phrases" value="10" />
- <ctrl name="max_ape_users" value="10" />
- <ctrl name="client_capture_read_delay" value="2000" /> <!-- in milli seconds -->
- </vendor_uuid>
-</sound_trigger_platform_info>
+ <param capture_keyword="PCM_packet, RT, 2000" />
+ <param client_capture_read_delay="2000" />
+ <!-- Profile specific data which the algorithm can support -->
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1"/>
+ <!-- adm_cfg_profile should match with the one defined under adm_config -->
+ <!-- Set it to NONE if LSM directly connects to AFE -->
+ <param adm_cfg_profile="NONE" />
+ <!-- fluence_type: "FLUENCE", FLUENCE_DMIC", FLUENCE_QMIC" -->
+ <!-- param value is valid when profile type is fluence -->
+ <param fluence_type="FLUENCE_QMIC" />
+ </sound_model_config>
+
+ <!-- ARM based SVA sound_model_config -->
+ <sound_model_config>
+ <param vendor_uuid="67fabb70-79e8-4e1c-a202-bcb050243a70" />
+ <param execution_type="ARM" />
+ <!-- ec reference loopback params -->
+ <!-- split_ec_ref_data - true if ec ref is packed with mic captured data -->
+ <param split_ec_ref_data="false"/>
+ <param ec_ref_channel_count="1"/>
+
+ <!-- Profile specific data which the algorithm can support -->
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="6"/>
+ <!-- adm_cfg_profile should match with the one defined under adm_config -->
+ <!-- Set it to NONE if LSM directly connects to AFE -->
+ <param adm_cfg_profile="DEFAULT" />
+ </sound_model_config>
+
+ <!-- Multiple adm_config tags can be listed, each with unique profile name. -->
+ <!-- app_type to match corresponding value from ACDB -->
+ <adm_config>
+ <param adm_cfg_profile="DEFAULT" />
+ <param app_type="69938" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ </adm_config>
+
+ <adm_config>
+ <param adm_cfg_profile="FLUENCE" />
+ <param app_type="69944" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ </adm_config>
+ <acdb_metainfo_key>
+ <param name="ffv" value="9729"/>
+ </acdb_metainfo_key>
+</sound_trigger_platform_info>
diff --git a/configs/msm8953/msm8953.mk b/configs/msm8953/msm8953.mk
index a356e59..3691e50 100644
--- a/configs/msm8953/msm8953.mk
+++ b/configs/msm8953/msm8953.mk
@@ -61,6 +61,8 @@
BOARD_SUPPORTS_QAHW := true
AUDIO_FEATURE_ENABLED_DYNAMIC_LOG := true
AUDIO_FEATURE_ENABLED_SND_MONITOR := true
+BOARD_SUPPORTS_SOUND_TRIGGER_CPU_AFFINITY_SET := true
+BOARD_SUPPORTS_FFV_EC_THREAD_RT_PRIORITY := true
ifeq ($(TARGET_KERNEL_VERSION), 3.18)
AUDIO_FEATURE_ENABLED_DLKM := false
else
diff --git a/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml b/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml
index 5fad947..1b6b229 100644
--- a/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml
+++ b/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml
@@ -297,19 +297,19 @@
<ctl name="SLIM TX5 MUX" value="DEC5" />
<ctl name="ADC MUX5" value="DMIC" />
<ctl name="DMIC MUX5" value="DMIC0" />
- <ctl name="DEC5 Volume" value="96" />
+ <ctl name="DEC5 Volume" value="86" />
<ctl name="SLIM TX6 MUX" value="DEC6" />
<ctl name="ADC MUX6" value="DMIC" />
<ctl name="DMIC MUX6" value="DMIC2" />
- <ctl name="DEC6 Volume" value="96" />
+ <ctl name="DEC6 Volume" value="86" />
<ctl name="SLIM TX7 MUX" value="DEC7" />
<ctl name="ADC MUX7" value="DMIC" />
<ctl name="DMIC MUX7" value="DMIC1" />
- <ctl name="DEC7 Volume" value="96" />
+ <ctl name="DEC7 Volume" value="86" />
<ctl name="SLIM TX8 MUX" value="DEC8" />
<ctl name="ADC MUX8" value="DMIC" />
<ctl name="DMIC MUX8" value="DMIC3" />
- <ctl name="DEC8 Volume" value="96" />
+ <ctl name="DEC8 Volume" value="86" />
</path>
<path name="listen-handset-6mic">
@@ -323,27 +323,27 @@
<ctl name="SLIM TX1 MUX" value="DEC1" />
<ctl name="ADC MUX1" value="DMIC" />
<ctl name="DMIC MUX1" value="DMIC2" />
- <ctl name="DEC1 Volume" value="96" />
+ <ctl name="DEC1 Volume" value="86" />
<ctl name="SLIM TX2 MUX" value="DEC2" />
<ctl name="ADC MUX2" value="DMIC" />
<ctl name="DMIC MUX2" value="DMIC1" />
- <ctl name="DEC2 Volume" value="96" />
+ <ctl name="DEC2 Volume" value="86" />
<ctl name="SLIM TX3 MUX" value="DEC3" />
<ctl name="ADC MUX3" value="DMIC" />
<ctl name="DMIC MUX3" value="DMIC5" />
- <ctl name="DEC3 Volume" value="96" />
+ <ctl name="DEC3 Volume" value="86" />
<ctl name="SLIM TX4 MUX" value="DEC4" />
<ctl name="ADC MUX4" value="DMIC" />
<ctl name="DMIC MUX4" value="DMIC0" />
- <ctl name="DEC4 Volume" value="96" />
+ <ctl name="DEC4 Volume" value="86" />
<ctl name="SLIM TX5 MUX" value="DEC5" />
<ctl name="ADC MUX5" value="DMIC" />
<ctl name="DMIC MUX5" value="DMIC4" />
- <ctl name="DEC5 Volume" value="96" />
+ <ctl name="DEC5 Volume" value="86" />
<ctl name="SLIM TX6 MUX" value="DEC6" />
<ctl name="ADC MUX6" value="DMIC" />
<ctl name="DMIC MUX6" value="DMIC3" />
- <ctl name="DEC6 Volume" value="96" />
+ <ctl name="DEC6 Volume" value="86" />
</path>
<path name="listen-handset-8mic">
@@ -359,27 +359,27 @@
<ctl name="SLIM TX1 MUX" value="DEC1" />
<ctl name="ADC MUX1" value="DMIC" />
<ctl name="DMIC MUX1" value="DMIC2" />
- <ctl name="DEC1 Volume" value="96" />
+ <ctl name="DEC1 Volume" value="86" />
<ctl name="SLIM TX2 MUX" value="DEC2" />
<ctl name="ADC MUX2" value="DMIC" />
<ctl name="DMIC MUX2" value="DMIC1" />
- <ctl name="DEC2 Volume" value="96" />
+ <ctl name="DEC2 Volume" value="86" />
<ctl name="SLIM TX3 MUX" value="DEC3" />
<ctl name="ADC MUX3" value="DMIC" />
<ctl name="DMIC MUX3" value="DMIC5" />
- <ctl name="DEC3 Volume" value="96" />
+ <ctl name="DEC3 Volume" value="86" />
<ctl name="SLIM TX4 MUX" value="DEC4" />
<ctl name="ADC MUX4" value="DMIC" />
<ctl name="DMIC MUX4" value="DMIC0" />
- <ctl name="DEC4 Volume" value="96" />
+ <ctl name="DEC4 Volume" value="86" />
<ctl name="SLIM TX5 MUX" value="DEC5" />
<ctl name="ADC MUX5" value="DMIC" />
<ctl name="DMIC MUX5" value="DMIC4" />
- <ctl name="DEC5 Volume" value="96" />
+ <ctl name="DEC5 Volume" value="86" />
<ctl name="SLIM TX6 MUX" value="DEC6" />
<ctl name="ADC MUX6" value="DMIC" />
<ctl name="DMIC MUX6" value="DMIC3" />
- <ctl name="DEC6 Volume" value="96" />
+ <ctl name="DEC6 Volume" value="86" />
<ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
<ctl name="RX MIX TX7 MUX" value="RX_MIX7"/>
diff --git a/configs/sdm670/mixer_paths_mtp.xml b/configs/sdm670/mixer_paths_mtp.xml
index 048e039..080459d 100644
--- a/configs/sdm670/mixer_paths_mtp.xml
+++ b/configs/sdm670/mixer_paths_mtp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2017, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2018, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
@@ -2451,6 +2451,10 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia2" value="1" />
</path>
+ <path name="hifi-record">
+ <ctl name="MultiMedia2 Mixer INT3_MI2S_TX" value="1" />
+ </path>
+
<path name="hifi-record usb-headset-mic">
<ctl name="MultiMedia2 Mixer USB_AUDIO_TX" value="1" />
</path>
diff --git a/configs/sdm670/mixer_paths_skuw.xml b/configs/sdm670/mixer_paths_skuw.xml
index b799532..f1f6990 100644
--- a/configs/sdm670/mixer_paths_skuw.xml
+++ b/configs/sdm670/mixer_paths_skuw.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2017, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2018, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
@@ -2639,6 +2639,10 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia2" value="1" />
</path>
+ <path name="hifi-record">
+ <ctl name="MultiMedia2 Mixer INT3_MI2S_TX" value="1" />
+ </path>
+
<path name="hifi-record usb-headset-mic">
<ctl name="MultiMedia2 Mixer USB_AUDIO_TX" value="1" />
</path>
diff --git a/configs/sdm845/mixer_paths_tavil.xml b/configs/sdm845/mixer_paths_tavil.xml
index 87bdae0..a08ffaf 100644
--- a/configs/sdm845/mixer_paths_tavil.xml
+++ b/configs/sdm845/mixer_paths_tavil.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2016-2017, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2016-2018, The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
@@ -2743,6 +2743,10 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia2" value="1" />
</path>
+ <path name="hifi-record">
+ <ctl name="MultiMedia2 Mixer SLIM_0_TX" value="1" />
+ </path>
+
<path name="hifi-record usb-headset-mic">
<ctl name="MultiMedia2 Mixer USB_AUDIO_TX" value="1" />
</path>
diff --git a/hal/audio_extn/hw_loopback.c b/hal/audio_extn/hw_loopback.c
index 78e4215..c4dbddc 100644
--- a/hal/audio_extn/hw_loopback.c
+++ b/hal/audio_extn/hw_loopback.c
@@ -599,6 +599,9 @@
/* Use an empty patch from patch database and initialze */
active_loopback_patch = &(audio_loopback_mod->patch_db.loopback_patch[
audio_loopback_mod->patch_db.num_patches]);
+
+ memset(active_loopback_patch, 0, sizeof(loopback_patch_t));
+
active_loopback_patch->patch_handle_id = PATCH_HANDLE_INVALID;
active_loopback_patch->patch_state = PATCH_INACTIVE;
active_loopback_patch->patch_stream.ip_hdlr_handle = NULL;
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 16ac7f4..cef64a7 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -1362,9 +1362,7 @@
platform_get_snd_device_name(snd_device),
platform_get_snd_device_name(usecase->out_snd_device),
platform_check_backends_match(snd_device, usecase->out_snd_device));
- if ((usecase->type != PCM_CAPTURE) &&
- (usecase->type != VOICE_CALL) &&
- (usecase != uc_info)) {
+ if ((usecase->type != PCM_CAPTURE) && (usecase != uc_info)) {
uc_derive_snd_device = derive_playback_snd_device(adev->platform,
usecase, uc_info, snd_device);
if (((uc_derive_snd_device != usecase->out_snd_device) || force_routing) &&
@@ -2498,7 +2496,7 @@
in->pcm = pcm_open(adev->snd_card, in->pcm_device_id,
flags, &config);
ATRACE_END();
- if (errno == ENETRESET) {
+ if (errno == ENETRESET && !pcm_is_ready(in->pcm)) {
ALOGE("%s: pcm_open failed errno:%d\n", __func__, errno);
adev->card_status = CARD_STATUS_OFFLINE;
in->card_status = CARD_STATUS_OFFLINE;
@@ -3092,7 +3090,7 @@
out->pcm = pcm_open(adev->snd_card, out->pcm_device_id,
flags, &out->config);
ATRACE_END();
- if (errno == ENETRESET) {
+ if (errno == ENETRESET && !pcm_is_ready(out->pcm)) {
ALOGE("%s: pcm_open failed errno:%d\n", __func__, errno);
out->card_status = CARD_STATUS_OFFLINE;
adev->card_status = CARD_STATUS_OFFLINE;
@@ -3146,7 +3144,7 @@
out->pcm_device_id,
COMPRESS_IN, &out->compr_config);
ATRACE_END();
- if (errno == ENETRESET) {
+ if (errno == ENETRESET && !is_compress_ready(out->compr)) {
ALOGE("%s: compress_open failed errno:%d\n", __func__, errno);
adev->card_status = CARD_STATUS_OFFLINE;
out->card_status = CARD_STATUS_OFFLINE;
@@ -4970,7 +4968,7 @@
__func__, adev->snd_card, out->pcm_device_id, out->config.channels);
out->pcm = pcm_open(adev->snd_card, out->pcm_device_id,
(PCM_OUT | PCM_MMAP | PCM_NOIRQ | PCM_MONOTONIC), &out->config);
- if (errno == ENETRESET) {
+ if (errno == ENETRESET && !pcm_is_ready(out->pcm)) {
ALOGE("%s: pcm_open failed errno:%d\n", __func__, errno);
out->card_status = CARD_STATUS_OFFLINE;
adev->card_status = CARD_STATUS_OFFLINE;
@@ -5592,7 +5590,7 @@
__func__, adev->snd_card, in->pcm_device_id, in->config.channels);
in->pcm = pcm_open(adev->snd_card, in->pcm_device_id,
(PCM_IN | PCM_MMAP | PCM_NOIRQ | PCM_MONOTONIC), &in->config);
- if (errno == ENETRESET) {
+ if (errno == ENETRESET && !pcm_is_ready(in->pcm)) {
ALOGE("%s: pcm_open failed errno:%d\n", __func__, errno);
in->card_status = CARD_STATUS_OFFLINE;
adev->card_status = CARD_STATUS_OFFLINE;
@@ -5687,6 +5685,13 @@
(devices != AUDIO_DEVICE_OUT_USB_ACCESSORY);
bool direct_dev = is_hdmi || is_usb_dev;
+ if (is_usb_dev && (!audio_extn_usb_connected(NULL))) {
+ is_usb_dev = false;
+ devices = AUDIO_DEVICE_OUT_SPEAKER;
+ ALOGW("%s: ignore set device to non existing USB card, use output device(%#x)",
+ __func__, devices);
+ }
+
*stream_out = NULL;
out = (struct stream_out *)calloc(1, sizeof(struct stream_out));
@@ -6788,6 +6793,13 @@
flags,
source);
+ if (is_usb_dev && (!audio_extn_usb_connected(NULL))) {
+ is_usb_dev = false;
+ devices = AUDIO_DEVICE_IN_BUILTIN_MIC;
+ ALOGW("%s: ignore set device to non existing USB card, use input device(%#x)",
+ __func__, devices);
+ }
+
*stream_in = NULL;
if (!(is_usb_dev && may_use_hifi_record)) {
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 50e28da..15f84da 100755
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -2298,8 +2298,6 @@
}
}
- /* init keep-alive for compress passthru */
- audio_extn_keep_alive_init(adev);
#ifdef DYNAMIC_LOG_ENABLED
log_utils_init();
#endif
@@ -6256,10 +6254,11 @@
ALOGD("%s:becf: afe: napb not active - set non fractional rate",
__func__);
}
- /*ensure AFE set to 48khz when sample rate less than 44.1khz*/
- if (sample_rate < OUTPUT_SAMPLING_RATE_44100) {
- sample_rate = CODEC_BACKEND_DEFAULT_SAMPLE_RATE;
- ALOGD("%s:becf: afe: napb set sample rate to default Sample Rate(48k)",__func__);
+ /*reset sample rate to 48khz if sample rate less than 44.1khz, or device backend dose not support 44.1 khz*/
+ if ((sample_rate == OUTPUT_SAMPLING_RATE_44100 && backend_idx != HEADPHONE_44_1_BACKEND)
+ || sample_rate < OUTPUT_SAMPLING_RATE_44100) {
+ sample_rate = CODEC_BACKEND_DEFAULT_SAMPLE_RATE;
+ ALOGD("%s:becf: afe: reset sample rate to default Sample Rate(48k)",__func__);
}
}
@@ -6386,13 +6385,6 @@
/*this is populated by check_codec_backend_cfg hence set default value to false*/
backend_cfg.passthrough_enabled = false;
- /*check if the stream sample 44.1Khz rate is supported of configured device sample rate. If not
- open afe at default sample rate.
- */
- if (backend_idx != HEADPHONE_44_1_BACKEND &&
- usecase->stream.out->sample_rate == OUTPUT_SAMPLING_RATE_44100)
- backend_cfg.sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
-
/* Set Backend sampling rate to 176.4 for DSD64 and
* 352.8Khz for DSD128.
* Set Bit Width to 16
@@ -6421,9 +6413,7 @@
for (i = 0; i < num_devices; i++) {
ALOGI("%s: new_snd_devices[%d] is %d", __func__, i, new_snd_devices[i]);
if ((platform_check_codec_backend_cfg(adev, usecase, new_snd_devices[i],
- &backend_cfg)) ||
- ((usecase->out_snd_device != SND_DEVICE_NONE) &&
- !platform_check_backends_match(usecase->out_snd_device, snd_device))) {
+ &backend_cfg))) {
ret = platform_set_codec_backend_cfg(adev, new_snd_devices[i],
backend_cfg);
if (!ret) {
diff --git a/qahw_api/test/qahw_playback_test.c b/qahw_api/test/qahw_playback_test.c
index 8834252..b410006 100644
--- a/qahw_api/test/qahw_playback_test.c
+++ b/qahw_api/test/qahw_playback_test.c
@@ -161,6 +161,18 @@
"music_offload_wma_encode_option2=%d;" \
"music_offload_wma_format_tag=%d;"
+#define APE_KVPAIR "music_offload_ape_bits_per_sample=%d;" \
+ "music_offload_ape_blocks_per_frame=%d;" \
+ "music_offload_ape_compatible_version=%d;" \
+ "music_offload_ape_compression_level=%d;" \
+ "music_offload_ape_final_frame_blocks=%d;" \
+ "music_offload_ape_format_flags=%d;" \
+ "music_offload_ape_num_channels=%d;" \
+ "music_offload_ape_sample_rate=%d;" \
+ "music_offload_ape_total_frames=%d;" \
+ "music_offload_sample_rate=%d;" \
+ "music_offload_seek_table_present=%d;"
+
#ifndef AUDIO_OUTPUT_FLAG_ASSOCIATED
#define AUDIO_OUTPUT_FLAG_ASSOCIATED 0x10000000
#endif
@@ -303,6 +315,9 @@
case FILE_WMA:
kvpair_type = WMA_KVPAIR;
break;
+ case FILE_APE:
+ kvpair_type = APE_KVPAIR;
+ break;
default:
break;
}
@@ -648,6 +663,7 @@
case FILE_VORBIS:
case FILE_ALAC:
case FILE_FLAC:
+ case FILE_APE:
fprintf(log_file, "%s:calling setparam for kvpairs\n", __func__);
if (!(params->kvpair_values)) {
fprintf(log_file, "stream %d: error!!No metadata for the clip\n", params->stream_index);
@@ -1118,6 +1134,9 @@
case FILE_IEC61937:
stream_info->config.offload_info.format = AUDIO_FORMAT_IEC61937;
break;
+ case FILE_APE:
+ stream_info->config.offload_info.format = AUDIO_FORMAT_APE;
+ break;
default:
fprintf(log_file, "Does not support given filetype\n");
fprintf(stderr, "Does not support given filetype\n");
@@ -1638,6 +1657,9 @@
printf(" ->Note:all the USB device commmands(above) should be accompanied with the host side commands\n\n");
printf("hal_play_test -f interactive_audio.wav -d 2 -l out.txt -k \"mixer_ctrl=pan_scale;c=1;o=6;I=fc;O=fl,fr,fc,lfe,bl,br;M=0.5,0.5,0,0,0,0\" -i 1\n");
printf(" ->kv_pair for downmix or pan_scale should folow the above sequence, one can pass downmix & pan_scale params/coeff matrices. For each control params should be sent separately \n");
+ printf("hal_play_test -f /data/ape_dsp.isf.0x152E.bitstream.0x10100400.0x2.0x12F32.rx.bin -k 16,73728,3990,2000,53808,32,2,44100,157,44100,1 -t 18 -r 48000 -c 2 -v 0.5 -d 131072");
+ printf(" -> kvpair(-k) values represent media-info of clip & values should be in below mentioned sequence\n");
+ printf(" ->bits_per_sample,blocks_per_frame,compatible_version,compression_level,final_frame_blocks,format_flags,num_channels,sample_rate,total_frames,sample_rate,seek_table_present \n");
}
int get_wav_header_length (FILE* file_stream)
diff --git a/qahw_api/test/qahw_playback_test.h b/qahw_api/test/qahw_playback_test.h
index b8bddbc..0ac51df 100644
--- a/qahw_api/test/qahw_playback_test.h
+++ b/qahw_api/test/qahw_playback_test.h
@@ -60,7 +60,8 @@
FILE_MP2,
FILE_APTX,
FILE_TRUEHD,
- FILE_IEC61937
+ FILE_IEC61937,
+ FILE_APE
};
typedef enum {