Merge "audio: Guard audio_extn_send_dual_mono_mixing_coefficients api"
diff --git a/configs/msm8909/msm8909.mk b/configs/msm8909/msm8909.mk
index 9a32dee..f9ce14c 100755
--- a/configs/msm8909/msm8909.mk
+++ b/configs/msm8909/msm8909.mk
@@ -135,6 +135,10 @@
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio.dolby.ds2.enabled=true
+#Disable split a2dp
+PRODUCT_PROPERTY_OVERRIDES += \
+persist.vendor.bt.enable.splita2dp=false
+
PRODUCT_PACKAGES += \
android.hardware.audio@2.0-service \
android.hardware.audio@2.0-impl \
diff --git a/configs/msm8937/mixer_paths_sdm439_pm8953.xml b/configs/msm8937/mixer_paths_sdm439_pm8953.xml
new file mode 100644
index 0000000..5b8f268
--- /dev/null
+++ b/configs/msm8937/mixer_paths_sdm439_pm8953.xml
@@ -0,0 +1,1353 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ Copyright (c) 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="HPHL Volume" value="9" />
+ <ctl name="HPHR Volume" value="9" />
+ <ctl name="RX1 Digital Volume" value="84" />
+ <ctl name="RX2 Digital Volume" value="84" />
+ <ctl name="RX3 Digital Volume" value="84" />
+ <ctl name="IIR1 INP1 Volume" value="84" />
+ <ctl name="IIR1 INP2 Volume" value="84" />
+ <ctl name="IIR1 INP3 Volume" value="84" />
+ <ctl name="IIR1 INP4 Volume" value="84" />
+ <ctl name="ADC1 Volume" value="4" />
+ <ctl name="ADC2 Volume" value="4" />
+ <ctl name="ADC3 Volume" value="4" />
+ <ctl name="DEC1 Volume" value="84" />
+ <ctl name="DEC2 Volume" value="84" />
+ <ctl name="DEC2 MUX" value="ZERO" />
+ <ctl name="DEC1 MUX" value="ZERO" />
+ <ctl name="ADC2 MUX" value="ZERO" />
+ <ctl name="RDAC2 MUX" value="ZERO" />
+ <ctl name="RX2 MIX2 INP2" value="ZERO" />
+ <ctl name="RX2 MIX2 INP1" value="ZERO" />
+ <ctl name="RX1 MIX2 INP2" value="ZERO" />
+ <ctl name="RX1 MIX2 INP1" value="ZERO" />
+ <ctl name="RX3 MIX1 INP2" value="ZERO" />
+ <ctl name="RX3 MIX1 INP1" value="ZERO" />
+ <ctl name="RX2 MIX1 INP2" value="ZERO" />
+ <ctl name="RX2 MIX1 INP1" value="ZERO" />
+ <ctl name="RX1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX1 MIX1 INP1" value="ZERO" />
+ <ctl name="EAR_S" value="ZERO" />
+ <ctl name="HPHL" value="ZERO" />
+ <ctl name="HPHR" value="ZERO" />
+ <ctl name="SPK" value="ZERO" />
+ <ctl name="WSA Spk Switch" value="ZERO" />
+ <ctl name="LINE_OUT" value="ZERO" />
+ <ctl name="SpkrMono WSA_RDAC" value="ZERO" />
+ <ctl name="SpkrMono BOOST Switch" value="1" />
+ <ctl name="EAR PA Gain" value="POS_6_DB" />
+ <ctl name="EAR PA Gain" value="POS_1P5_DB" />
+ <ctl name="EAR PA Boost" value="ENABLE" />
+ <ctl name="MI2S_RX Channels" value="One" />
+ <ctl name="MI2S_TX Channels" value="One" />
+ <ctl name="PRI_MI2S_RX_DL_HL Switch" value="0" />
+ <ctl name="PRI_MI2S_RX_VI_FB_MUX" value="ZERO" />
+ <ctl name="DEC3 MUX" value="ZERO" />
+ <ctl name="DEC4 MUX" value="ZERO" />
+ <ctl name="SpkrMono VISENSE Switch" value="0" />
+ <ctl name="ADC1_INP1 Switch" value="0" />
+
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia3" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia2" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia3" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="MultiMedia1 Mixer TERT_MI2S_TX" value="0" />
+ <ctl name="MultiMedia5 Mixer TERT_MI2S_TX" value="0" />
+ <ctl name="MultiMedia1 Mixer INTERNAL_BT_SCO_TX" value="0" />
+ <ctl name="PRI_MI2S_RX_Voice Mixer CSVoice" value="0" />
+ <ctl name="Voice_Tx Mixer TERT_MI2S_TX_Voice" value="0" />
+ <ctl name="PRI_MI2S_RX Port Mixer INT_BT_SCO_TX" value="0" />
+ <ctl name="QUIN_MI2S_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="QUIN_MI2S_RX Audio Mixer MultiMedia2" value="0" />
+ <ctl name="QUIN_MI2S_RX Audio Mixer MultiMedia3" value="0" />
+ <ctl name="QUIN_MI2S_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="QUIN_MI2S_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="QUIN_MI2S_RX Audio Mixer MultiMedia7" value="0" />
+ <ctl name="QUIN_MI2S_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="QUIN_MI2S_RX Audio Mixer MultiMedia11" value="0" />
+ <ctl name="QUIN_MI2S_RX Audio Mixer MultiMedia12" value="0" />
+ <ctl name="QUIN_MI2S_RX Audio Mixer MultiMedia13" value="0" />
+ <ctl name="QUIN_MI2S_RX Audio Mixer MultiMedia14" 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" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer Multimedia6" value="0" />
+ <ctl name="MultiMedia6 Mixer TERT_MI2S_TX" value="0" />
+
+ <!-- Voice2 -->
+ <ctl name="PRI_MI2S_RX_Voice Mixer Voice2" value="0" />
+ <ctl name="Voice2_Tx Mixer TERT_MI2S_TX_Voice2" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer Voice2" value="0" />
+ <ctl name="Voice2_Tx Mixer INTERNAL_BT_SCO_TX_Voice2" value="0" />
+ <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="PRI_MI2S_RX_Voice Mixer VoLTE" value="0" />
+ <ctl name="VoLTE_Tx Mixer TERT_MI2S_TX_VoLTE" value="0" />
+ <ctl name="HDMI_RX_Voice Mixer VoLTE" value="0" />
+ <ctl name="VoLTE_Tx Mixer SLIM_0_TX_VoLTE" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer VoLTE" value="0" />
+ <ctl name="VoLTE_Tx Mixer INTERNAL_BT_SCO_TX_VoLTE" value="0" />
+ <ctl name="AFE_PCM_RX_Voice Mixer VoLTE" value="0" />
+ <ctl name="VoLTE_Tx Mixer AFE_PCM_TX_VoLTE" value="0" />
+ <!-- VoLTE end -->
+
+ <!-- VoWLAN -->
+ <ctl name="PRI_MI2S_RX_Voice Mixer VoWLAN" value="0" />
+ <ctl name="VoWLAN_Tx Mixer TERT_MI2S_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 -->
+
+ <!-- Multimode Voice1 -->
+ <ctl name="PRI_MI2S_RX_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer TERT_MI2S_TX_MMode1" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer INT_BT_SCO_TX_MMode1" value="0" />
+ <ctl name="AFE_PCM_RX_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer AFE_PCM_TX_MMode1" value="0" />
+ <!-- Multimode Voice1 end -->
+
+ <!-- Multimode Voice2 -->
+ <ctl name="PRI_MI2S_RX_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="VoiceMMode2_Tx Mixer TERT_MI2S_TX_MMode2" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="VoiceMMode2_Tx Mixer INT_BT_SCO_TX_MMode2" value="0" />
+ <ctl name="AFE_PCM_RX_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="VoiceMMode2_Tx Mixer AFE_PCM_TX_MMode2" value="0" />
+ <!-- Multimode Voice2 end -->
+
+ <!-- Voip -->
+ <ctl name="PRI_MI2S_RX_Voice Mixer Voip" value="0" />
+ <ctl name="Voip_Tx Mixer TERT_MI2S_TX_Voip" value="0" />
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_8KHZ" />
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer Voip" value="0" />
+ <ctl name="Voip_Tx Mixer INTERNAL_BT_SCO_TX_Voip" value="0" />
+ <!-- Voip end -->
+
+ <!-- fm -->
+ <ctl name="Internal FM RX Volume" value="0" />
+ <ctl name="PRI_MI2S_RX Port Mixer INTERNAL_FM_TX" value="0" />
+ <ctl name="MI2S_DL_HL Switch" value="1" />
+ <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" />
+ <!-- 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 -->
+
+ <!-- Incall Recording -->
+ <ctl name="MultiMedia1 Mixer VOC_REC_UL" value="0" />
+ <ctl name="MultiMedia1 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 -->
+
+ <!-- QCHAT -->
+ <ctl name="PRI_MI2S_RX_Voice Mixer QCHAT" value="0" />
+ <ctl name="QCHAT_Tx Mixer TERT_MI2S_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 -->
+
+ <!-- EC_REF -->
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="None" />
+
+ <!-- IIR -->
+ <ctl name="IIR1 Band1" id ="0" value="268435456" />
+ <ctl name="IIR1 Band1" id ="1" value="0" />
+ <ctl name="IIR1 Band1" id ="2" value="0" />
+ <ctl name="IIR1 Band1" id ="3" value="0" />
+ <ctl name="IIR1 Band1" id ="4" value="0" />
+ <ctl name="IIR1 Band2" id ="0" value="268435456" />
+ <ctl name="IIR1 Band2" id ="1" value="0" />
+ <ctl name="IIR1 Band2" id ="2" value="0" />
+ <ctl name="IIR1 Band2" id ="3" value="0" />
+ <ctl name="IIR1 Band2" id ="4" value="0" />
+ <ctl name="IIR1 Band3" id ="0" value="268435456" />
+ <ctl name="IIR1 Band3" id ="1" value="0" />
+ <ctl name="IIR1 Band3" id ="2" value="0" />
+ <ctl name="IIR1 Band3" id ="3" value="0" />
+ <ctl name="IIR1 Band3" id ="4" value="0" />
+ <ctl name="IIR1 Band4" id ="0" value="268435456" />
+ <ctl name="IIR1 Band4" id ="1" value="0" />
+ <ctl name="IIR1 Band4" id ="2" value="0" />
+ <ctl name="IIR1 Band4" id ="3" value="0" />
+ <ctl name="IIR1 Band4" id ="4" value="0" />
+ <ctl name="IIR1 Band5" id ="0" value="268435456" />
+ <ctl name="IIR1 Band5" id ="1" value="0" />
+ <ctl name="IIR1 Band5" id ="2" value="0" />
+ <ctl name="IIR1 Band5" id ="3" value="0" />
+ <ctl name="IIR1 Band5" id ="4" value="0" />
+ <ctl name="IIR1 Enable Band1" value="0" />
+ <ctl name="IIR1 Enable Band2" value="0" />
+ <ctl name="IIR1 Enable Band3" value="0" />
+ <ctl name="IIR1 Enable Band4" value="0" />
+ <ctl name="IIR1 Enable Band5" value="0" />
+ <!-- IIR -->
+
+ <!-- ADSP testfwk -->
+ <ctl name="MI2S_DL_HL Switch" value="0" />
+ <!-- ADSP testfwk end-->
+
+ <path name="bt-sco-wb-samplerate">
+ <ctl name="Internal BTSCO SampleRate" value="16000" />
+ </path>
+
+ <!-- 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 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" />
+ <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 hdmi">
+ <ctl name="QUIN_MI2S_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 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 speaker-and-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="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 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" />
+ <path name="low-latency-playback bt-sco" />
+ </path>
+
+ <path name="low-latency-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback hdmi">
+ <ctl name="QUIN_MI2S_RX Audio Mixer MultiMedia5" value="1" />
+ </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 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 speaker-and-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="audio-ull-playback">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia3" value="1" />
+ </path>
+
+ <path name="audio-ull-playback speaker-protected">
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback headphones">
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia3" value="1" />
+ </path>
+
+ <path name="audio-ull-playback bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <path name="audio-ull-playback bt-sco" />
+ </path>
+
+ <path name="audio-ull-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia3" value="1" />
+ </path>
+
+ <path name="audio-ull-playback hdmi">
+ <ctl name="QUIN_MI2S_RX Audio Mixer MultiMedia3" value="1" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-hdmi">
+ <path name="audio-ull-playback hdmi" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback usb-headphones">
+ <path name="audio-ull-playback afe-proxy" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-usb-headphones">
+ <path name="audio-ull-playback usb-headphones" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-headphones">
+ <path name="audio-ull-playback" />
+ </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 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" />
+ <path name="compress-offload-playback bt-sco" />
+ </path>
+
+ <path name="compress-offload-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback hdmi">
+ <ctl name="QUIN_MI2S_RX Audio Mixer MultiMedia4" value="1" />
+ </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 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 speaker-and-headphones">
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback2">
+ <ctl name="PRI_MI2S_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-playback2 hdmi">
+ <ctl name="QUIN_MI2S_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-hdmi">
+ <path name="compress-offload-playback2 hdmi" />
+ <path name="compress-offload-playback2" />
+ </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 afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-and-headphones">
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback transmission-fm">
+ <ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3">
+ <ctl name="PRI_MI2S_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 hdmi">
+ <ctl name="QUIN_MI2S_RX Audio Mixer MultiMedia10" value="1" />
+ </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 speaker-and-headphones">
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback4">
+ <ctl name="PRI_MI2S_RX Audio 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 hdmi">
+ <ctl name="QUIN_MI2S_RX Audio Mixer MultiMedia11" value="1" />
+ </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 speaker-and-headphones">
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback5">
+ <ctl name="PRI_MI2S_RX Audio 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 hdmi">
+ <ctl name="QUIN_MI2S_RX Audio Mixer MultiMedia12" value="1" />
+ </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 speaker-and-headphones">
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback6">
+ <ctl name="PRI_MI2S_RX Audio 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 hdmi">
+ <ctl name="QUIN_MI2S_RX Audio Mixer MultiMedia13" value="1" />
+ </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 speaker-and-headphones">
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback7">
+ <ctl name="PRI_MI2S_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 hdmi">
+ <ctl name="QUIN_MI2S_RX Audio Mixer MultiMedia14" value="1" />
+ </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 speaker-and-headphones">
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="audio-record">
+ <ctl name="MultiMedia1 Mixer TERT_MI2S_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" />
+ <path name="audio-record bt-sco" />
+ </path>
+
+ <path name="audio-record usb-headset-mic">
+ <ctl name="MultiMedia1 Mixer AFE_PCM_TX" value="1" />
+ </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 TERT_MI2S_TX" 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="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="low-latency-record">
+ <ctl name="MultiMedia5 Mixer TERT_MI2S_TX" 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="16000" />
+ <path name="low-latency-record bt-sco" />
+ </path>
+
+ <path name="low-latency-record capture-fm">
+ <ctl name="MultiMedia5 Mixer INTERNAL_FM_TX" value="1" />
+ </path>
+
+ <path name="fm-virtual-record capture-fm">
+ <ctl name="MultiMedia2 Mixer INTERNAL_FM_TX" value="1" />
+ </path>
+
+ <path name="voice-call">
+ <ctl name="PRI_MI2S_RX_Voice Mixer CSVoice" value="1" />
+ <ctl name="Voice_Tx Mixer TERT_MI2S_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 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="voice-call afe-proxy">
+ <path name="voice-call usb-headphones" />
+ </path>
+
+ <path name="voice2-call">
+ <ctl name="PRI_MI2S_RX_Voice Mixer Voice2" value="1" />
+ <ctl name="Voice2_Tx Mixer TERT_MI2S_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 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="voice2-call afe-proxy">
+ <path name="voice2-call usb-headphones" />
+ </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" />
+ <ctl name="MI2S_DL_HL Switch" value="1" />
+ </path>
+
+ <path name="vowlan-call">
+ <ctl name="PRI_MI2S_RX_Voice Mixer VoWLAN" value="1" />
+ <ctl name="VoWLAN_Tx Mixer TERT_MI2S_TX_VoWLAN" value="1" />
+ </path>
+
+ <path name="vowlan-call hdmi">
+ <ctl name="HDMI_RX_Voice Mixer VoWLAN" value="1" />
+ <ctl name="VoWLAN_Tx Mixer TERT_MI2S_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="16000" />
+ <path name="vowlan-call bt-sco" />
+ </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="vowlan-call speaker-and-headphones">
+ <path name="vowlan-call" />
+ </path>
+
+ <path name="voicemmode1-call">
+ <ctl name="PRI_MI2S_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer TERT_MI2S_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 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 afe-proxy">
+ <path name="voicemmode1-call usb-headphones" />
+ </path>
+
+ <path name="voicemmode1-call speaker-and-headphones">
+ <path name="voicemmode1-call" />
+ </path>
+
+ <path name="voicemmode2-call">
+ <ctl name="PRI_MI2S_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer TERT_MI2S_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 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 afe-proxy">
+ <path name="voicemmode2-call usb-headphones" />
+ </path>
+
+ <path name="voicemmode2-call speaker-and-headphones">
+ <path name="voicemmode2-call" />
+ </path>
+
+ <path name="hfp-sco">
+ <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 TERT_MI2S_TX" value="1" />
+ <ctl name="HFP_INT_UL_HL Switch" value="1" />
+ </path>
+
+ <path name="hfp-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="16000" />
+ <path name="hfp-sco" />
+ </path>
+
+ <path name="incall-rec-uplink">
+ <ctl name="MultiMedia1 Mixer VOC_REC_UL" value="1" />
+ </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 afe-proxy">
+ <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-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-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 afe-proxy">
+ <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-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-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 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 usb-headset-mic">
+ <path name="incall-rec-uplink-and-downlink" />
+ </path>
+
+ <path name="incall-rec-uplink-and-downlink-compress usb-headset-mic">
+ <path name="incall-rec-uplink-and-downlink-compress" />
+ </path>
+
+ <path name="incall_music_uplink">
+ <ctl name="Incall_Music Audio Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="incall_music_uplink bt-sco">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink bt-sco-wb">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink afe-proxy">
+ <path name="incall_music_uplink" />
+ </path>
+
+ <path name="incall_music_uplink usb-headphones">
+ <path name="incall_music_uplink" />
+ </path>
+ <path name="incall_music_uplink2">
+ <ctl name="Incall_Music_2 Audio Mixer MultiMedia9" value="1" />
+ </path>
+
+ <path name="incall_music_uplink2 bt-sco">
+ <path name="incall_music_uplink2" />
+ </path>
+
+ <path name="incall_music_uplink2 bt-sco-wb">
+ <path name="incall_music_uplink2" />
+ </path>
+
+ <path name="incall_music_uplink2 afe-proxy">
+ <path name="incall_music_uplink2" />
+ </path>
+
+ <path name="incall_music_uplink2 usb-headphones">
+ <path name="incall_music_uplink2" />
+ </path>
+ <path name="volte-call">
+ <ctl name="PRI_MI2S_RX_Voice Mixer VoLTE" value="1" />
+ <ctl name="VoLTE_Tx Mixer TERT_MI2S_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 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="volte-call afe-proxy">
+ <path name="volte-call usb-headphones" />
+ </path>
+
+ <path name="compress-voip-call">
+ <ctl name="PRI_MI2S_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer TERT_MI2S_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" />
+ <path name="compress-voip-call bt-sco" />
+ </path>
+
+ <path name="afe-proxy-playback afe-proxy">
+ </path>
+
+ <path name="afe-proxy-record afe-proxy">
+ </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 speaker-and-headphones">
+ <path name="compress-voip-call" />
+ </path>
+
+ <path name="qchat-call">
+ <ctl name="PRI_MI2S_RX_Voice Mixer QCHAT" value="1" />
+ <ctl name="QCHAT_Tx Mixer TERT_MI2S_TX_QCHAT" value="1" />
+ </path>
+
+ <path name="qchat-call bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX_Voice Mixer QCHAT" value="1" />
+ <ctl name="QCHAT_Tx Mixer INTERNAL_BT_SCO_TX_QCHAT" value="1" />
+ </path>
+
+ <path name="qchat-call bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <path name="qchat-call bt-sco" />
+ </path>
+
+ <path name="multi-channel-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="multi-channel-playback hdmi">
+ <ctl name="QUIN_MI2S_RX Audio Mixer MultiMedia2" value="1" />
+ </path>
+
+ <!-- These are actual sound device specific mixer settings -->
+ <path name="adc1">
+ <ctl name="ADC1 Volume" value="6" />
+ <ctl name="DEC1 MUX" value="ADC1" />
+ <ctl name="ADC1_INP1 Switch" value="1" />
+ </path>
+
+ <path name="adc2">
+ <ctl name="ADC2 Volume" value="6" />
+ <ctl name="DEC1 MUX" value="ADC2" />
+ </path>
+
+ <path name="adc3">
+ <ctl name="ADC3 Volume" value="6" />
+ <ctl name="DEC1 MUX" value="ADC2" />
+ <ctl name="ADC2 MUX" value="INP3" />
+ </path>
+
+ <path name="hdmi">
+ </path>
+
+ <path name="speaker">
+ <ctl name="RX3 MIX1 INP1" value="RX1" />
+ <ctl name="SPK" value="Switch" />
+ </path>
+
+ <path name="speaker-and-hdmi">
+ <path name="speaker" />
+ <path name="hdmi" />
+ </path>
+
+ <path name="wsa-speaker">
+ <ctl name="RX3 MIX1 INP1" value="RX1" />
+ <ctl name="RX3 Digital Volume" value="84" />
+ <ctl name="LINE_OUT" value="Switch" />
+ <ctl name="SpkrMono WSA_RDAC" value="Switch" />
+ </path>
+
+ <path name="spkr-rx-calib">
+ <ctl name="PRI_MI2S_RX_DL_HL Switch" value="1" />
+ </path>
+
+ <path name="vi-feedback">
+ </path>
+
+ <path name="spkr-vi-record">
+ <ctl name="PRI_MI2S_RX_VI_FB_MUX" value="SENARY_TX" />
+ </path>
+
+ <path name="speaker-protected">
+ <ctl name="DEC3 MUX" value="DMIC3" />
+ <ctl name="DEC4 MUX" value="DMIC4" />
+ <path name="wsa-speaker" />
+ <ctl name="PRI_MI2S_RX_VI_FB_MUX" value="SENARY_TX" />
+ <ctl name="SpkrMono VISENSE Switch" value="1" />
+ </path>
+
+ <path name="voice-speaker-protected">
+ <path name="speaker-protected" />
+ </path>
+
+ <path name="speaker-mic">
+ <path name="adc1" />
+ <ctl name="IIR1 INP1 MUX" value="DEC1" />
+ </path>
+
+ <path name="handset">
+ <ctl name="RX1 MIX1 INP1" value="RX1" />
+ <ctl name="RDAC2 MUX" value="RX1" />
+ <ctl name="RX1 Digital Volume" value="84" />
+ <ctl name="EAR PA Gain" value="POS_6_DB" />
+ <ctl name="EAR_S" value="Switch" />
+ </path>
+
+ <path name="handset-mic">
+ <path name="adc1" />
+ <ctl name="IIR1 INP1 MUX" value="DEC1" />
+ </path>
+
+ <path name="headphones">
+ <ctl name="MI2S_RX Channels" value="Two" />
+ <ctl name="RX1 MIX1 INP1" value="RX1" />
+ <ctl name="RX2 MIX1 INP1" value="RX2" />
+ <ctl name="RDAC2 MUX" value="RX2" />
+ <ctl name="HPHL" value="Switch" />
+ <ctl name="HPHR" value="Switch" />
+ </path>
+
+ <path name="headset-mic">
+ <path name="adc2" />
+ <ctl name="ADC2 MUX" value="INP2" />
+ <ctl name="IIR1 INP1 MUX" value="DEC1" />
+ </path>
+
+ <path name="sidetone-iir">
+ <ctl name="IIR1 Enable Band1" value="1" />
+ <ctl name="IIR1 Enable Band2" value="1" />
+ <ctl name="IIR1 Enable Band3" value="1" />
+ <ctl name="IIR1 Enable Band4" value="1" />
+ <ctl name="IIR1 Enable Band5" value="1" />
+ </path>
+
+ <path name="sidetone-handset">
+ <path name="sidetone-iir" />
+ <ctl name="IIR1 INP1 Volume" value="53" />
+ <ctl name="RX1 MIX2 INP1" value="IIR1" />
+ </path>
+
+ <path name="sidetone-headphones">
+ <path name="sidetone-iir" />
+ <ctl name="RX1 MIX2 INP1" value="IIR1" />
+ <ctl name="RX2 MIX2 INP1" value="IIR1" />
+ <ctl name="IIR1 INP1 Volume" value="53" />
+ </path>
+
+
+ <path name="voice-handset">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-speaker">
+ <path name="speaker" />
+ </path>
+
+ <path name="wsa-voice-speaker">
+ <path name="wsa-speaker" />
+ </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" />
+ </path>
+
+ <path name="speaker-and-headphones">
+ <path name="speaker" />
+ <path name="headphones" />
+ </path>
+
+ <path name="wsa-speaker-and-headphones">
+ <path name="wsa-speaker" />
+ <path name="headphones" />
+ </path>
+
+ <path name="usb-headphones">
+ </path>
+
+ <path name="afe-proxy">
+ </path>
+
+ <path name="transmission-fm">
+ </path>
+
+ <path name="speaker-and-usb-headphones">
+ <path name="speaker" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="wsa-speaker-and-usb-headphones">
+ <path name="wsa-speaker" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="voice-rec-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="camcorder-mic">
+ <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="speaker-dmic-endfire">
+ <path name="adc1" />
+ <ctl name="ADC3 Volume" value="6" />
+ <ctl name="DEC2 MUX" value="ADC2" />
+ <ctl name="MI2S_TX Channels" value="Two" />
+ <ctl name="ADC2 MUX" value="INP3" />
+ </path>
+
+ <path name="dmic-endfire">
+ <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="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="handset-stereo-dmic-ef">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="speaker-stereo-dmic-ef">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="speaker-dmic-broadside">
+ <path name="adc1" />
+ <ctl name="ADC3 Volume" value="6" />
+ <ctl name="DEC2 MUX" value="ADC2" />
+ <ctl name="ADC2 MUX" value="INP3" />
+ <ctl name="MI2S_TX 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>
+
+ <path name="echo-reference">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="I2S_RX" />
+ </path>
+
+ <!-- TTY devices -->
+
+ <path name="tty-headphones">
+ <ctl name="RX1 MIX1 INP1" value="RX1" />
+ <ctl name="HPHL" value="Switch" />
+ </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 MUX" value="INP2" />
+ </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="adc1" />
+ </path>
+
+ <path name="unprocessed-handset-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="unprocessed-mic">
+ <path name="unprocessed-handset-mic" />
+ </path>
+
+ <path name="ADSP testfwk">
+ <ctl name="MI2S_DL_HL Switch" value="1" />
+ </path>
+
+ <path name="voice-rx">
+ </path>
+
+ <path name="voice-tx">
+ </path>
+
+ <path name="line">
+ <path name="headphones" />
+ </path>
+
+ <path name="voice-line">
+ <path name="voice-headphones" />
+ </path>
+
+ <path name="speaker-and-line">
+ <path name="speaker-and-headphones" />
+ </path>
+
+ <path name="wsa-speaker-and-line">
+ <path name="wsa-speaker-and-headphones" />
+ </path>
+
+</mixer>
diff --git a/configs/msm8937/msm8937.mk b/configs/msm8937/msm8937.mk
index 6200705..d2a0a15 100644
--- a/configs/msm8937/msm8937.mk
+++ b/configs/msm8937/msm8937.mk
@@ -57,6 +57,11 @@
BOARD_SUPPORTS_QAHW := true
AUDIO_FEATURE_ENABLED_DYNAMIC_LOG := true
AUDIO_FEATURE_ENABLED_SND_MONITOR := true
+ifeq ($(TARGET_KERNEL_VERSION), 3.18)
+ AUDIO_FEATURE_ENABLED_DLKM := false
+else
+ AUDIO_FEATURE_ENABLED_DLKM := true
+endif
##AUDIO_FEATURE_FLAGS
#Audio Specific device overlays
@@ -75,6 +80,7 @@
hardware/qcom/audio/configs/msm8937/audio_output_policy.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_output_policy.conf\
hardware/qcom/audio/configs/msm8937/audio_effects.conf:$(TARGET_COPY_OUT_VENDOR)/etc/audio_effects.conf\
hardware/qcom/audio/configs/msm8937/mixer_paths_mtp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_mtp.xml \
+hardware/qcom/audio/configs/msm8937/mixer_paths_sdm439_pm8953.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_sdm439_pm8953.xml \
hardware/qcom/audio/configs/msm8937/mixer_paths_qrd_skuh.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_qrd_skuh.xml \
hardware/qcom/audio/configs/msm8937/mixer_paths_qrd_skui.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_qrd_skui.xml \
hardware/qcom/audio/configs/msm8937/mixer_paths_qrd_skuhf.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_qrd_skuhf.xml \
@@ -228,6 +234,10 @@
PRODUCT_PROPERTY_OVERRIDES += \
ro.af.client_heap_size_kbyte=7168
+#Disable split a2dp
+PRODUCT_PROPERTY_OVERRIDES += \
+persist.vendor.bt.enable.splita2dp=false
+
# for HIDL related packages
PRODUCT_PACKAGES += \
android.hardware.audio@2.0-service \
diff --git a/configs/msm8953/audio_platform_info_extcodec.xml b/configs/msm8953/audio_platform_info_extcodec.xml
index ac0eabc..81d34c1 100644
--- a/configs/msm8953/audio_platform_info_extcodec.xml
+++ b/configs/msm8953/audio_platform_info_extcodec.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2016 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-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 -->
@@ -25,6 +25,12 @@
<!-- 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_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>
@@ -34,6 +40,11 @@
<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_PLAYBACK_OFFLOAD3" type="out" id="29"/>
@@ -50,6 +61,8 @@
<usecase name="USECASE_AUDIO_SPKR_CALIB_TX" type="in" id="37"/>
<usecase name="USECASE_QCHAT_CALL" type="in" id="42"/>
<usecase name="USECASE_QCHAT_CALL" type="out" id="42"/>
+ <usecase name="USECASE_AUDIO_EC_REF_LOOPBACK" type="in" id="12"/>
+ <usecase name="USECASE_AUDIO_PLAYBACK_SILENCE" type="out" id="12"/>
</pcm_ids>
<config_params>
<param key="spkr_1_tz_name" value="wsatz.11"/>
diff --git a/configs/msm8953/mixer_paths.xml b/configs/msm8953/mixer_paths.xml
index a20c6cf..4a771c2 100644
--- a/configs/msm8953/mixer_paths.xml
+++ b/configs/msm8953/mixer_paths.xml
@@ -267,6 +267,10 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-and-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>
@@ -305,6 +309,10 @@
<ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia5" value="1" />
</path>
+ <path name="low-latency-playback speaker-and-headphones">
+ <path name="low-latency-playback" />
+ </path>
+
<path name="audio-ull-playback">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia3" value="1" />
</path>
@@ -339,6 +347,10 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-and-headphones">
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="compress-offload-playback">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia4" value="1" />
</path>
@@ -368,6 +380,10 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-and-headphones">
+ <path name="compress-offload-playback" />
+ </path>
+
<path name="compress-offload-playback2">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia7" value="1" />
</path>
@@ -376,6 +392,10 @@
<ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia7" value="1" />
</path>
+ <path name="compress-offload-playback2 speaker-and-headphones">
+ <path name="compress-offload-playback2" />
+ </path>
+
<path name="compress-offload-playback transmission-fm">
<ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia4" value="1" />
</path>
@@ -388,6 +408,10 @@
<ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia10" value="1" />
</path>
+ <path name="compress-offload-playback3 speaker-and-headphones">
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback4">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia11" value="1" />
</path>
@@ -396,6 +420,11 @@
<ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia11" value="1" />
</path>
+
+ <path name="compress-offload-playback4 speaker-and-headphones">
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback5">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia12" value="1" />
</path>
@@ -404,6 +433,10 @@
<ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia12" value="1" />
</path>
+ <path name="compress-offload-playback5 speaker-and-headphones">
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback6">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia13" value="1" />
</path>
@@ -412,6 +445,10 @@
<ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia13" value="1" />
</path>
+ <path name="compress-offload-playback6 speaker-and-headphones">
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback7">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia14" value="1" />
</path>
@@ -420,6 +457,10 @@
<ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia14" value="1" />
</path>
+ <path name="compress-offload-playback7 speaker-and-headphones">
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="audio-record">
<ctl name="MultiMedia1 Mixer TERT_MI2S_TX" value="1" />
</path>
@@ -557,6 +598,10 @@
<ctl name="VoWLAN_Tx Mixer AFE_PCM_TX_VoWLAN" value="1" />
</path>
+ <path name="vowlan-call speaker-and-headphones">
+ <path name="vowlan-call" />
+ </path>
+
<path name="voicemmode1-call">
<ctl name="PRI_MI2S_RX_Voice Mixer VoiceMMode1" value="1" />
<ctl name="VoiceMMode1_Tx Mixer TERT_MI2S_TX_MMode1" value="1" />
@@ -581,6 +626,10 @@
<path name="voicemmode1-call usb-headphones" />
</path>
+ <path name="voicemmode1-call speaker-and-headphones">
+ <path name="voicemmode1-call" />
+ </path>
+
<path name="voicemmode2-call">
<ctl name="PRI_MI2S_RX_Voice Mixer VoiceMMode2" value="1" />
<ctl name="VoiceMMode2_Tx Mixer TERT_MI2S_TX_MMode2" value="1" />
@@ -605,6 +654,10 @@
<path name="voicemmode2-call usb-headphones" />
</path>
+ <path name="voicemmode2-call speaker-and-headphones">
+ <path name="voicemmode2-call" />
+ </path>
+
<path name="hfp-sco">
<ctl name="PRI_MI2S_RX Port Mixer INTERNAL_BT_SCO_TX" value="1" />
<ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia6" value="1" />
@@ -793,6 +846,10 @@
<path name="volte-call usb-headphones" />
</path>
+ <path name="volte-call speaker-and-headphones">
+ <path name="volte-call" />
+ </path>
+
<path name="compress-voip-call">
<ctl name="PRI_MI2S_RX_Voice Mixer Voip" value="1" />
<ctl name="Voip_Tx Mixer TERT_MI2S_TX_Voip" value="1" />
@@ -819,6 +876,10 @@
<ctl name="Voip_Tx Mixer AFE_PCM_TX_Voip" value='1' />
</path>
+ <path name="compress-voip-call speaker-and-headphones">
+ <path name="compress-voip-call" />
+ </path>
+
<path name="qchat-call">
<ctl name="PRI_MI2S_RX_Voice Mixer QCHAT" value="1" />
<ctl name="QCHAT_Tx Mixer TERT_MI2S_TX_QCHAT" value="1" />
diff --git a/configs/msm8953/mixer_paths_mtp.xml b/configs/msm8953/mixer_paths_mtp.xml
index c66821e..a7f4e21 100644
--- a/configs/msm8953/mixer_paths_mtp.xml
+++ b/configs/msm8953/mixer_paths_mtp.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
- Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
+ Copyright (c) 2015-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
@@ -303,6 +303,10 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-and-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>
@@ -350,6 +354,10 @@
<ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia5" value="1" />
</path>
+ <path name="low-latency-playback speaker-and-headphones">
+ <path name="low-latency-playback" />
+ </path>
+
<path name="audio-ull-playback">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia3" value="1" />
</path>
@@ -393,6 +401,10 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-and-headphones">
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="compress-offload-playback">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia4" value="1" />
</path>
@@ -431,6 +443,10 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-and-headphones">
+ <path name="compress-offload-playback" />
+ </path>
+
<path name="compress-offload-playback2">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia7" value="1" />
</path>
@@ -461,6 +477,10 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 speaker-and-headphones">
+ <path name="compress-offload-playback2" />
+ </path>
+
<path name="compress-offload-playback transmission-fm">
<ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia4" value="1" />
</path>
@@ -482,6 +502,10 @@
<path name="compress-offload-playback3" />
</path>
+ <path name="compress-offload-playback3 speaker-and-headphones">
+ <path name="compress-offload-playback3" />
+ </path>
+
<path name="compress-offload-playback4">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia11" value="1" />
</path>
@@ -499,6 +523,10 @@
<path name="compress-offload-playback4" />
</path>
+ <path name="compress-offload-playback4 speaker-and-headphones">
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback5">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia12" value="1" />
</path>
@@ -516,6 +544,10 @@
<path name="compress-offload-playback5" />
</path>
+ <path name="compress-offload-playback5 speaker-and-headphones">
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback6">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia13" value="1" />
</path>
@@ -533,6 +565,10 @@
<path name="compress-offload-playback6" />
</path>
+ <path name="compress-offload-playback6 speaker-and-headphones">
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback7">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia14" value="1" />
</path>
@@ -550,6 +586,10 @@
<path name="compress-offload-playback7" />
</path>
+ <path name="compress-offload-playback7 speaker-and-headphones">
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="audio-record">
<ctl name="MultiMedia1 Mixer TERT_MI2S_TX" value="1" />
</path>
@@ -687,6 +727,10 @@
<ctl name="VoWLAN_Tx Mixer AFE_PCM_TX_VoWLAN" value="1" />
</path>
+ <path name="vowlan-call speaker-and-headphones">
+ <path name="vowlan-call" />
+ </path>
+
<path name="voicemmode1-call">
<ctl name="PRI_MI2S_RX_Voice Mixer VoiceMMode1" value="1" />
<ctl name="VoiceMMode1_Tx Mixer TERT_MI2S_TX_MMode1" value="1" />
@@ -711,6 +755,10 @@
<path name="voicemmode1-call usb-headphones" />
</path>
+ <path name="voicemmode1-call speaker-and-headphones">
+ <path name="voicemmode1-call" />
+ </path>
+
<path name="voicemmode2-call">
<ctl name="PRI_MI2S_RX_Voice Mixer VoiceMMode2" value="1" />
<ctl name="VoiceMMode2_Tx Mixer TERT_MI2S_TX_MMode2" value="1" />
@@ -735,6 +783,10 @@
<path name="voicemmode2-call usb-headphones" />
</path>
+ <path name="voicemmode2-call speaker-and-headphones">
+ <path name="voicemmode2-call" />
+ </path>
+
<path name="hfp-sco">
<ctl name="PRI_MI2S_RX Port Mixer INTERNAL_BT_SCO_TX" value="1" />
<ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia6" value="1" />
@@ -923,6 +975,10 @@
<path name="volte-call usb-headphones" />
</path>
+ <path name="volte-call speaker-and-headphones">
+ <path name="volte-call" />
+ </path>
+
<path name="compress-voip-call">
<ctl name="PRI_MI2S_RX_Voice Mixer Voip" value="1" />
<ctl name="Voip_Tx Mixer TERT_MI2S_TX_Voip" value="1" />
@@ -949,6 +1005,10 @@
<ctl name="Voip_Tx Mixer AFE_PCM_TX_Voip" value='1' />
</path>
+ <path name="compress-voip-call speaker-and-headphones">
+ <path name="compress-voip-call" />
+ </path>
+
<path name="qchat-call">
<ctl name="PRI_MI2S_RX_Voice Mixer QCHAT" value="1" />
<ctl name="QCHAT_Tx Mixer TERT_MI2S_TX_QCHAT" value="1" />
@@ -1112,6 +1172,11 @@
<path name="headphones" />
</path>
+ <path name="voice-speaker-and-voice-headphones">
+ <path name="wsa-voice-speaker" />
+ <path name="voice-headphones" />
+ </path>
+
<path name="voice-headset-mic">
<path name="headset-mic" />
</path>
diff --git a/configs/msm8953/mixer_paths_qrd_skuh.xml b/configs/msm8953/mixer_paths_qrd_skuh.xml
index ebf9331..ff02427 100644
--- a/configs/msm8953/mixer_paths_qrd_skuh.xml
+++ b/configs/msm8953/mixer_paths_qrd_skuh.xml
@@ -238,6 +238,10 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-and-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>
@@ -272,6 +276,10 @@
<ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia5" value="1" />
</path>
+ <path name="low-latency-playback speaker-and-headphones">
+ <path name="low-latency-playback" />
+ </path>
+
<path name="audio-ull-playback">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia3" value="1" />
</path>
@@ -306,6 +314,10 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-and-headphones">
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="compress-offload-playback">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia4" value="1" />
</path>
@@ -336,6 +348,10 @@
<ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia4" value="1" />
</path>
+ <path name="compress-offload-playback speaker-and-headphones">
+ <path name="compress-offload-playback" />
+ </path>
+
<path name="audio-record">
<ctl name="MultiMedia1 Mixer TERT_MI2S_TX" value="1" />
</path>
@@ -389,6 +405,10 @@
<ctl name="Voice_Tx Mixer AFE_PCM_TX_Voice" value="1" />
</path>
+ <path name="voice-call speaker-and-headphones">
+ <path name="voice-call" />
+ </path>
+
<path name="voice2-call">
<ctl name="PRI_MI2S_RX_Voice Mixer Voice2" value="1" />
<ctl name="Voice2_Tx Mixer TERT_MI2S_TX_Voice2" value="1" />
@@ -409,6 +429,10 @@
<ctl name="Voice2_Tx Mixer AFE_PCM_TX_Voice2" value="1" />
</path>
+ <path name="voice2-call speaker-and-headphones">
+ <path name="voice2-call" />
+ </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" />
@@ -440,6 +464,10 @@
<ctl name="VoWLAN_Tx Mixer AFE_PCM_TX_VoWLAN" value="1" />
</path>
+ <path name="vowlan-call speaker-and-headphones">
+ <path name="vowlan-call" />
+ </path>
+
<path name="hfp-sco">
<ctl name="PRI_MI2S_RX Port Mixer INTERNAL_BT_SCO_TX" value="1" />
<ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia6" value="1" />
@@ -537,6 +565,10 @@
<path name="compress-voip-call bt-sco" />
</path>
+ <path name="compress-voip-call speaker-and-headphones">
+ <path name="compress-voip-call" />
+ </path>
+
<path name="listen-voice-wakeup-1">
<ctl name="LSM1 MUX" value="TERT_MI2S_TX" />
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
diff --git a/configs/msm8953/mixer_paths_qrd_skuhf.xml b/configs/msm8953/mixer_paths_qrd_skuhf.xml
index 1ece99d..4f707f6 100644
--- a/configs/msm8953/mixer_paths_qrd_skuhf.xml
+++ b/configs/msm8953/mixer_paths_qrd_skuhf.xml
@@ -237,6 +237,10 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-and-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>
@@ -270,6 +274,10 @@
<ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia5" value="1" />
</path>
+ <path name="low-latency-playback speaker-and-headphones">
+ <path name="low-latency-playback" />
+ </path>
+
<path name="audio-ull-playback">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia3" value="1" />
</path>
@@ -304,6 +312,10 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-and-headphones">
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="compress-offload-playback">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia4" value="1" />
</path>
@@ -330,6 +342,10 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-and-headphones">
+ <path name="compress-offload-playback" />
+ </path>
+
<path name="compress-offload-playback transmission-fm">
<ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia4" value="1" />
</path>
@@ -387,6 +403,10 @@
<ctl name="Voice_Tx Mixer AFE_PCM_TX_Voice" value="1" />
</path>
+ <path name="voice-call speaker-and-headphones">
+ <path name="voice-call" />
+ </path>
+
<path name="voice2-call">
<ctl name="PRI_MI2S_RX_Voice Mixer Voice2" value="1" />
<ctl name="Voice2_Tx Mixer TERT_MI2S_TX_Voice2" value="1" />
@@ -407,6 +427,10 @@
<ctl name="Voice2_Tx Mixer AFE_PCM_TX_Voice2" value="1" />
</path>
+ <path name="voice2-call speaker-and-headphones">
+ <path name="voice2-call" />
+ </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" />
@@ -438,6 +462,10 @@
<ctl name="VoWLAN_Tx Mixer AFE_PCM_TX_VoWLAN" value="1" />
</path>
+ <path name="vowlan-call speaker-and-headphones">
+ <path name="vowlan-call" />
+ </path>
+
<path name="hfp-sco">
<ctl name="PRI_MI2S_RX Port Mixer INTERNAL_BT_SCO_TX" value="1" />
<ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia6" value="1" />
@@ -520,6 +548,10 @@
<ctl name="VoLTE_Tx Mixer AFE_PCM_TX_VoLTE" value="1" />
</path>
+ <path name="volte-call speaker-and-headphones">
+ <path name="volte-call" />
+ </path>
+
<path name="compress-voip-call">
<ctl name="PRI_MI2S_RX_Voice Mixer Voip" value="1" />
<ctl name="Voip_Tx Mixer TERT_MI2S_TX_Voip" value="1" />
@@ -535,6 +567,10 @@
<path name="compress-voip-call bt-sco" />
</path>
+ <path name="compress-voip-call speaker-and-headphones">
+ <path name="compress-voip-call" />
+ </path>
+
<path name="listen-voice-wakeup-1">
<ctl name="LSM1 MUX" value="TERT_MI2S_TX" />
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
diff --git a/configs/msm8953/mixer_paths_qrd_skui.xml b/configs/msm8953/mixer_paths_qrd_skui.xml
index ebf9331..d62b197 100644
--- a/configs/msm8953/mixer_paths_qrd_skui.xml
+++ b/configs/msm8953/mixer_paths_qrd_skui.xml
@@ -238,6 +238,10 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-and-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>
@@ -272,6 +276,10 @@
<ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia5" value="1" />
</path>
+ <path name="low-latency-playback speaker-and-headphones">
+ <path name="low-latency-playback" />
+ </path>
+
<path name="audio-ull-playback">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia3" value="1" />
</path>
@@ -306,6 +314,10 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-and-headphones">
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="compress-offload-playback">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia4" value="1" />
</path>
@@ -336,6 +348,10 @@
<ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia4" value="1" />
</path>
+ <path name="compress-offload-playback speaker-and-headphones">
+ <path name="compress-offload-playback" />
+ </path>
+
<path name="audio-record">
<ctl name="MultiMedia1 Mixer TERT_MI2S_TX" value="1" />
</path>
@@ -389,6 +405,9 @@
<ctl name="Voice_Tx Mixer AFE_PCM_TX_Voice" value="1" />
</path>
+ <path name="voice-call speaker-and-headphones">
+ <path name="voice-call" />
+ </path>
<path name="voice2-call">
<ctl name="PRI_MI2S_RX_Voice Mixer Voice2" value="1" />
<ctl name="Voice2_Tx Mixer TERT_MI2S_TX_Voice2" value="1" />
@@ -409,6 +428,10 @@
<ctl name="Voice2_Tx Mixer AFE_PCM_TX_Voice2" value="1" />
</path>
+ <path name="voice2-call speaker-and-headphones">
+ <path name="voice2-call" />
+ </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" />
@@ -440,6 +463,10 @@
<ctl name="VoWLAN_Tx Mixer AFE_PCM_TX_VoWLAN" value="1" />
</path>
+ <path name="vowlan-call speaker-and-headphones">
+ <path name="vowlan-call" />
+ </path>
+
<path name="hfp-sco">
<ctl name="PRI_MI2S_RX Port Mixer INTERNAL_BT_SCO_TX" value="1" />
<ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia6" value="1" />
@@ -522,6 +549,10 @@
<ctl name="VoLTE_Tx Mixer AFE_PCM_TX_VoLTE" value="1" />
</path>
+ <path name="volte-call speaker-and-headphones">
+ <path name="volte-call" />
+ </path>
+
<path name="compress-voip-call">
<ctl name="PRI_MI2S_RX_Voice Mixer Voip" value="1" />
<ctl name="Voip_Tx Mixer TERT_MI2S_TX_Voip" value="1" />
@@ -537,6 +568,10 @@
<path name="compress-voip-call bt-sco" />
</path>
+ <path name="compress-voip-call speaker-and-headphones">
+ <path name="compress-voip-call" />
+ </path>
+
<path name="listen-voice-wakeup-1">
<ctl name="LSM1 MUX" value="TERT_MI2S_TX" />
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
diff --git a/configs/msm8953/mixer_paths_qrd_skum.xml b/configs/msm8953/mixer_paths_qrd_skum.xml
index d504456..e778d55 100644
--- a/configs/msm8953/mixer_paths_qrd_skum.xml
+++ b/configs/msm8953/mixer_paths_qrd_skum.xml
@@ -253,6 +253,10 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-and-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>
@@ -291,6 +295,10 @@
<ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia5" value="1" />
</path>
+ <path name="low-latency-playback speaker-and-headphones">
+ <path name="low-latency-playback" />
+ </path>
+
<path name="audio-ull-playback">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia3" value="1" />
</path>
@@ -325,6 +333,10 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-and-headphones">
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="compress-offload-playback">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia4" value="1" />
</path>
@@ -354,6 +366,10 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-and-headphones">
+ <path name="compress-offload-playback" />
+ </path>
+
<path name="compress-offload-playback2">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia7" value="1" />
</path>
@@ -388,6 +404,10 @@
<path name="compress-offload-playback2" />
</path>
+ <path name="compress-offload-playback2 speaker-and-headphones">
+ <path name="compress-offload-playback2" />
+ </path>
+
<path name="compress-offload-playback3">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia10" value="1" />
</path>
@@ -404,6 +424,10 @@
<ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia11" value="1" />
</path>
+ <path name="compress-offload-playback4 speaker-and-headphones">
+ <path name="compress-offload-playback4" />
+ </path>
+
<path name="compress-offload-playback5">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia12" value="1" />
</path>
@@ -412,6 +436,10 @@
<ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia12" value="1" />
</path>
+ <path name="compress-offload-playback5 speaker-and-headphones">
+ <path name="compress-offload-playback5" />
+ </path>
+
<path name="compress-offload-playback6">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia13" value="1" />
</path>
@@ -420,6 +448,10 @@
<ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia13" value="1" />
</path>
+ <path name="compress-offload-playback6 speaker-and-headphones">
+ <path name="compress-offload-playback6" />
+ </path>
+
<path name="compress-offload-playback7">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia14" value="1" />
</path>
@@ -428,6 +460,10 @@
<ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia14" value="1" />
</path>
+ <path name="compress-offload-playback7 speaker-and-headphones">
+ <path name="compress-offload-playback7" />
+ </path>
+
<path name="audio-record">
<ctl name="MultiMedia1 Mixer TERT_MI2S_TX" value="1" />
</path>
@@ -536,6 +572,10 @@
<path name="voicemmode1-call usb-headphones" />
</path>
+ <path name="voicemmode1-call speaker-and-headphones">
+ <path name="voicemmode1-call" />
+ </path>
+
<path name="voicemmode2-call">
<ctl name="PRI_MI2S_RX_Voice Mixer VoiceMMode2" value="1" />
<ctl name="VoiceMMode2_Tx Mixer TERT_MI2S_TX_MMode2" value="1" />
@@ -645,6 +685,10 @@
<path name="volte-call usb-headphones" />
</path>
+ <path name="volte-call speaker-and-headphones">
+ <path name="volte-call" />
+ </path>
+
<path name="compress-voip-call">
<ctl name="PRI_MI2S_RX_Voice Mixer Voip" value="1" />
<ctl name="Voip_Tx Mixer TERT_MI2S_TX_Voip" value="1" />
@@ -671,6 +715,10 @@
<path name="afe-proxy-record afe-proxy">
</path>
+ <path name="compress-voip-call speaker-and-headphones">
+ <path name="compress-voip-call" />
+ </path>
+
<path name="qchat-call">
<ctl name="PRI_MI2S_RX_Voice Mixer QCHAT" value="1" />
<ctl name="QCHAT_Tx Mixer TERT_MI2S_TX_QCHAT" value="1" />
diff --git a/configs/msm8953/mixer_paths_skuk.xml b/configs/msm8953/mixer_paths_skuk.xml
index 1538275..741e48d 100644
--- a/configs/msm8953/mixer_paths_skuk.xml
+++ b/configs/msm8953/mixer_paths_skuk.xml
@@ -237,6 +237,10 @@
<path name="deep-buffer-playback" />
</path>
+ <path name="deep-buffer-playback speaker-and-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>
@@ -270,6 +274,10 @@
<ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia5" value="1" />
</path>
+ <path name="low-latency-playback speaker-and-headphones">
+ <path name="low-latency-playback" />
+ </path>
+
<path name="audio-ull-playback">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia3" value="1" />
</path>
@@ -300,6 +308,10 @@
<path name="audio-ull-playback" />
</path>
+ <path name="audio-ull-playback speaker-and-headphones">
+ <path name="audio-ull-playback" />
+ </path>
+
<path name="compress-offload-playback">
<ctl name="PRI_MI2S_RX Audio Mixer MultiMedia4" value="1" />
</path>
@@ -326,6 +338,10 @@
<path name="compress-offload-playback" />
</path>
+ <path name="compress-offload-playback speaker-and-headphones">
+ <path name="compress-offload-playback" />
+ </path>
+
<path name="compress-offload-playback transmission-fm">
<ctl name="INTERNAL_FM_RX Audio Mixer MultiMedia4" value="1" />
</path>
@@ -383,6 +399,10 @@
<ctl name="Voice_Tx Mixer AFE_PCM_TX_Voice" value="1" />
</path>
+ <path name="voice-call speaker-and-headphones">
+ <path name="voice-call" />
+ </path>
+
<path name="voice2-call">
<ctl name="PRI_MI2S_RX_Voice Mixer Voice2" value="1" />
<ctl name="Voice2_Tx Mixer TERT_MI2S_TX_Voice2" value="1" />
@@ -403,6 +423,10 @@
<ctl name="Voice2_Tx Mixer AFE_PCM_TX_Voice2" value="1" />
</path>
+ <path name="voice2-call speaker-and-headphones">
+ <path name="voice2-call" />
+ </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" />
@@ -434,6 +458,10 @@
<ctl name="VoWLAN_Tx Mixer AFE_PCM_TX_VoWLAN" value="1" />
</path>
+ <path name="vowlan-call speaker-and-headphones">
+ <path name="vowlan-call" />
+ </path>
+
<path name="hfp-sco">
<ctl name="PRI_MI2S_RX Port Mixer INTERNAL_BT_SCO_TX" value="1" />
<ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia6" value="1" />
@@ -516,6 +544,10 @@
<ctl name="VoLTE_Tx Mixer AFE_PCM_TX_VoLTE" value="1" />
</path>
+ <path name="volte-call speaker-and-headphones">
+ <path name="volte-call" />
+ </path>
+
<path name="compress-voip-call">
<ctl name="PRI_MI2S_RX_Voice Mixer Voip" value="1" />
<ctl name="Voip_Tx Mixer TERT_MI2S_TX_Voip" value="1" />
@@ -531,6 +563,10 @@
<path name="compress-voip-call bt-sco" />
</path>
+ <path name="compress-voip-call speaker-and-headphones">
+ <path name="compress-voip-call" />
+ </path>
+
<path name="listen-voice-wakeup-1">
<ctl name="LSM1 MUX" value="TERT_MI2S_TX" />
<ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
diff --git a/configs/msm8953/mixer_paths_wcd9335.xml b/configs/msm8953/mixer_paths_wcd9335.xml
index 1eb65b9..5b53ff3 100644
--- a/configs/msm8953/mixer_paths_wcd9335.xml
+++ b/configs/msm8953/mixer_paths_wcd9335.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-16, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-16, 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 -->
@@ -563,6 +563,8 @@
<ctl name="SLIMBUS_DL_HL Switch" value="0" />
<ctl name="SLIMBUS6_DL_HL Switch" value="0" />
<!-- ADSP testfwk end-->
+ <ctl name="MultiMedia5 Mixer SLIM_2_TX" value="0" />
+ <ctl name="PCM_Dev 12 Topology Capture" value="DTS" />
<!-- These are audio route (FE to BE) specific mixer settings -->
<path name="deep-buffer-playback">
@@ -2483,4 +2485,119 @@
<path name="speaker-and-headphones" />
</path>
+
+ <path name="ec-ref-audio-capture">
+ <ctl name="PCM_Dev 12 Topology Capture" value="LEGACY" />
+ <ctl name="MultiMedia5 Mixer SLIM_2_TX" value="1" />
+ </path>
+
+ <path name="handset-6mic">
+ <ctl name="AIF1_CAP Mixer SLIM TX1" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX2" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX3" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX4" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX5" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX6" value="1" />
+ <ctl name="SLIM_0_TX Channels" value="Six" />
+ <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="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="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="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="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="SLIM TX6 MUX" value="DEC6" />
+ <ctl name="ADC MUX6" value="DMIC" />
+ <ctl name="DMIC MUX6" value="DMIC3" />
+ <ctl name="DEC6 Volume" value="96" />
+ </path>
+
+ <path name="handset-8mic">
+ <ctl name="AIF1_CAP Mixer SLIM TX1" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX2" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX3" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX4" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX5" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX6" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
+ <ctl name="SLIM_0_TX Channels" value="Eight" />
+ <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="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="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="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="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="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="SLIM TX7 MUX" value="RX_MIX_TX7"/>
+ <ctl name="RX MIX TX7 MUX" value="RX_MIX7"/>
+ <ctl name="SLIM TX8 MUX" value="RX_MIX_TX8"/>
+ <ctl name="RX MIX TX8 MUX" value="RX_MIX8"/>
+ </path>
+
+ <path name="ec-ref-loopback-mono">
+ <ctl name="SLIM_2_TX Channels" value="One" />
+ <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
+ <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
+ <ctl name="RX MIX TX7 MUX" value="RX_MIX7"/>
+ </path>
+
+ <path name="ec-ref-loopback-stereo">
+ <ctl name="SLIM_2_TX Channels" value="Two" />
+ <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
+ <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
+ <ctl name="RX MIX TX7 MUX" value="RX_MIX7"/>
+ <ctl name="AIF4_CAP Mixer SLIM TX8" value ="1"/>
+ <ctl name="SLIM TX8 MUX" value="RX_MIX_TX8"/>
+ <ctl name="RX MIX TX8 MUX" value="RX_MIX8"/>
+ </path>
+
+ <path name="ec-ref-loopback-mono lineout">
+ <ctl name="SLIM_2_TX Channels" value="One" />
+ <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
+ <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
+ <ctl name="RX MIX TX7 MUX" value="RX_MIX5"/>
+ </path>
+
+ <path name="ec-ref-loopback-stereo lineout">
+ <ctl name="SLIM_2_TX Channels" value="Two" />
+ <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
+ <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
+ <ctl name="RX MIX TX7 MUX" value="RX_MIX5"/>
+ <ctl name="AIF4_CAP Mixer SLIM TX8" value ="1"/>
+ <ctl name="SLIM TX8 MUX" value="RX_MIX_TX8"/>
+ <ctl name="RX MIX TX8 MUX" value="RX_MIX6"/>
+ </path>
+
</mixer>
diff --git a/configs/msm8953/msm8953.mk b/configs/msm8953/msm8953.mk
index 068317d..1e51212 100644
--- a/configs/msm8953/msm8953.mk
+++ b/configs/msm8953/msm8953.mk
@@ -10,7 +10,7 @@
AUDIO_FEATURE_ENABLED_COMPRESS_VOIP := true
AUDIO_FEATURE_ENABLED_EXTN_FORMATS := true
AUDIO_FEATURE_ENABLED_EXTN_FLAC_DECODER := true
-AUDIO_FEATURE_ENABLED_EXTN_RESAMPLER := true
+AUDIO_FEATURE_ENABLED_EXTN_RESAMPLER := false
AUDIO_FEATURE_ENABLED_FM_POWER_OPT := true
AUDIO_FEATURE_ENABLED_PCM_OFFLOAD := true
AUDIO_FEATURE_ENABLED_PCM_OFFLOAD_24 := true
@@ -34,6 +34,10 @@
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_USE_LL_AS_PRIMARY_OUTPUT := true
AUDIO_FEATURE_ENABLED_HIFI_AUDIO := true
AUDIO_FEATURE_ENABLED_VBAT_MONITOR := true
@@ -57,6 +61,11 @@
BOARD_SUPPORTS_QAHW := true
AUDIO_FEATURE_ENABLED_DYNAMIC_LOG := true
AUDIO_FEATURE_ENABLED_SND_MONITOR := true
+ifeq ($(TARGET_KERNEL_VERSION), 3.18)
+ AUDIO_FEATURE_ENABLED_DLKM := false
+else
+ AUDIO_FEATURE_ENABLED_DLKM := true
+endif
##AUDIO_FEATURE_FLAGS
#Audio Specific device overlays
@@ -119,7 +128,10 @@
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio_hal.period_size=192
-##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\
@@ -227,6 +239,10 @@
PRODUCT_PROPERTY_OVERRIDES += \
ro.af.client_heap_size_kbyte=7168
+#Disable split a2dp
+PRODUCT_PROPERTY_OVERRIDES += \
+persist.vendor.bt.enable.splita2dp=false
+
# for HIDL related packages
PRODUCT_PACKAGES += \
android.hardware.audio@2.0-service \
diff --git a/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml b/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml
index c1b6097..1756772 100644
--- a/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml
+++ b/configs/msm8953/sound_trigger_mixer_paths_wcd9335.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
@@ -53,23 +53,52 @@
<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="SLIM TX8 MUX" value="ZERO" />
+ <ctl name="SLIM TX7 MUX" value="ZERO" />
+ <ctl name="SLIM TX6 MUX" value="ZERO" />
+ <ctl name="SLIM TX5 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="CLK MODE" value="EXTERNAL" />
<ctl name="EC BUF MUX INP" value="ZERO" />
<ctl name="ADC MUX1" value="DMIC" />
<ctl name="DMIC MUX1" value="ZERO" />
+ <ctl name="ADC MUX1" value="AMIC" />
+ <ctl name="ADC MUX2" value="AMIC" />
+ <ctl name="ADC MUX3" value="AMIC" />
+ <ctl name="ADC MUX4" value="AMIC" />
<ctl name="ADC MUX5" value="AMIC" />
<ctl name="ADC MUX6" value="AMIC" />
<ctl name="ADC MUX7" value="AMIC" />
<ctl name="ADC MUX8" value="AMIC" />
+ <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="RX MIX TX7 MUX" value="ZERO" />
+ <ctl name="RX MIX TX8 MUX" value="ZERO" />
+ <ctl name="SLIM_0_TX Channels" value="One" />
+ <ctl name="SLIM_2_TX Channels" value="One" />
<ctl name="IIR0 INP0 MUX" value="ZERO" />
+ <ctl name="AIF1_CAP Mixer SLIM TX1" value="0" />
+ <ctl name="AIF1_CAP Mixer SLIM TX2" value="0" />
+ <ctl name="AIF1_CAP Mixer SLIM TX3" value="0" />
+ <ctl name="AIF1_CAP Mixer SLIM TX4" value="0" />
<ctl name="AIF1_CAP Mixer SLIM TX5" value="0" />
<ctl name="AIF1_CAP Mixer SLIM TX6" value="0" />
<ctl name="AIF1_CAP Mixer SLIM TX7" value="0" />
<ctl name="AIF1_CAP Mixer SLIM TX8" value="0" />
+ <ctl name="AIF4_CAP Mixer SLIM TX8" value="0" />
+ <ctl name="AIF4_CAP Mixer SLIM TX7" value="0" />
+
+ <ctl name="MultiMedia2 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia9 Mixer SLIM_2_TX" value="0" />
<path name="listen-voice-wakeup-1">
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
@@ -161,6 +190,14 @@
<ctl name="LSM8 Mixer SLIMBUS_0_TX" value="1" />
</path>
+ <path name="audio-capture">
+ <ctl name="MultiMedia2 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="ec-ref-audio-capture">
+ <ctl name="MultiMedia9 Mixer SLIM_2_TX" value="1" />
+ </path>
+
<path name="listen-cpe-handset-mic">
<ctl name="MADONOFF Switch" value="1" />
<ctl name="TX13 INP MUX" value="CPE_TX_PP" />
@@ -248,6 +285,115 @@
<ctl name="DMIC MUX7" value="DMIC4" />
</path>
+ <path name="listen-handset-6mic">
+ <ctl name="AIF1_CAP Mixer SLIM TX1" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX2" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX3" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX4" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX5" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX6" value="1" />
+ <ctl name="SLIM_0_TX Channels" value="Six" />
+ <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="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="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="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="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="SLIM TX6 MUX" value="DEC6" />
+ <ctl name="ADC MUX6" value="DMIC" />
+ <ctl name="DMIC MUX6" value="DMIC3" />
+ <ctl name="DEC6 Volume" value="96" />
+ </path>
+
+ <path name="listen-handset-8mic">
+ <ctl name="AIF1_CAP Mixer SLIM TX1" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX2" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX3" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX4" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX5" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX6" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
+ <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
+ <ctl name="SLIM_0_TX Channels" value="Eight" />
+ <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="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="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="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="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="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="SLIM TX7 MUX" value="RX_MIX_TX7"/>
+ <ctl name="RX MIX TX7 MUX" value="RX_MIX7"/>
+ <ctl name="SLIM TX8 MUX" value="RX_MIX_TX8"/>
+ <ctl name="RX MIX TX8 MUX" value="RX_MIX8"/>
+ </path>
+
+ <path name="ec-ref-loopback-mono">
+ <ctl name="SLIM_2_TX Channels" value="One" />
+ <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
+ <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
+ <ctl name="RX MIX TX7 MUX" value="RX_MIX7"/>
+ </path>
+
+ <path name="ec-ref-loopback-stereo">
+ <ctl name="SLIM_2_TX Channels" value="Two" />
+ <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
+ <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
+ <ctl name="RX MIX TX7 MUX" value="RX_MIX7"/>
+ <ctl name="AIF4_CAP Mixer SLIM TX8" value ="1"/>
+ <ctl name="SLIM TX8 MUX" value="RX_MIX_TX8"/>
+ <ctl name="RX MIX TX8 MUX" value="RX_MIX8"/>
+ </path>
+
+ <path name="ec-ref-loopback-mono lineout">
+ <ctl name="SLIM_2_TX Channels" value="One" />
+ <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
+ <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
+ <ctl name="RX MIX TX7 MUX" value="RX_MIX5"/>
+ </path>
+
+ <path name="ec-ref-loopback-stereo lineout">
+ <ctl name="SLIM_2_TX Channels" value="Two" />
+ <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
+ <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
+ <ctl name="RX MIX TX7 MUX" value="RX_MIX5"/>
+ <ctl name="AIF4_CAP Mixer SLIM TX8" value ="1"/>
+ <ctl name="SLIM TX8 MUX" value="RX_MIX_TX8"/>
+ <ctl name="RX MIX TX8 MUX" value="RX_MIX6"/>
+ </path>
+
<path name="echo-reference">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_RX" />
<ctl name="EC Reference Channels" value="Two"/>
diff --git a/configs/msm8953/sound_trigger_platform_info.xml b/configs/msm8953/sound_trigger_platform_info.xml
index a1f70a0..0925931 100644
--- a/configs/msm8953/sound_trigger_platform_info.xml
+++ b/configs/msm8953/sound_trigger_platform_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--- Copyright (c) 2013-2017, The Linux Foundation. All rights reserved. -->
+<!--- Copyright (c) 2013-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 -->
@@ -54,6 +54,8 @@
<param DEVICE_HANDSET_QMIC_APE="150" />
<param DEVICE_HANDSET_DMIC_APE="149" />
<param DEVICE_HANDSET_TMIC_APE="152" />
+ <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 -->
@@ -90,6 +92,24 @@
<param client_capture_read_delay="2000" />
</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>
@@ -105,6 +125,4 @@
<param sample_rate="16000" />
<param bit_width="16" />
</adm_config>
-
</sound_trigger_platform_info>
-
diff --git a/configs/msmnile/msmnile.mk b/configs/msmnile/msmnile.mk
index 9bb0ab7..1ebe601 100644
--- a/configs/msmnile/msmnile.mk
+++ b/configs/msmnile/msmnile.mk
@@ -63,6 +63,7 @@
BOARD_SUPPORTS_QAHW := false
AUDIO_FEATURE_ENABLED_RAS := true
AUDIO_FEATURE_ENABLED_SND_MONITOR := true
+AUDIO_FEATURE_ENABLED_DLKM := true
##AUDIO_FEATURE_FLAGS
#Audio Specific device overlays
diff --git a/configs/sdm670/audio_output_policy.conf b/configs/sdm670/audio_output_policy.conf
index f3dc620..48036bb 100644
--- a/configs/sdm670/audio_output_policy.conf
+++ b/configs/sdm670/audio_output_policy.conf
@@ -99,11 +99,19 @@
bit_width 24
app_type 69945
}
+ record_fluence2 {
+ flags AUDIO_INPUT_FLAG_NONE
+ profile record_fluence
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 16000|48000
+ bit_width 16
+ app_type 69944
+ }
record_fluence1 {
flags AUDIO_INPUT_FLAG_COMPRESS
profile record_fluence
formats AUDIO_FORMAT_PCM_16_BIT
- sampling_rates 48000
+ sampling_rates 16000|48000
bit_width 16
app_type 69944
}
@@ -111,7 +119,7 @@
flags AUDIO_INPUT_FLAG_TIMESTAMP
profile record_fluence
formats AUDIO_FORMAT_PCM_16_BIT
- sampling_rates 48000
+ sampling_rates 16000|48000
bit_width 16
app_type 69944
}
@@ -131,4 +139,20 @@
bit_width 24
app_type 69950
}
+ record_ambisonic_compress_16 {
+ profile record_ambisonic
+ flags AUDIO_INPUT_FLAG_COMPRESS
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 48000
+ bit_width 16
+ app_type 69949
+ }
+ record_ambisonic_compress_24 {
+ profile record_ambisonic
+ flags AUDIO_INPUT_FLAG_COMPRESS
+ formats AUDIO_FORMAT_PCM_24_BIT_PACKED
+ sampling_rates 48000
+ bit_width 24
+ app_type 69950
+ }
}
diff --git a/configs/sdm670/audio_platform_info.xml b/configs/sdm670/audio_platform_info.xml
index dceed57..c670695 100755
--- a/configs/sdm670/audio_platform_info.xml
+++ b/configs/sdm670/audio_platform_info.xml
@@ -46,6 +46,7 @@
<device name="SND_DEVICE_IN_UNPROCESSED_THREE_MIC" acdb_id="145"/>
<device name="SND_DEVICE_IN_UNPROCESSED_QUAD_MIC" acdb_id="146"/>
<device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" acdb_id="147"/>
+ <device name="SND_DEVICE_IN_HANDSET_GENERIC_QMIC" acdb_id="148"/>
</acdb_ids>
<module_ids>
<aec>
@@ -87,7 +88,7 @@
<usecase name="USECASE_AUDIO_PLAYBACK_FM" type="out" id="5"/>
<usecase name="USECASE_AUDIO_PLAYBACK_FM" type="in" id="34"/>
<usecase name="USECASE_AUDIO_SPKR_CALIB_RX" type="out" id="5"/>
- <usecase name="USECASE_AUDIO_SPKR_CALIB_TX" type="in" id="37"/>
+ <usecase name="USECASE_AUDIO_SPKR_CALIB_TX" type="in" id="42"/>
<usecase name="USECASE_AUDIO_PLAYBACK_AFE_PROXY" type="out" id="6"/>
<usecase name="USECASE_AUDIO_RECORD_AFE_PROXY" type="in" id="7"/>
<usecase name="USECASE_AUDIO_RECORD_LOW_LATENCY" type="in" id="17" />
@@ -99,6 +100,11 @@
<usecase name="USECASE_AUDIO_HFP_SCO_WB" type="in" id="35" />
<usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="16" />
<usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="16" />
+ <usecase name="USECASE_AUDIO_RECORD_COMPRESS2" type="in" id="37"/>
+ <usecase name="USECASE_AUDIO_RECORD_COMPRESS3" type="in" id="38"/>
+ <usecase name="USECASE_AUDIO_RECORD_COMPRESS4" type="in" id="39"/>
+ <usecase name="USECASE_AUDIO_RECORD_COMPRESS5" type="in" id="40"/>
+ <usecase name="USECASE_AUDIO_RECORD_COMPRESS6" type="in" id="41"/>
</pcm_ids>
<config_params>
<param key="spkr_1_tz_name" value="wsatz.13"/>
diff --git a/configs/sdm670/audio_platform_info_skuw.xml b/configs/sdm670/audio_platform_info_skuw.xml
index d8d1f78..0d197c5 100755
--- a/configs/sdm670/audio_platform_info_skuw.xml
+++ b/configs/sdm670/audio_platform_info_skuw.xml
@@ -67,8 +67,8 @@
<config_params>
<!-- In the below value string, the value indicates default mono -->
<!-- speaker. It can be set to either left or right -->
- <param key="spkr_1_tz_name" value="wsatz.13"/>
- <param key="spkr_2_tz_name" value="wsatz.14"/>
+ <param key="spkr_1_tz_name" value="wsatz.11"/>
+ <param key="spkr_2_tz_name" value="wsatz.12"/>
<param key="true_32_bit" value="true"/>
<param key="native_audio_mode" value="true"/>
<param key="hfp_pcm_dev_id" value="39"/>
diff --git a/configs/sdm670/mixer_paths_lc.xml b/configs/sdm670/mixer_paths_lc.xml
new file mode 100644
index 0000000..471919e
--- /dev/null
+++ b/configs/sdm670/mixer_paths_lc.xml
@@ -0,0 +1,2458 @@
+<?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, -->
+<!-- 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="INT4_MI2S_RX Port Mixer INT3_MI2S_TX" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia7" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia8" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia11" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia12" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia13" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia14" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia15" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="0" />
+ <ctl name="INT0_MI2S_RX Port Mixer INT3_MI2S_TX" value="0" />
+ <ctl name="MultiMedia5 Mixer INT3_MI2S_TX" value="0" />
+ <ctl name="MultiMedia5 Mixer AFE_PCM_TX" value="0" />
+ <ctl name="MultiMedia5 Mixer SLIM_8_TX" value="0" />
+ <ctl name="MultiMedia5 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia1 Mixer INT3_MI2S_TX" value="0" />
+ <ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer INT3_MI2S_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer INT3_MI2S_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia1" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia2" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia3" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia4" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia5" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia6" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia7" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia8" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia9" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia10" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia11" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia12" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia13" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia14" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia15" value="0" />
+ <ctl name="DISPLAY_PORT Mixer MultiMedia16" value="0" />
+ <ctl name="Display Port RX Bit Format" value="S16_LE" />
+ <ctl name="Display Port RX SampleRate" value="KHZ_48" />
+ <ctl name="Display Port RX Channels" value="Two" />
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia2" value="0" />
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia2" value="0" />
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia3" value="0" />
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia3" value="0" />
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia7" value="0" />
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia7" value="0" />
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia8" value="0" />
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia8" value="0" />
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia11" value="0" />
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia11" value="0" />
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia12" value="0" />
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia12" value="0" />
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia13" value="0" />
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia13" value="0" />
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia14" value="0" />
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia14" value="0" />
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia15" value="0" />
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia15" value="0" />
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia16" value="0" />
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia16" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia2" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia3" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia7" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia11" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia12" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia13" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia14" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia15" value="0" />
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="0" />
+ <ctl name="USB_AUDIO_RX Format" value="S16_LE" />
+ <ctl name="USB_AUDIO_RX SampleRate" value="KHZ_48" />
+ <ctl name="USB_AUDIO_RX Channels" value="Two" />
+ <ctl name="MultiMedia1 Mixer USB_AUDIO_TX" value="0" />
+ <ctl name="MultiMedia2 Mixer USB_AUDIO_TX" value="0" />
+ <ctl name="MultiMedia5 Mixer USB_AUDIO_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer USB_AUDIO_TX" value="0" />
+ <ctl name="USB_AUDIO_TX Format" value="S16_LE" />
+ <ctl name="USB_AUDIO_TX SampleRate" value="KHZ_48" />
+ <ctl name="USB_AUDIO_TX Channels" value="One" />
+ <ctl name="ADC1_INP1 Switch" value="0" />
+ <ctl name="MultiMedia6 Mixer INT3_MI2S_TX" value="0" />
+ <ctl name="INT4_MI2S_RX Channels" value="One" />
+ <ctl name="INT0_MI2S_RX Channels" value="One" />
+ <ctl name="INT3_MI2S_TX Channels" value="One" />
+ <ctl name="I2S TX2 INP1" value="ZERO" />
+ <ctl name="I2S TX2 INP2" value="ZERO" />
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="INT4_MI2S_RX_VI_FB_MONO_CH_MUX" value="ZERO" />
+ <ctl name="INT4_MI2S_RX_VI_FB_STEREO_CH_MUX" value="ZERO" />
+ <ctl name="VI_FEED_TX Channels" value="One" />
+ <ctl name="AIF1_VI_SDW Mixer SPKR_VI_1" value="0" />
+ <ctl name="AIF1_VI_SDW Mixer SPKR_VI_2" value="0" />
+ <ctl name="INT5 MI2S VI MONO" value="Left" />
+ <!-- HFP start -->
+ <ctl name="HFP_SLIM7_UL_HL Switch" value="0" />
+ <ctl name="INT4_MI2S_RX Port Mixer SLIM_7_TX" value="0" />
+ <ctl name="INT0_MI2S_RX Port Mixer SLIM_7_TX" value="0" />
+ <!-- HFP end -->
+ <!-- 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 MultiMedia2" 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="SLIMBUS_8 LOOPBACK Volume" value="0" />
+ <ctl name="INT4_MI2S_RX Port Mixer SLIM_8_TX" value="0" />
+ <ctl name="INT4_MI2S_RX_DL_HL Switch" value="0" />
+ <ctl name="INT0_MI2S_RX Port Mixer SLIM_8_TX" value="0" />
+ <ctl name="INT0_MI2S_RX_DL_HL Switch" value="0" />
+ <ctl name="MultiMedia1 Mixer SLIM_8_TX" value="0" />
+ <ctl name="MultiMedia2 Mixer SLIM_8_TX" value="0" />
+ <!-- fm end -->
+
+ <!-- Multimode Voice1 -->
+ <ctl name="INT4_MI2S_RX_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="INT0_MI2S_RX_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer INT3_MI2S_TX_MMode1" value="0" />
+ <!-- Multimode Voice1 BTSCO -->
+ <ctl name="SLIM_7_RX_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer SLIM_7_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" />
+ <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode1" value="0" />
+ <ctl name="VoiceMMode1_Tx Mixer USB_AUDIO_TX_MMode1" value="0" />
+ <!-- Miltimode Voice1 end-->
+
+ <!-- Multimode Voice2 -->
+ <ctl name="INT4_MI2S_RX_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="INT0_MI2S_RX_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="VoiceMMode2_Tx Mixer INT3_MI2S_TX_MMode2" value="0" />
+ <!-- Multimode Voice2 BTSCO -->
+ <ctl name="SLIM_7_RX_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="VoiceMMode2_Tx Mixer SLIM_7_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" />
+ <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode2" value="0" />
+ <ctl name="VoiceMMode2_Tx Mixer USB_AUDIO_TX_MMode2" value="0" />
+ <!-- Multimode Voice2 end-->
+
+ <!-- Voice external ec. reference -->
+ <ctl name="VOC_EXT_EC MUX" value="NONE" />
+ <!-- Voice external ec. reference 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 -->
+
+ <!-- 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" />
+ <!-- Incall Music End -->
+
+ <!-- compress-voip-call start -->
+ <ctl name="INT4_MI2S_RX_Voice Mixer Voip" value="0" />
+ <ctl name="INT0_MI2S_RX_Voice Mixer Voip" value="0" />
+ <ctl name="Voip_Tx Mixer INT3_MI2S_TX_Voip" value="0" />
+ <ctl name="SLIM_7_RX_Voice Mixer Voip" value="0" />
+ <ctl name="Voip_Tx Mixer SLIM_7_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" />
+ <ctl name="USB_AUDIO_RX_Voice Mixer Voip" value="0" />
+ <ctl name="Voip_Tx Mixer USB_AUDIO_TX_Voip" value="0" />
+ <!-- compress-voip-call end-->
+
+ <!-- Audio BTSCO -->
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="0" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia6" value="0" />
+ <ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
+ <!-- audio record compress-->
+ <ctl name="MultiMedia8 Mixer INT3_MI2S_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
+ <ctl name="MultiMedia8 Mixer AFE_PCM_TX" value="0" />
+ <!-- audio record compress end-->
+
+ <!-- split a2dp -->
+ <ctl name="BT SampleRate" value="KHZ_8" />
+ <ctl name="AFE Input Channels" value="Zero" />
+ <ctl name="SLIM7_RX ADM Channels" value="Zero" />
+ <!-- split a2dp end-->
+
+ <!-- ADSP testfwk -->
+ <ctl name="INT4_MI2S_RX_DL_HL Switch" value="0" />
+ <ctl name="INT0_MI2S_RX_DL_HL Switch" value="0" />
+ <!-- ADSP testfwk end-->
+
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia3" value="0" />
+
+ <!-- Codec controls -->
+ <!-- WSA controls -->
+ <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 VISENSE Switch" value="0" />
+ <ctl name="SpkrRight VISENSE Switch" value="0" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="0" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="0" />
+ <ctl name="SpkrLeft WSA PA Gain" value="G_0_DB" />
+ <ctl name="SpkrRight WSA PA Gain" value="G_0_DB" />
+ <ctl name="SpkrLeft WSA PA Mute" value="1" />
+ <ctl name="SpkrRight WSA PA Mute" value="1" />
+ <ctl name="EAR SPKR PA Gain" value="G_DEFAULT" />
+
+ <!-- Volume controls -->
+ <ctl name="HPHL Volume" value="9" />
+ <ctl name="HPHR Volume" value="9" />
+ <ctl name="EAR PA Gain" value="POS_1P5_DB" />
+ <ctl name="EAR PA Boost" value="ENABLE" />
+
+ <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="ADC1 Volume" value="4" />
+ <ctl name="ADC2 Volume" value="4" />
+ <ctl name="ADC3 Volume" value="4" />
+ <ctl name="DEC1 Volume" value="84" />
+ <ctl name="DEC2 Volume" value="84" />
+ <ctl name="DEC3 Volume" value="84" />
+ <ctl name="DEC4 Volume" value="84" />
+
+ <!-- Compander controls -->
+ <ctl name="COMP1 Switch" value="1" />
+ <ctl name="COMP2 Switch" value="1" />
+
+ <!-- MUX controls -->
+ <ctl name="DEC1 MUX" value="ZERO" />
+ <ctl name="DEC2 MUX" value="ZERO" />
+ <ctl name="DEC3 MUX" value="ZERO" />
+ <ctl name="DEC4 MUX" value="ZERO" />
+ <ctl name="ADC2 MUX" value="ZERO" />
+ <ctl name="RDAC2 MUX" value="ZERO" />
+
+ <!-- Interpolator chain controls -->
+ <!-- ADD RX Chain Controls -->
+
+ <ctl name="RX1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX2 MIX1 INP1" value="ZERO" />
+ <ctl name="RDAC2 MUX" value="ZERO" />
+ <ctl name="HPHL" value="ZERO" />
+ <ctl name="HPHR" value="ZERO" />
+ <ctl name="RX1 MIX2 INP1" value="ZERO" />
+ <ctl name="RX2 MIX2 INP1" value="ZERO" />
+ <ctl name="RX3 MIX1 INP1" value="ZERO" />
+ <ctl name="RX4 MIX1 INP1" value="ZERO" />
+ <ctl name="RX5 MIX1 INP1" value="ZERO" />
+ <ctl name="RX HPH Mode" value="NORMAL" />
+ <ctl name="COMP0 RX1" value="0" />
+ <ctl name="COMP0 RX2" value="0" />
+
+ <!-- IIR/voice anc -->
+ <ctl name="IIR1 Band1" id ="0" value="268435456" />
+ <ctl name="IIR1 Band1" id ="1" value="0" />
+ <ctl name="IIR1 Band1" id ="2" value="0" />
+ <ctl name="IIR1 Band1" id ="3" value="0" />
+ <ctl name="IIR1 Band1" id ="4" value="0" />
+ <ctl name="IIR1 Band2" id ="0" value="268435456" />
+ <ctl name="IIR1 Band2" id ="1" value="0" />
+ <ctl name="IIR1 Band2" id ="2" value="0" />
+ <ctl name="IIR1 Band2" id ="3" value="0" />
+ <ctl name="IIR1 Band2" id ="4" value="0" />
+ <ctl name="IIR1 Band3" id ="0" value="268435456" />
+ <ctl name="IIR1 Band3" id ="1" value="0" />
+ <ctl name="IIR1 Band3" id ="2" value="0" />
+ <ctl name="IIR1 Band3" id ="3" value="0" />
+ <ctl name="IIR1 Band3" id ="4" value="0" />
+ <ctl name="IIR1 Band4" id ="0" value="268435456" />
+ <ctl name="IIR1 Band4" id ="1" value="0" />
+ <ctl name="IIR1 Band4" id ="2" value="0" />
+ <ctl name="IIR1 Band4" id ="3" value="0" />
+ <ctl name="IIR1 Band4" id ="4" value="0" />
+ <ctl name="IIR1 Band5" id ="0" value="268435456" />
+ <ctl name="IIR1 Band5" id ="1" value="0" />
+ <ctl name="IIR1 Band5" id ="2" value="0" />
+ <ctl name="IIR1 Band5" id ="3" value="0" />
+ <ctl name="IIR1 Band5" id ="4" value="0" />
+ <ctl name="IIR1 Enable Band1" value="0" />
+ <ctl name="IIR1 Enable Band2" value="0" />
+ <ctl name="IIR1 Enable Band3" value="0" />
+ <ctl name="IIR1 Enable Band4" value="0" />
+ <ctl name="IIR1 Enable Band5" value="0" />
+ <ctl name="IIR1 INP1 Volume" value="53" />
+ <ctl name="IIR1 INP2 Volume" value="53" />
+ <ctl name="IIR1 INP3 Volume" value="53" />
+ <ctl name="IIR1 INP4 Volume" value="53" />
+ <ctl name="IIR1 INP1 MUX" value="ZERO" />
+ <ctl name="MultiMedia17 Mixer INT3_MI2S_TX" value="0" />
+ <ctl name="MultiMedia18 Mixer INT3_MI2S_TX" value="0" />
+ <ctl name="MultiMedia19 Mixer INT3_MI2S_TX" value="0" />
+ <ctl name="MultiMedia28 Mixer INT3_MI2S_TX" value="0" />
+ <ctl name="MultiMedia29 Mixer INT3_MI2S_TX" value="0" />
+
+ <!-- anc related -->
+
+ <!-- Codec controls end -->
+
+ <!-- mixer control to disable lowlatency qos voting -->
+ <ctl name="MultiMedia5_RX QOS Vote" value="Disable" />
+ <!-- mixer control to disable lowlatency qos voting end -->
+
+ <!-- These are audio route (FE to BE) specific mixer settings -->
+ <path name="gsm-mode">
+ <ctl name="GSM mode Enable" value="ON" />
+ </path>
+
+ <path name="echo-reference">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="INT4_MI2S_RX" />
+ </path>
+
+ <path name="echo-reference headphones">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="INT0_MI2S_RX" />
+ </path>
+
+ <path name="echo-reference headphones-44.1">
+ </path>
+
+ <path name="deep-buffer-playback">
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-protected">
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback display-port">
+ <ctl name="DISPLAY_PORT 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 speaker-and-display-port">
+ <path name="deep-buffer-playback display-port" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia1" value="1" />
+ </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 headphones">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-and-headphones">
+ <path name="deep-buffer-playback headphones" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-and-bt-sco">
+ <path name="deep-buffer-playback bt-sco" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-and-bt-sco-wb">
+ <path name="deep-buffer-playback bt-sco-wb" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="low-latency-playback">
+ <ctl name="INT4_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 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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 speaker-and-display-port">
+ <path name="low-latency-playback display-port" />
+ <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">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia5" value="1" />
+ </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 headphones">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="low-latency-playback speaker-and-headphones">
+ <path name="low-latency-playback headphones" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback resume">
+ <ctl name="MultiMedia5_RX QOS Vote" value="Enable" />
+ </path>
+
+ <path name="low-latency-playback speaker-and-bt-sco">
+ <path name="low-latency-playback bt-sco" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-and-bt-sco-wb">
+ <path name="low-latency-playback bt-sco-wb" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="audio-ull-playback">
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback speaker-protected">
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback headphones">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-headphones">
+ <path name="audio-ull-playback" />
+ <path name="audio-ull-playback headphones" />
+ </path>
+
+ <path name="audio-ull-playback display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="audio-ull-playback bt-sco" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-hdmi">
+ <path name="audio-ull-playback hdmi" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-display-port">
+ <path name="audio-ull-playback display-port" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-bt-sco">
+ <path name="audio-ull-playback bt-sco" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-bt-sco-wb">
+ <path name="audio-ull-playback bt-sco-wb" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="multi-channel-playback display-port">
+ <ctl name="DISPLAY_PORT 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="INT4_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 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="silence-playback display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia9" value="1" />
+ </path>
+
+ <path name="compress-offload-playback bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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 speaker-and-display-port">
+ <path name="compress-offload-playback display-port" />
+ <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">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia4" value="1" />
+ </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">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback headphones-44.1">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback headphones-dsd">
+ </path>
+
+ <path name="compress-offload-playback speaker-and-headphones">
+ <path name="compress-offload-playback headphones" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-and-bt-sco">
+ <path name="compress-offload-playback bt-sco" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback bt-sco-wb" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="compress-offload-playback2">
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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 speaker-and-display-port">
+ <path name="compress-offload-playback2 display-port" />
+ <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">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia7" value="1" />
+ </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">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 headphones-44.1">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 headphones-dsd">
+ </path>
+
+ <path name="compress-offload-playback2 speaker-and-headphones">
+ <path name="compress-offload-playback2 headphones" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-and-bt-sco">
+ <path name="compress-offload-playback2 bt-sco" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback2 bt-sco-wb" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback3">
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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 speaker-and-display-port">
+ <path name="compress-offload-playback3 display-port" />
+ <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">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="1" />
+ </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">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 headphones-44.1">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 headphones-dsd">
+ </path>
+
+ <path name="compress-offload-playback3 speaker-and-headphones">
+ <path name="compress-offload-playback3 headphones" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-and-bt-sco">
+ <path name="compress-offload-playback3 bt-sco" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback3 bt-sco-wb" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback4">
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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 speaker-and-display-port">
+ <path name="compress-offload-playback4 display-port" />
+ <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">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia11" value="1" />
+ </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">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 headphones-44.1">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 headphones-dsd">
+ </path>
+
+ <path name="compress-offload-playback4 speaker-and-headphones">
+ <path name="compress-offload-playback4 headphones" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-and-bt-sco">
+ <path name="compress-offload-playback4 bt-sco" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback4 bt-sco-wb" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback5">
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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 speaker-and-display-port">
+ <path name="compress-offload-playback5 display-port" />
+ <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">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia12" value="1" />
+ </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">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 headphones-44.1">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 headphones-dsd">
+ </path>
+
+ <path name="compress-offload-playback5 speaker-and-headphones">
+ <path name="compress-offload-playback5 headphones" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-and-bt-sco">
+ <path name="compress-offload-playback5 bt-sco" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback5 bt-sco-wb" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback6">
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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 speaker-and-display-port">
+ <path name="compress-offload-playback6 display-port" />
+ <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">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia13" value="1" />
+ </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">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 headphones-44.1">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 headphones-dsd">
+ </path>
+
+ <path name="compress-offload-playback6 speaker-and-headphones">
+ <path name="compress-offload-playback6 headphones" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-and-bt-sco">
+ <path name="compress-offload-playback6 bt-sco" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback6 bt-sco-wb" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback7">
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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 speaker-and-display-port">
+ <path name="compress-offload-playback7 display-port" />
+ <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">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia14" value="1" />
+ </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">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 headphones-44.1">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 headphones-dsd">
+ </path>
+
+ <path name="compress-offload-playback7 speaker-and-headphones">
+ <path name="compress-offload-playback7 headphones" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-and-bt-sco">
+ <path name="compress-offload-playback7 bt-sco" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback7 bt-sco-wb" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback8">
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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 speaker-and-display-port">
+ <path name="compress-offload-playback8 display-port" />
+ <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">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia15" value="1" />
+ </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">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 headphones-44.1">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 headphones-dsd">
+ </path>
+
+ <path name="compress-offload-playback8 speaker-and-headphones">
+ <path name="compress-offload-playback8 headphones" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-and-bt-sco">
+ <path name="compress-offload-playback8 bt-sco" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback8 bt-sco-wb" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback9">
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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 speaker-and-display-port">
+ <path name="compress-offload-playback9 display-port" />
+ <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">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
+ </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">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 headphones-44.1">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 headphones-dsd">
+ </path>
+
+ <path name="compress-offload-playback9 speaker-and-headphones">
+ <path name="compress-offload-playback9 headphones" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-and-bt-sco">
+ <path name="compress-offload-playback9 bt-sco" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-and-bt-sco-wb">
+ <path name="compress-offload-playback9 bt-sco-wb" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="audio-record">
+ <ctl name="MultiMedia1 Mixer INT3_MI2S_TX" value="1" />
+ </path>
+
+ <path name="audio-record usb-headset-mic">
+ <ctl name="MultiMedia1 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="audio-record bt-sco">
+ <ctl name="MultiMedia1 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="audio-record bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="audio-record bt-sco" />
+ </path>
+
+ <path name="audio-record capture-fm">
+ <ctl name="MultiMedia1 Mixer SLIM_8_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress">
+ <ctl name="MultiMedia8 Mixer INT3_MI2S_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress2">
+ <ctl name="MultiMedia17 Mixer INT3_MI2S_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress3">
+ <ctl name="MultiMedia18 Mixer INT3_MI2S_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress4">
+ <ctl name="MultiMedia19 Mixer INT3_MI2S_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress5">
+ <ctl name="MultiMedia28 Mixer INT3_MI2S_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress6">
+ <ctl name="MultiMedia29 Mixer INT3_MI2S_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress bt-sco">
+ <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="audio-record-compress bt-sco" />
+ </path>
+
+ <path name="audio-record-compress usb-headset-mic">
+ <ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="low-latency-record">
+ <ctl name="MultiMedia8 Mixer INT3_MI2S_TX" value="1" />
+ </path>
+
+ <path name="low-latency-record bt-sco">
+ <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="low-latency-record bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="low-latency-record bt-sco" />
+ </path>
+
+ <path name="low-latency-record usb-headset-mic">
+ <ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="low-latency-record capture-fm">
+ <ctl name="MultiMedia8 Mixer SLIM_8_TX" value="1" />
+ </path>
+
+ <path name="fm-virtual-record capture-fm">
+ <ctl name="MultiMedia2 Mixer SLIM_8_TX" value="1" />
+ </path>
+
+ <path name="play-fm">
+ <ctl name="SLIMBUS_8 LOOPBACK Volume" value="1" />
+ <ctl name="INT4_MI2S_RX Port Mixer SLIM_8_TX" value="1" />
+ <ctl name="INT4_MI2S_RX_DL_HL Switch" value="1" />
+ </path>
+
+ <path name="play-fm headphones">
+ <ctl name="SLIMBUS_8 LOOPBACK Volume" value="1" />
+ <ctl name="INT0_MI2S_RX Port Mixer SLIM_8_TX" value="1" />
+ <ctl name="INT0_MI2S_RX_DL_HL Switch" value="1" />
+ </path>
+
+ <path name="incall-rec-uplink">
+ <ctl name="MultiMedia1 Mixer VOC_REC_UL" value="1" />
+ </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_SLIM7_UL_HL Switch" value="1" />
+ <ctl name="INT4_MI2S_RX Port Mixer SLIM_7_TX" value="1" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia6" value="1" />
+ <ctl name="MultiMedia6 Mixer INT3_MI2S_TX" value="1" />
+ <ctl name="INT4_MI2S_RX_DL_HL Switch" value="1" />
+ </path>
+
+ <path name="hfp-sco headphones">
+ <ctl name="HFP_SLIM7_UL_HL Switch" value="1" />
+ <ctl name="INT0_MI2S_RX Port Mixer SLIM_7_TX" value="1" />
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia6" value="1" />
+ <ctl name="MultiMedia6 Mixer INT3_MI2S_TX" value="1" />
+ <ctl name="INT0_MI2S_RX_DL_HL Switch" value="1" />
+ </path>
+
+ <path name="hfp-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="hfp-sco" />
+ </path>
+
+ <path name="hfp-sco-wb headphones">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="hfp-sco headphones" />
+ </path>
+
+ <path name="compress-voip-call">
+ <ctl name="INT4_MI2S_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer INT3_MI2S_TX_Voip" value="1" />
+ </path>
+
+ <path name="compress-voip-call bt-a2dp">
+ <ctl name="SLIM_7_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer INT3_MI2S_TX_Voip" value="1" />
+ </path>
+
+ <path name="compress-voip-call headphones">
+ <ctl name="INT0_MI2S_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer INT3_MI2S_TX_Voip" value="1" />
+ </path>
+
+
+ <path name="compress-voip-call bt-sco">
+ <ctl name="SLIM_7_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer SLIM_7_TX_Voip" value="1" />
+ </path>
+
+ <path name="compress-voip-call bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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="USB_AUDIO_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer INT3_MI2S_TX_Voip" value="1" />
+ </path>
+
+ <path name="compress-voip-call usb-headset">
+ <ctl name="USB_AUDIO_RX_Voice Mixer Voip" value="1" />
+ <ctl name="Voip_Tx Mixer USB_AUDIO_TX_Voip" value="1" />
+ </path>
+
+ <path name="voicemmode1-call">
+ <ctl name="INT4_MI2S_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer INT3_MI2S_TX_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call headphones">
+ <ctl name="INT0_MI2S_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer INT3_MI2S_TX_MMode1" value="1" />
+ </path>
+
+
+ <path name="voicemmode1-call bt-sco">
+ <ctl name="SLIM_7_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer SLIM_7_TX_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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="USB_AUDIO_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer INT3_MI2S_TX_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode1-call usb-headset">
+ <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode1" value="1" />
+ <ctl name="VoiceMMode1_Tx Mixer USB_AUDIO_TX_MMode1" value="1" />
+ </path>
+
+ <path name="voicemmode2-call">
+ <ctl name="INT4_MI2S_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer INT3_MI2S_TX_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call headphones">
+ <ctl name="INT0_MI2S_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer INT3_MI2S_TX_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call bt-sco">
+ <ctl name="SLIM_7_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer SLIM_7_TX_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <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="USB_AUDIO_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer INT3_MI2S_TX_MMode2" value="1" />
+ </path>
+
+ <path name="voicemmode2-call usb-headset">
+ <ctl name="USB_AUDIO_RX_Voice Mixer VoiceMMode2" value="1" />
+ <ctl name="VoiceMMode2_Tx Mixer USB_AUDIO_TX_MMode2" value="1" />
+ </path>
+
+ <!-- VOIP Rx settings -->
+ <path name="audio-playback-voip">
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip headphones">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="audio-playback-voip bt-sco" />
+ </path>
+
+ <path name="audio-playback-voip afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip display-port">
+ <ctl name="DISPLAY_PORT Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-display-port">
+ <path name="audio-playback-voip display-port" />
+ <path name="audio-playback-voip" />
+ </path>
+
+ <!-- VoIP Tx settings -->
+ <path name="audio-record-voip">
+ <ctl name="MultiMedia10 Mixer INT3_MI2S_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip usb-headset-mic">
+ <ctl name="MultiMedia10 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco">
+ <ctl name="MultiMedia10 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="audio-record-voip bt-sco" />
+ </path>
+
+ <path name="spkr-rx-calib">
+ <ctl name="INT4_MI2S_RX_DL_HL Switch" value="1" />
+ </path>
+
+ <path name="spkr-vi-record">
+ </path>
+
+ <!-- These are actual sound device specific mixer settings -->
+ <path name="adc1">
+ <ctl name="ADC1 Volume" value="6" />
+ <ctl name="DEC1 MUX" value="ADC1" />
+ <ctl name="ADC1_INP1 Switch" value="1" />
+ </path>
+
+ <path name="adc2">
+ <ctl name="ADC2 Volume" value="6" />
+ <ctl name="DEC1 MUX" value="ADC2" />
+ <ctl name="ADC2 MUX" value="INP2" />
+ </path>
+
+ <path name="adc3">
+ <ctl name="ADC3 Volume" value="6" />
+ <ctl name="DEC1 MUX" value="ADC2" />
+ <ctl name="ADC2 MUX" value="INP3" />
+ </path>
+
+ <!-- DMIC numbered from 1 to 4 -->
+ <path name="dmic1">
+ <ctl name="DEC1 MUX" value="DMIC1" />
+ </path>
+
+ <path name="dmic2">
+ <ctl name="DEC1 MUX" value="DMIC2" />
+ </path>
+
+ <path name="dmic3">
+ <ctl name="DEC1 MUX" value="DMIC3" />
+ </path>
+
+ <path name="dmic4">
+ <ctl name="DEC1 MUX" value="DMIC4" />
+ </path>
+
+ <path name="speaker">
+ <ctl name="INT4_MI2S_RX Channels" value="Two" />
+ <ctl name="RX4 MIX1 INP1" value="RX4" />
+ <ctl name="RX5 MIX1 INP1" value="RX5" />
+ <ctl name="COMP1 Switch" value="1" />
+ <ctl name="COMP2 Switch" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft BOOST Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrRight COMP Switch" value="1" />
+ <ctl name="SpkrRight BOOST Switch" value="1" />
+ <ctl name="SpkrRight VISENSE Switch" value="1" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrLeft WSA PA Mute" value="0" />
+ <ctl name="SpkrRight WSA PA Mute" value="0" />
+ </path>
+
+ <path name="speaker-mono">
+ <ctl name="INT4_MI2S_RX Channels" value="One" />
+ <ctl name="RX4 MIX1 INP1" value="RX4" />
+ <ctl name="COMP1 Switch" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft BOOST Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrLeft WSA PA Mute" value="0" />
+ </path>
+
+ <path name="speaker-mono-2">
+ <ctl name="INT4_MI2S_RX Channels" value="One" />
+ <ctl name="RX5 MIX1 INP1" value="RX4" />
+ <ctl name="COMP2 Switch" value="1" />
+ <ctl name="SpkrRight COMP Switch" value="1" />
+ <ctl name="SpkrRight BOOST Switch" value="1" />
+ <ctl name="SpkrRight VISENSE Switch" value="1" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrRight WSA PA Mute" value="0" />
+ </path>
+
+ <path name="speaker-fluid">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="speaker-liquid">
+ <path name="speaker" />
+ </path>
+
+ <path name="sidetone-iir">
+ <ctl name="IIR1 Enable Band1" value="1" />
+ <ctl name="IIR1 Enable Band2" value="1" />
+ <ctl name="IIR1 Enable Band3" value="1" />
+ <ctl name="IIR1 Enable Band4" value="1" />
+ <ctl name="IIR1 Enable Band5" value="1" />
+ </path>
+
+ <path name="sidetone-headphones">
+ <path name="sidetone-iir" />
+ <ctl name="RX1 MIX2 INP1" value="IIR1" />
+ <ctl name="RX2 MIX2 INP1" value="IIR1" />
+ <ctl name="IIR1 INP1 Volume" value="53" />
+ </path>
+
+ <path name="sidetone-handset">
+ <path name="sidetone-iir" />
+ <ctl name="IIR1 INP1 Volume" value="53" />
+ <ctl name="RX1 MIX2 INP1" value="IIR1" />
+ </path>
+
+ <path name="speaker-mic">
+ <path name="dmic2" />
+ </path>
+
+ <path name="speaker-mic-liquid">
+ <path name="dmic2" />
+ </path>
+
+ <path name="speaker-mic-sbc">
+ </path>
+
+ <path name="speaker-protected">
+ <ctl name="AIF1_VI_SDW Mixer SPKR_VI_1" value="1" />
+ <ctl name="AIF1_VI_SDW Mixer SPKR_VI_2" value="1" />
+ <path name="speaker" />
+ <ctl name="VI_FEED_TX Channels" value="Two" />
+ <ctl name="INT4_MI2S_RX_VI_FB_STEREO_CH_MUX" value="INT5_MI2S_TX" />
+ </path>
+
+ <path name="voice-speaker-protected">
+ <ctl name="AIF1_VI_SDW Mixer SPKR_VI_1" value="1" />
+ <path name="speaker-mono" />
+ <ctl name="VI_FEED_TX Channels" value="One" />
+ <ctl name="INT4_MI2S_RX_VI_FB_MONO_CH_MUX" value="INT5_MI2S_TX" />
+ </path>
+
+ <path name="voice-speaker-2-protected">
+ <ctl name="AIF1_VI_SDW Mixer SPKR_VI_2" value="1" />
+ <path name="speaker-mono-2" />
+ <ctl name="VI_FEED_TX Channels" value="One" />
+ <ctl name="INT4_MI2S_RX_VI_FB_MONO_CH_MUX" value="INT5_MI2S_TX" />
+ <ctl name="INT5 MI2S VI MONO" value="Right" />
+ </path>
+
+ <path name="vi-feedback">
+ </path>
+
+ <path name="vi-feedback-mono-1">
+ </path>
+
+ <path name="vi-feedback-mono-2">
+ </path>
+
+ <path name="handset">
+ <ctl name="EAR SPKR PA Gain" value="G_3_DB" />
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="handset-mic">
+ <path name="dmic3" />
+ </path>
+
+ <path name="handset-mic-db">
+ </path>
+
+ <path name="handset-mic-cdp">
+ <path name="dmic2" />
+ </path>
+
+ <path name="handset-mic-sbc">
+ </path>
+
+ <path name="three-mic">
+ <ctl name="INT3_MI2S_TX Channels" value="Three" />
+ <ctl name="DEC1 MUX" value="DMIC1" />
+ <ctl name="DEC2 MUX" value="DMIC3" />
+ <ctl name="DEC3 MUX" value="DMIC4" />
+ <ctl name="I2S TX2 INP1" value="DEC3" />
+ </path>
+
+ <path name="anc-handset">
+ </path>
+
+ <path name="headphones">
+ <ctl name="INT0_MI2S_RX Channels" value="Two" />
+ <ctl name="RX1 MIX1 INP1" value="RX1" />
+ <ctl name="RX2 MIX1 INP1" value="RX2" />
+ <ctl name="RDAC2 MUX" value="RX2" />
+ <ctl name="RX HPH Mode" value="HD2" />
+ <ctl name="COMP0 RX1" value="1" />
+ <ctl name="COMP0 RX2" value="1" />
+ <ctl name="HPHL" value="Switch" />
+ <ctl name="HPHR" value="Switch" />
+ </path>
+
+ <path name="headphones-44.1">
+ <path name="headphones" />
+ </path>
+
+ <path name="true-native-mode">
+ </path>
+
+ <path name="line">
+ <path name="headphones" />
+ </path>
+
+ <path name="headset-mic">
+ <path name="adc2" />
+ </path>
+
+ <path name="headset-mic-liquid">
+ <path name="adc2" />
+ </path>
+
+ <path name="voice-handset">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-tmus">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-speaker">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-2">
+ <path name="speaker-mono-2" />
+ </path>
+
+ <path name="voice-speaker-fluid">
+ <path name="speaker-fluid" />
+ </path>
+
+ <path name="voice-speaker-mic">
+ <path name="speaker-mic" />
+ </path>
+
+ <path name="voice-headphones">
+ <path name="headphones" />
+ </path>
+
+ <path name="voice-line">
+ <path name="voice-headphones" />
+ </path>
+
+ <path name="voice-headset-mic">
+ <path name="headset-mic" />
+ </path>
+
+ <path name="speaker-and-headphones">
+ <path name="headphones" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-and-line">
+ <path name="speaker-and-headphones" />
+ </path>
+
+ <path name="speaker-and-headphones-liquid">
+ <path name="headphones" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-and-line-liquid">
+ <path name="speaker-and-headphones-liquid" />
+ </path>
+
+ <path name="usb-headphones">
+ </path>
+
+ <path name="usb-headset">
+ </path>
+
+ <path name="afe-proxy">
+ </path>
+
+ <path name="anc-headphones">
+ <path name="headphones" />
+ </path>
+
+ <path name="speaker-and-anc-headphones">
+ <path name="anc-headphones" />
+ <path name="speaker" />
+ </path>
+
+ <path name="anc-fb-headphones">
+ <path name="anc-headphones" />
+ </path>
+
+ <path name="speaker-and-anc-fb-headphones">
+ <path name="anc-fb-headphones" />
+ <path name="speaker" />
+ </path>
+
+ <path name="voice-anc-headphones">
+ <path name="voice-headphones" />
+ </path>
+
+ <path name="voice-anc-fb-headphones">
+ <path name="voice-headphones" />
+ </path>
+
+ <path name="speaker-and-anc-headphones-liquid">
+ <path name="anc-headphones" />
+ </path>
+
+ <path name="hdmi">
+ </path>
+
+ <path name="display-port">
+ </path>
+
+ <path name="speaker-and-usb-headphones">
+ <path name="speaker" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="speaker-and-hdmi">
+ <path name="speaker" />
+ <path name="hdmi" />
+ </path>
+
+ <path name="speaker-and-display-port">
+ <path name="speaker" />
+ <path name="display-port" />
+ </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>
+
+ <path name="aanc-path">
+ </path>
+
+ <path name="aanc-handset-mic">
+ </path>
+
+ <!-- Dual MIC devices -->
+ <path name="handset-dmic-endfire">
+ <ctl name="DEC1 MUX" value="DMIC3" />
+ <ctl name="DEC2 MUX" value="DMIC4" />
+ <ctl name="INT3_MI2S_TX Channels" value="Two" />
+ </path>
+
+ <path name="speaker-dmic-endfire">
+ <ctl name="DEC1 MUX" value="DMIC2" />
+ <ctl name="DEC2 MUX" value="DMIC4" />
+ <ctl name="INT3_MI2S_TX Channels" value="Two" />
+ </path>
+
+ <path name="dmic-endfire">
+ <path name="handset-dmic-endfire" />
+ <ctl name="IIR1 INP1 MUX" value="DEC1" />
+ </path>
+
+ <path name="dmic-endfire-liquid">
+ <path name="handset-dmic-endfire" />
+ <ctl name="IIR1 INP1 MUX" value="DEC1" />
+ </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="handset-stereo-dmic-ef-liquid">
+ <path name="handset-dmic-endfire" />
+ </path>
+
+ <path name="speaker-stereo-dmic-ef-liquid">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef-liquid-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-speaker-dmic-ef-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-fluence-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="speaker-dmic-broadside">
+ <ctl name="INT3_MI2S_TX Channels" value="Two" />
+ <ctl name="DEC1 MUX" value="DMIC2" />
+ <ctl name="DEC2 MUX" value="DMIC3" />
+ </path>
+
+ <path name="dmic-broadside">
+ <path name="speaker-dmic-broadside" />
+ <ctl name="IIR1 INP1 MUX" value="DEC7" />
+ </path>
+
+ <path name="voice-speaker-dmic-broadside">
+ <path name="dmic-broadside" />
+ </path>
+
+ <!-- Quad MIC devices -->
+ <path name="speaker-qmic">
+ <ctl name="INT3_MI2S_TX Channels" value="Four" />
+ <ctl name="DEC1 MUX" value="DMIC2" />
+ <ctl name="DEC2 MUX" value="DMIC1" />
+ <ctl name="DEC3 MUX" value="DMIC3" />
+ <ctl name="I2S TX2 INP1" value="DEC3" />
+ <ctl name="DEC4 MUX" value="DMIC4" />
+ <ctl name="I2S TX2 INP2" value="DEC4" />
+ </path>
+
+ <path name="speaker-qmic-liquid">
+ </path>
+
+ <path name="voice-speaker-qmic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <path name="quad-mic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <path name="voice-speaker-qmic-liquid">
+ <path name="speaker-qmic-liquid" />
+ </path>
+
+ <path name="quad-mic-liquid">
+ <path name="speaker-qmic-liquid" />
+ </path>
+
+ <!-- TTY devices -->
+
+ <path name="tty-headphones">
+ <ctl name="RX1 MIX1 INP1" value="RX1" />
+ <ctl name="HPHL" value="Switch" />
+ </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" />
+ </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="unprocessed-handset-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="unprocessed-mic">
+ <path name="unprocessed-handset-mic" />
+ </path>
+
+ <path name="unprocessed-stereo-mic">
+ <path name="voice-rec-dmic-ef" />
+ </path>
+
+ <path name="unprocessed-three-mic">
+ <path name="three-mic" />
+ </path>
+
+ <path name="unprocessed-quad-mic">
+ <path name="quad-mic" />
+ </path>
+
+ <path name="unprocessed-headset-mic">
+ <path name="headset-mic" />
+ </path>
+
+ <!-- USB TTY start -->
+
+ <!-- full: both end tty -->
+ <path name="voice-tty-full-usb">
+ <ctl name="TTY Mode" value="FULL" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="voice-tty-full-usb-mic">
+ <path name="usb-headset-mic" />
+ </path>
+
+ <!-- vco, in: handset mic use existing, out: tty -->
+ <path name="voice-tty-vco-usb">
+ <ctl name="TTY Mode" value="VCO" />
+ <path name="usb-headphones" />
+ </path>
+
+ <!-- hco, in: tty, out: speaker, use existing handset -->
+ <path name="voice-tty-hco-usb-mic">
+ <path name="voice-tty-full-usb-mic" />
+ </path>
+
+ <!-- USB TTY end -->
+
+ <!-- Added for ADSP testfwk -->
+ <path name="ADSP testfwk">
+ <ctl name="INT4_MI2S_RX_DL_HL Switch" value="1" />
+ </path>
+
+ <path name="bt-a2dp">
+ <ctl name="SLIM7_RX ADM Channels" value="Two" />
+ </path>
+
+ <path name="speaker-and-bt-a2dp">
+ <path name="speaker" />
+ <path name="bt-a2dp" />
+ </path>
+
+ <path name="deep-buffer-playback bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia1" value="1" />
+ </path>
+
+ <path name="low-latency-playback bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia5" value="1" />
+ </path>
+
+ <path name="compress-offload-playback bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia4" value="1" />
+ </path>
+
+ <path name="compress-offload-playback2 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia7" value="1" />
+ </path>
+
+ <path name="compress-offload-playback3 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="compress-offload-playback4 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia11" value="1" />
+ </path>
+
+ <path name="compress-offload-playback5 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia12" value="1" />
+ </path>
+
+ <path name="compress-offload-playback6 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia13" value="1" />
+ </path>
+
+ <path name="compress-offload-playback7 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia14" value="1" />
+ </path>
+
+ <path name="compress-offload-playback8 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia15" value="1" />
+ </path>
+
+ <path name="compress-offload-playback9 bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="audio-ull-playback bt-a2dp">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia8" value="1" />
+ </path>
+
+ <path name="deep-buffer-playback speaker-and-bt-a2dp">
+ <path name="deep-buffer-playback bt-a2dp" />
+ <path name="deep-buffer-playback" />
+ </path>
+
+ <path name="compress-offload-playback speaker-and-bt-a2dp">
+ <path name="compress-offload-playback bt-a2dp" />
+ <path name="compress-offload-playback" />
+ </path>
+
+ <path name="low-latency-playback speaker-and-bt-a2dp">
+ <path name="low-latency-playback bt-a2dp" />
+ <path name="low-latency-playback" />
+ </path>
+
+ <path name="compress-offload-playback2 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback2 bt-a2dp" />
+ <path name="compress-offload-playback2" />
+ </path>
+
+ <path name="compress-offload-playback3 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback3 bt-a2dp" />
+ <path name="compress-offload-playback3" />
+ </path>
+
+ <path name="compress-offload-playback4 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback4 bt-a2dp" />
+ <path name="compress-offload-playback4" />
+ </path>
+
+ <path name="compress-offload-playback5 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback5 bt-a2dp" />
+ <path name="compress-offload-playback5" />
+ </path>
+
+ <path name="compress-offload-playback6 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback6 bt-a2dp" />
+ <path name="compress-offload-playback6" />
+ </path>
+
+ <path name="compress-offload-playback7 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback7 bt-a2dp" />
+ <path name="compress-offload-playback7" />
+ </path>
+
+ <path name="compress-offload-playback8 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback8 bt-a2dp" />
+ <path name="compress-offload-playback8" />
+ </path>
+
+ <path name="compress-offload-playback9 speaker-and-bt-a2dp">
+ <path name="compress-offload-playback9 bt-a2dp" />
+ <path name="compress-offload-playback9" />
+ </path>
+
+ <path name="audio-ull-playback speaker-and-bt-a2dp">
+ <path name="audio-ull-playback bt-a2dp" />
+ <path name="audio-ull-playback" />
+ </path>
+
+ <path name="mmap-playback">
+ <ctl name="INT4_MI2S_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback headphones">
+ <ctl name="INT0_MI2S_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback speaker-and-headphones">
+ <path name="mmap-playback" />
+ <path name="mmap-playback headphones" />
+ </path>
+
+ <path name="mmap-playback bt-sco">
+ <ctl name="SLIMBUS_7_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback bt-sco-wb">
+ <ctl name="BT SampleRate" value="16000" />
+ <path name="mmap-playback bt-sco" />
+ </path>
+
+ <path name="mmap-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-buffer-playback hdmi">
+ <ctl name="HDMI Mixer MultiMedia16" value="1" />
+ </path>
+
+ <path name="mmap-playback speaker-and-hdmi">
+ <path name="mmap-playback hdmi" />
+ <path name="mmap-playback" />
+ </path>
+
+ <path name="mmap-playback speaker-and-display-port">
+ <path name="mmap-playback display-port" />
+ <path name="mmap-playback" />
+ </path>
+
+ <path name="mmap-playback speaker-and-usb-headphones">
+ <path name="mmap-playback usb-headphones" />
+ <path name="mmap-playback" />
+ </path>
+
+ <path name="mmap-record">
+ <ctl name="MultiMedia16 Mixer INT3_MI2S_TX " value="1" />
+ </path>
+
+ <path name="mmap-record bt-sco">
+ <ctl name="MultiMedia16 Mixer SLIM_7_TX" value="1" />
+ </path>
+
+ <path name="mmap-record bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="mmap-record bt-sco" />
+ </path>
+
+ <path name="mmap-record capture-fm">
+ <ctl name="MultiMedia16 Mixer SLIM_8_TX" value="1" />
+ </path>
+
+ <path name="mmap-record usb-headset-mic">
+ <ctl name="MultiMedia16 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+ <path name="hifi-playback display-port">
+ <ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="hifi-playback afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="hifi-playback usb-headset">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="hifi-playback usb-headphones">
+ <ctl name="USB_AUDIO_RX Audio Mixer MultiMedia2" value="1" />
+ </path>
+
+ <path name="hifi-record usb-headset-mic">
+ <ctl name="MultiMedia2 Mixer USB_AUDIO_TX" value="1" />
+ </path>
+
+</mixer>
diff --git a/configs/sdm670/mixer_paths_tasha.xml b/configs/sdm670/mixer_paths_tasha.xml
index 4db4271..40bcb74 100644
--- a/configs/sdm670/mixer_paths_tasha.xml
+++ b/configs/sdm670/mixer_paths_tasha.xml
@@ -541,6 +541,11 @@
<!-- vbat related data end-->
<!-- audio record compress-->
<ctl name="MultiMedia8 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia17 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia18 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia19 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia28 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia29 Mixer SLIM_0_TX" value="0" />
<ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia8 Mixer AFE_PCM_TX" value="0" />
<!-- audio record compress end-->
@@ -1461,6 +1466,26 @@
<ctl name="MultiMedia8 Mixer SLIM_0_TX" value="1" />
</path>
+ <path name="audio-record-compress2">
+ <ctl name="MultiMedia17 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress3">
+ <ctl name="MultiMedia18 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress4">
+ <ctl name="MultiMedia19 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress5">
+ <ctl name="MultiMedia28 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress6">
+ <ctl name="MultiMedia29 Mixer SLIM_0_TX" value="1" />
+ </path>
+
<path name="audio-record-compress bt-sco">
<ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
</path>
diff --git a/configs/sdm670/mixer_paths_tavil.xml b/configs/sdm670/mixer_paths_tavil.xml
index 0409cc1..fd34c87 100644
--- a/configs/sdm670/mixer_paths_tavil.xml
+++ b/configs/sdm670/mixer_paths_tavil.xml
@@ -297,6 +297,11 @@
<ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
<!-- audio record compress-->
<ctl name="MultiMedia8 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia17 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia18 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia19 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia28 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia29 Mixer SLIM_0_TX" value="0" />
<ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
<ctl name="MultiMedia8 Mixer AFE_PCM_TX" value="0" />
<!-- audio record compress end-->
@@ -1365,6 +1370,26 @@
<ctl name="MultiMedia8 Mixer SLIM_0_TX" value="1" />
</path>
+ <path name="audio-record-compress2">
+ <ctl name="MultiMedia17 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress3">
+ <ctl name="MultiMedia18 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress4">
+ <ctl name="MultiMedia19 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress5">
+ <ctl name="MultiMedia28 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="audio-record-compress6">
+ <ctl name="MultiMedia29 Mixer SLIM_0_TX" value="1" />
+ </path>
+
<path name="audio-record-compress bt-sco">
<ctl name="MultiMedia8 Mixer SLIM_7_TX" value="1" />
</path>
diff --git a/configs/sdm670/sdm670.mk b/configs/sdm670/sdm670.mk
index 6c35eec..507a1fb 100644
--- a/configs/sdm670/sdm670.mk
+++ b/configs/sdm670/sdm670.mk
@@ -68,6 +68,7 @@
BOARD_SUPPORTS_QSTHW_API := true
AUDIO_FEATURE_ENABLED_RAS := true
AUDIO_FEATURE_ENABLED_SND_MONITOR := true
+AUDIO_FEATURE_ENABLED_DLKM := true
##AUDIO_FEATURE_FLAGS
#Audio Specific device overlays
@@ -88,6 +89,7 @@
hardware/qcom/audio/configs/sdm670/mixer_paths_tavil.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tavil.xml \
hardware/qcom/audio/configs/sdm670/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \
hardware/qcom/audio/configs/sdm670/mixer_paths_mtp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_mtp.xml \
+ hardware/qcom/audio/configs/sdm670/mixer_paths_lc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_lc.xml \
hardware/qcom/audio/configs/sdm670/mixer_paths_tasha.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tasha.xml \
hardware/qcom/audio/configs/sdm670/mixer_paths_tashalite.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_tashalite.xml \
hardware/qcom/audio/configs/sdm670/mixer_paths_i2s.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_i2s.xml \
diff --git a/hal/Android.mk b/hal/Android.mk
index ccd8f2d..921252c 100644
--- a/hal/Android.mk
+++ b/hal/Android.mk
@@ -76,7 +76,9 @@
ifneq ($(filter msmnile,$(TARGET_BOARD_PLATFORM)),)
LOCAL_HEADER_LIBRARIES := audio_kernel_headers
endif
-ifneq ($(filter sdm670 msm8953 msm8937 qcs605 msmnile,$(TARGET_BOARD_PLATFORM)),)
+
+ifeq ($(strip $(AUDIO_FEATURE_ENABLED_DLKM)),true)
+ LOCAL_HEADER_LIBRARIES := audio_kernel_headers
LOCAL_C_INCLUDES += $(TARGET_OUT_INTERMEDIATES)/vendor/qcom/opensource/audio-kernel/include
LOCAL_ADDITIONAL_DEPENDENCIES += $(BOARD_VENDOR_KERNEL_MODULES)
endif
@@ -393,6 +395,15 @@
LOCAL_CFLAGS += -DDYNAMIC_ECNS_ENABLED
endif
+ifeq ($(strip $($AUDIO_FEATURE_ENABLED_KEEP_ALIVE_ARM_FFV)), true)
+ LOCAL_CFLAGS += -DRUN_KEEP_ALIVE_IN_ARM_FFV
+endif
+
+ifeq ($(strip $($AUDIO_FEATURE_ENABLED_FFV_FFV)), true)
+ LOCAL_CFLAGS += -DFFV_ENABLED
+ LOCAL_SRC_FILES += audio_extn/ffv.c
+endif
+
LOCAL_CFLAGS += -Wall -Werror
LOCAL_COPY_HEADERS_TO := mm-audio
diff --git a/hal/audio_extn/audio_extn.h b/hal/audio_extn/audio_extn.h
index 4a0b8ce..46c09a9 100755
--- a/hal/audio_extn/audio_extn.h
+++ b/hal/audio_extn/audio_extn.h
@@ -224,6 +224,7 @@
#define audio_extn_usb_get_sup_sample_rates(t, s, l) (0)
#define audio_extn_usb_is_tunnel_supported() (0)
#define audio_extn_usb_alive(adev) (false)
+#define audio_extn_usb_connected(parms) (0)
#else
void audio_extn_usb_init(void *adev);
void audio_extn_usb_deinit();
@@ -242,6 +243,7 @@
int audio_extn_usb_get_sup_sample_rates(int type, uint32_t *sr, uint32_t l);
bool audio_extn_usb_is_tunnel_supported();
bool audio_extn_usb_alive(int card);
+bool audio_extn_usb_connected(struct str_parms *parms);
#endif
#ifndef SPLIT_A2DP_ENABLED
diff --git a/hal/audio_extn/ffv.c b/hal/audio_extn/ffv.c
index 027849c..596f49b 100644
--- a/hal/audio_extn/ffv.c
+++ b/hal/audio_extn/ffv.c
@@ -59,8 +59,22 @@
#define AUDIO_PARAMETER_FFV_EC_REF_DEVICE "ffv_ec_ref_dev"
#define AUDIO_PARAMETER_FFV_CHANNEL_INDEX "ffv_channel_index"
-#define FFV_LIB "libffv.so"
+#if LINUX_ENABLED
#define FFV_CONFIG_FILE_PATH "/etc/BF_1out.cfg"
+#ifdef __LP64__
+#define FFV_LIB "/usr/lib64/libffv.so"
+#else
+#define FFV_LIB "/usr/lib/libffv.so"
+#endif
+#else
+#define FFV_CONFIG_FILE_PATH "/vendor/etc/BF_1out.cfg"
+#ifdef __LP64__
+#define FFV_LIB "/vendor/lib64/libffv.so"
+#else
+#define FFV_LIB "/vendor/lib/libffv.so"
+#endif
+#endif
+
#define FFV_SAMPLING_RATE_16000 16000
#define FFV_EC_REF_LOOPBACK_DEVICE_MONO "ec-ref-loopback-mono"
#define FFV_EC_REF_LOOPBACK_DEVICE_STEREO "ec-ref-loopback-stereo"
diff --git a/hal/audio_extn/usb.c b/hal/audio_extn/usb.c
index af8cc89..2af255b 100644
--- a/hal/audio_extn/usb.c
+++ b/hal/audio_extn/usb.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013, 2016-2017 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013, 2016-2018 The Linux Foundation. All rights reserved.
* Not a Contribution.
*
* Copyright (C) 2013 The Android Open Source Project
@@ -51,6 +51,7 @@
#define ABS_SUB(A, B) (((A) > (B)) ? ((A) - (B)):((B) - (A)))
#define SAMPLE_RATE_8000 8000
#define SAMPLE_RATE_11025 11025
+#define SAMPLE_RATE_192000 192000
// Supported sample rates for USB
static uint32_t supported_sample_rates[] =
{384000, 352800, 192000, 176400, 96000, 88200, 64000, 48000, 44100, 32000, 22050, 16000, 11025, 8000};
@@ -280,6 +281,10 @@
for (i = 0; i < MAX_SAMPLE_RATE_SIZE; i++) {
if (supported_sample_rates[i] >= min_sr &&
supported_sample_rates[i] <= max_sr) {
+ // FIXME: we don't support >192KHz in recording path for now
+ if ((supported_sample_rates[i] > SAMPLE_RATE_192000) &&
+ (type == USB_CAPTURE))
+ continue;
config->rates[sr_size++] = supported_sample_rates[i];
supported_sample_rates_mask[type] |= (1<<i);
ALOGI_IF(usb_audio_debug_enable,
@@ -290,6 +295,12 @@
} else {
do {
sr = (uint32_t)atoi(next_sr_string);
+ // FIXME: we don't support >192KHz in recording path for now
+ if ((sr > SAMPLE_RATE_192000) && (type == USB_CAPTURE)) {
+ next_sr_string = strtok_r(NULL, " ,.-", &temp_ptr);
+ continue;
+ }
+
for (i = 0; i < MAX_SAMPLE_RATE_SIZE; i++) {
if (supported_sample_rates[i] == sr) {
ALOGI_IF(usb_audio_debug_enable,
@@ -1140,6 +1151,26 @@
return access(path, F_OK) == 0;
}
+bool audio_extn_usb_connected(struct str_parms *parms) {
+ int card;
+ struct listnode *node_i;
+ struct usb_card_config *usb_card_info;
+ bool usb_connected = false;
+
+ if (str_parms_get_int(parms, "card", &card) >= 0) {
+ usb_connected = audio_extn_usb_alive(card);
+ } else {
+ list_for_each(node_i, &usbmod->usb_card_conf_list) {
+ usb_card_info = node_to_item(node_i, struct usb_card_config, list);
+ if (audio_extn_usb_alive(usb_card_info->usb_card)) {
+ usb_connected = true;
+ break;
+ }
+ }
+ }
+ return usb_connected;
+}
+
void audio_extn_usb_init(void *adev)
{
if (usbmod == NULL) {
diff --git a/hal/audio_extn/utils.c b/hal/audio_extn/utils.c
index e03fdc8..d4c6351 100644
--- a/hal/audio_extn/utils.c
+++ b/hal/audio_extn/utils.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2017, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014-2018, The Linux Foundation. All rights reserved.
* Not a Contribution.
*
* Copyright (C) 2014 The Android Open Source Project
@@ -869,6 +869,25 @@
}
}
+void audio_extn_btsco_get_sample_rate(int snd_device, int *sample_rate)
+{
+ switch (snd_device) {
+ case SND_DEVICE_OUT_BT_SCO:
+ case SND_DEVICE_IN_BT_SCO_MIC:
+ case SND_DEVICE_IN_BT_SCO_MIC_NREC:
+ *sample_rate = 8000;
+ break;
+ case SND_DEVICE_OUT_BT_SCO_WB:
+ case SND_DEVICE_IN_BT_SCO_MIC_WB:
+ case SND_DEVICE_IN_BT_SCO_MIC_WB_NREC:
+ *sample_rate = 16000;
+ break;
+ default:
+ ALOGD("%s:Not a BT SCO device, need not update sampling rate\n", __func__);
+ break;
+ }
+}
+
static int send_app_type_cfg_for_device(struct audio_device *adev,
struct audio_usecase *usecase,
int split_snd_device)
@@ -935,8 +954,13 @@
goto exit_send_app_type_cfg;
}
snd_device = platform_get_spkr_prot_snd_device(snd_device);
-
- acdb_dev_id = platform_get_snd_device_acdb_id(snd_device);
+ if (voice_is_in_call_rec_stream(usecase->stream.in) && usecase->type == PCM_CAPTURE) {
+ snd_device_t voice_device = voice_get_incall_rec_snd_device(usecase->in_snd_device);
+ acdb_dev_id = platform_get_snd_device_acdb_id(voice_device);
+ ALOGV("acdb id for voice call use case %d", acdb_dev_id);
+ } else {
+ acdb_dev_id = platform_get_snd_device_acdb_id(snd_device);
+ }
if (acdb_dev_id <= 0) {
ALOGE("%s: Couldn't get the acdb dev id", __func__);
rc = -EINVAL;
@@ -992,6 +1016,7 @@
ALOGI("%s using %d sample rate rate for A2DP CoPP",
__func__, usecase->stream.out->app_type_cfg.sample_rate);
}
+ audio_extn_btsco_get_sample_rate(snd_device, &usecase->stream.out->app_type_cfg.sample_rate);
sample_rate = usecase->stream.out->app_type_cfg.sample_rate;
/* Interactive streams are supported with only direct app type id.
@@ -1034,6 +1059,11 @@
app_type_cfg[len++] = acdb_dev_id;
if (usecase->id == USECASE_AUDIO_RECORD_VOIP)
usecase->stream.in->app_type_cfg.sample_rate = usecase->stream.in->sample_rate;
+ if (voice_is_in_call_rec_stream(usecase->stream.in)) {
+ audio_extn_btsco_get_sample_rate(usecase->in_snd_device, &usecase->stream.in->app_type_cfg.sample_rate);
+ } else {
+ audio_extn_btsco_get_sample_rate(snd_device, &usecase->stream.in->app_type_cfg.sample_rate);
+ }
sample_rate = usecase->stream.in->app_type_cfg.sample_rate;
app_type_cfg[len++] = sample_rate;
if (snd_device_be_idx > 0)
@@ -1067,6 +1097,7 @@
{
int i, num_devices = 0;
snd_device_t new_snd_devices[SND_DEVICE_OUT_END] = {0};
+ snd_device_t in_snd_device = usecase->in_snd_device;
int rc = 0;
switch (usecase->type) {
@@ -1085,11 +1116,14 @@
case PCM_CAPTURE:
ALOGD("%s: usecase->in_snd_device %s",
__func__, platform_get_snd_device_name(usecase->in_snd_device));
+ if (voice_is_in_call_rec_stream(usecase->stream.in)) {
+ in_snd_device = voice_get_incall_rec_backend_device(usecase->stream.in);
+ }
/* check for in combo device */
if (platform_split_snd_device(adev->platform,
- usecase->in_snd_device,
+ in_snd_device,
&num_devices, new_snd_devices)) {
- new_snd_devices[0] = usecase->in_snd_device;
+ new_snd_devices[0] = in_snd_device;
num_devices = 1;
}
break;
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 3b8fb30..3eef21f 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -1361,7 +1361,9 @@
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 != uc_info)) {
+ if ((usecase->type != PCM_CAPTURE) &&
+ (usecase->type != VOICE_CALL) &&
+ (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) &&
@@ -1423,6 +1425,11 @@
usecase->out_snd_device,
platform_get_input_snd_device(adev->platform, uc_info->devices));
enable_audio_route(adev, usecase);
+ if (usecase->id == USECASE_AUDIO_PLAYBACK_VOIP) {
+ out_set_voip_volume(&usecase->stream.out->stream,
+ usecase->stream.out->volume_l,
+ usecase->stream.out->volume_r);
+ }
if (usecase->id == USECASE_AUDIO_PLAYBACK_FM) {
struct str_parms *parms = str_parms_create_str("fm_restore_volume=1");
if (parms)
@@ -3643,6 +3650,18 @@
!audio_extn_a2dp_is_ready()) {
val = AUDIO_DEVICE_OUT_SPEAKER;
}
+ /*
+ * When USB headset is disconnected the music platback paused
+ * and the policy manager send routing=0. But if the USB is connected
+ * back before the standby time, AFE is not closed and opened
+ * when USB is connected back. So routing to speker will guarantee
+ * AFE reconfiguration and AFE will be opend once USB is connected again
+ */
+ if ((out->devices & AUDIO_DEVICE_OUT_ALL_USB) &&
+ (val == AUDIO_DEVICE_NONE) &&
+ !audio_extn_usb_connected(parms)) {
+ val = AUDIO_DEVICE_OUT_SPEAKER;
+ }
/* To avoid a2dp to sco overlapping / BT device improper state
* check with BT lib about a2dp streaming support before routing
*/
@@ -4529,7 +4548,7 @@
out_get_sample_rate(&out->stream.common));
if (audio_extn_passthru_is_passthrough_stream(out)) {
- ALOGE("%s: write error, ret = %ld", __func__, ret);
+ ALOGE("%s: write error, ret = %zd", __func__, ret);
ATRACE_END();
return ret;
}
@@ -4660,43 +4679,27 @@
clock_gettime(CLOCK_MONOTONIC, timestamp);
} else {
if (out->pcm) {
- int64_t signed_frames = -1;
- // XXX it might be better to identify these
- // as realtime usecases?
- if (out->usecase == USECASE_AUDIO_PLAYBACK_MMAP ||
- out->usecase == USECASE_AUDIO_PLAYBACK_ULL) {
- unsigned int hw_ptr;
- if (pcm_mmap_get_hw_ptr(out->pcm, &hw_ptr, timestamp) == 0) {
- signed_frames = hw_ptr;
- }
- ALOGV("%s frames %lld", __func__, (long long)signed_frames);
- } else {
- unsigned int avail;
- if (pcm_get_htimestamp(out->pcm, &avail, timestamp) == 0) {
- size_t kernel_buffer_size =
- out->config.period_size * out->config.period_count;
- signed_frames =
- out->written - kernel_buffer_size + avail;
- }
- }
-
- // This adjustment accounts for buffering after app processor.
- // It is based on estimated DSP latency per use case, rather than exact.
- signed_frames -=
- (platform_render_latency(out->usecase) *
- out->sample_rate / 1000000LL);
-
- // Adjustment accounts for A2dp encoder latency with non offload usecases
- // Note: Encoder latency is returned in ms, while platform_render_latency in us.
- if (AUDIO_DEVICE_OUT_ALL_A2DP & out->devices) {
+ unsigned int avail;
+ if (pcm_get_htimestamp(out->pcm, &avail, timestamp) == 0) {
+ size_t kernel_buffer_size = out->config.period_size * out->config.period_count;
+ int64_t signed_frames = out->written - kernel_buffer_size + avail;
+ // This adjustment accounts for buffering after app processor.
+ // It is based on estimated DSP latency per use case, rather than exact.
signed_frames -=
- (audio_extn_a2dp_get_encoder_latency() * out->sample_rate / 1000);
- }
+ (platform_render_latency(out->usecase) * out->sample_rate / 1000000LL);
- // It would be unusual for this value to be negative, but check just in case ...
- if (signed_frames >= 0) {
- *frames = signed_frames;
- ret = 0;
+ // Adjustment accounts for A2dp encoder latency with non offload usecases
+ // Note: Encoder latency is returned in ms, while platform_render_latency in us.
+ if (AUDIO_DEVICE_OUT_ALL_A2DP & out->devices) {
+ signed_frames -=
+ (audio_extn_a2dp_get_encoder_latency() * out->sample_rate / 1000);
+ }
+
+ // It would be unusual for this value to be negative, but check just in case ...
+ if (signed_frames >= 0) {
+ *frames = signed_frames;
+ ret = 0;
+ }
}
} else if (out->card_status == CARD_STATUS_OFFLINE) {
*frames = out->written;
@@ -5402,7 +5405,8 @@
lock_input_stream(in);
pthread_mutex_lock(&in->dev->lock);
- if ((in->source == AUDIO_SOURCE_VOICE_COMMUNICATION) &&
+ if ((in->source == AUDIO_SOURCE_VOICE_COMMUNICATION ||
+ in->dev->mode == AUDIO_MODE_IN_COMMUNICATION) &&
in->enable_aec != enable &&
(memcmp(&desc.type, FX_IID_AEC, sizeof(effect_uuid_t)) == 0)) {
in->enable_aec = enable;
@@ -5416,7 +5420,8 @@
(memcmp(&desc.type, FX_IID_NS, sizeof(effect_uuid_t)) == 0)) {
in->enable_ns = enable;
if (!in->standby) {
- if (in->source == AUDIO_SOURCE_VOICE_COMMUNICATION) {
+ if (in->source == AUDIO_SOURCE_VOICE_COMMUNICATION ||
+ in->dev->mode == AUDIO_MODE_IN_COMMUNICATION) {
if (enable_disable_effect(in->dev, EFFECT_NS, enable) == ENOSYS)
select_devices(in->dev, in->usecase);
} else
@@ -6656,7 +6661,8 @@
bool valid_ch = audio_channel_count_from_in_mask(in->channel_mask) == 1;
#ifndef COMPRESS_VOIP_ENABLED
- if (valid_rate && valid_ch) {
+ if (valid_rate && valid_ch &&
+ in->dev->mode == AUDIO_MODE_IN_COMMUNICATION) {
in->usecase = USECASE_AUDIO_RECORD_VOIP;
in->config = default_pcm_config_voip_copp;
in->config.period_size = VOIP_IO_BUF_SIZE(in->sample_rate,
@@ -6849,6 +6855,7 @@
in->stream.stop = in_stop;
in->stream.create_mmap_buffer = in_create_mmap_buffer;
in->stream.get_mmap_position = in_get_mmap_position;
+ in->sample_rate = in->config.rate;
ALOGV("%s: USECASE_AUDIO_RECORD_MMAP", __func__);
} else if (in->realtime) {
in->config = pcm_config_audio_capture_rt;
@@ -6868,6 +6875,7 @@
in->config.rate = config->sample_rate;
in->config.format = pcm_format_from_audio_format(config->format);
in->config.channels = channel_count;
+ in->sample_rate = in->config.rate;
} else if ((in->device == AUDIO_DEVICE_IN_TELEPHONY_RX) ||
(in->device == AUDIO_DEVICE_IN_PROXY)) {
if (config->sample_rate == 0)
diff --git a/hal/msm8916/hw_info.c b/hal/msm8916/hw_info.c
index 26c6eaa..b88572f 100644
--- a/hal/msm8916/hw_info.c
+++ b/hal/msm8916/hw_info.c
@@ -118,6 +118,8 @@
strlcpy(hw_info->name, "msm8952", sizeof(hw_info->name));
} else if (!strcmp(snd_card_name, "msm8952-snd-card-mtp")) {
strlcpy(hw_info->name, "msm8952", sizeof(hw_info->name));
+ } else if (!strcmp(snd_card_name, "sdm439-snd-card-mtp")) {
+ strlcpy(hw_info->name, "msm8952", sizeof(hw_info->name));
} else if (!strcmp(snd_card_name, "msm8952-tomtom-snd-card")) {
strlcpy(hw_info->name, "msm8952", sizeof(hw_info->name));
} else if (!strcmp(snd_card_name, "msm8952-tasha-snd-card")) {
@@ -212,7 +214,8 @@
strstr(snd_card_name, "msm8937") || strstr(snd_card_name, "msm8917") ||
strstr(snd_card_name, "msm8940") || strstr(snd_card_name, "msm8920") ||
strstr(snd_card_name, "sdm660") || strstr(snd_card_name, "apq8009") ||
- strstr(snd_card_name, "mdm9607") || strstr(snd_card_name, "mdm-tasha")) {
+ strstr(snd_card_name, "mdm9607") || strstr(snd_card_name, "mdm-tasha") ||
+ strstr(snd_card_name, "sdm439")) {
ALOGV("8x16 - variant soundcard");
update_hardware_info_8x16(hw_info, snd_card_name);
} else {
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 21b6bce..e74353e 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -78,6 +78,7 @@
#define MIXER_XML_PATH "/etc/mixer_paths.xml"
#define MIXER_XML_PATH_MSM8909_PM8916 "/etc/mixer_paths_msm8909_pm8916.xml"
#define MIXER_XML_PATH_MTP "/etc/mixer_paths_mtp.xml"
+#define MIXER_XML_PATH_SDM439_PM8953 "/etc/mixer_paths_sdm439_pm8953.xml"
#define MIXER_XML_PATH_SKU2 "/etc/mixer_paths_qrd_sku2.xml"
#define MIXER_XML_PATH_WCD9326 "/etc/mixer_paths_wcd9326.xml"
#define MIXER_XML_PATH_WCD9335 "/etc/mixer_paths_wcd9335.xml"
@@ -93,6 +94,7 @@
#define MIXER_XML_PATH "/vendor/etc/mixer_paths.xml"
#define MIXER_XML_PATH_MSM8909_PM8916 "/vendor/etc/mixer_paths_msm8909_pm8916.xml"
#define MIXER_XML_PATH_MTP "/vendor/etc/mixer_paths_mtp.xml"
+#define MIXER_XML_PATH_SDM439_PM8953 "/vendor/etc/mixer_paths_sdm439_pm8953.xml"
#define MIXER_XML_PATH_SKU2 "/vendor/etc/mixer_paths_qrd_sku2.xml"
#define PLATFORM_INFO_XML_PATH_EXTCODEC "/vendor/etc/audio_platform_info_extcodec.xml"
#define PLATFORM_INFO_XML_PATH_SKUSH "/vendor/etc/audio_platform_info_skush.xml"
@@ -555,6 +557,9 @@
[SND_DEVICE_IN_EC_REF_LOOPBACK_MONO] = "ec-ref-loopback-mono",
[SND_DEVICE_IN_EC_REF_LOOPBACK_STEREO] = "ec-ref-loopback-stereo",
[SND_DEVICE_IN_HANDSET_GENERIC_QMIC] = "quad-mic",
+ [SND_DEVICE_IN_INCALL_REC_RX] = "incall-rec-rx",
+ [SND_DEVICE_IN_INCALL_REC_TX] = "incall-rec-tx",
+ [SND_DEVICE_IN_INCALL_REC_RX_TX] = "incall-rec-rx-tx",
};
// Platform specific backend bit width table
@@ -789,6 +794,7 @@
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED_VBAT)},
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_PROTECTED_RAS)},
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT_RAS)},
+ {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_HEADPHONES)},
#ifdef RECORD_PLAY_CONCURRENCY
{TO_NAME_INDEX(SND_DEVICE_OUT_VOIP_HANDSET)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOIP_SPEAKER)},
@@ -868,6 +874,9 @@
{TO_NAME_INDEX(SND_DEVICE_IN_EC_REF_LOOPBACK_MONO)},
{TO_NAME_INDEX(SND_DEVICE_IN_EC_REF_LOOPBACK_STEREO)},
{TO_NAME_INDEX(SND_DEVICE_IN_HANDSET_GENERIC_QMIC)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_INCALL_REC_RX)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_INCALL_REC_TX)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_INCALL_REC_RX_TX)},
};
static char * backend_tag_table[SND_DEVICE_MAX] = {0};
@@ -1223,6 +1232,13 @@
msm_device_to_be_id = msm_device_to_be_id_internal_codec;
msm_be_id_array_len =
sizeof(msm_device_to_be_id_internal_codec) / sizeof(msm_device_to_be_id_internal_codec[0]);
+ } else if (!strncmp(snd_card_name, "sdm439-snd-card-mtp",
+ sizeof("sdm439-snd-card-mtp"))) {
+ strlcpy(mixer_xml_path, MIXER_XML_PATH_SDM439_PM8953,
+ sizeof(MIXER_XML_PATH_SDM439_PM8953));
+ msm_device_to_be_id = msm_device_to_be_id_internal_codec;
+ msm_be_id_array_len =
+ sizeof(msm_device_to_be_id_internal_codec) / sizeof(msm_device_to_be_id_internal_codec[0]);
} else if (!strncmp(snd_card_name, "msm8952-tomtom-snd-card",
sizeof("msm8952-tomtom-snd-card"))) {
strlcpy(mixer_xml_path, MIXER_XML_PATH_WCD9330,
@@ -1682,6 +1698,8 @@
hw_interface_table[SND_DEVICE_IN_UNPROCESSED_QUAD_MIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_HANDSET_GENERIC_QMIC] = strdup("SLIMBUS_0_TX");
+ hw_interface_table[SND_DEVICE_IN_INCALL_REC_RX] = strdup("INCALL_RECORD_RX");
+ hw_interface_table[SND_DEVICE_IN_INCALL_REC_TX] = strdup("INCALL_RECORD_TX");
my_data->max_mic_count = PLATFORM_DEFAULT_MIC_COUNT;
/*remove ALAC & APE from DSP decoder list based on software decoder availability*/
@@ -2005,7 +2023,6 @@
}
while ((tdirent = readdir(tdir))) {
- char buf[50];
struct dirent *tzdirent;
DIR *tzdir = NULL;
@@ -2013,6 +2030,7 @@
if (!tzdir)
continue;
while ((tzdirent = readdir(tzdir))) {
+ char buf[50] = {0};
if (strcmp(tzdirent->d_name, "type"))
continue;
snprintf(name, MAX_PATH, TZ_TYPE, tzn);
@@ -2020,11 +2038,11 @@
read_line_from_file(name, buf, sizeof(buf));
if (strstr(buf, file)) {
wsa_count++;
- /*We support max only two WSA speakers*/
- if (wsa_count == 2)
- break;
}
tzn++;
+ /*We support max only two WSA speakers*/
+ if (wsa_count == 2)
+ break;
}
closedir(tzdir);
}
@@ -3795,6 +3813,11 @@
new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER;
new_snd_devices[1] = SND_DEVICE_OUT_BT_A2DP;
ret = 0;
+ } else if (SND_DEVICE_IN_INCALL_REC_RX_TX == snd_device) {
+ *num_devices = 2;
+ new_snd_devices[0] = SND_DEVICE_IN_INCALL_REC_RX;
+ new_snd_devices[1] = SND_DEVICE_IN_INCALL_REC_TX;
+ ret = 0;
}
ALOGD("%s: snd_device(%d) num devices(%d) new_snd_devices(%d)", __func__,
@@ -4003,8 +4026,6 @@
snd_device = SND_DEVICE_OUT_BT_SCO_WB;
else
snd_device = SND_DEVICE_OUT_BT_SCO;
- } else if (devices & AUDIO_DEVICE_OUT_ALL_A2DP) {
- snd_device = SND_DEVICE_OUT_BT_A2DP;
} else if (devices & AUDIO_DEVICE_OUT_SPEAKER) {
if (my_data->is_vbat_speaker) {
if (my_data->mono_speaker == SPKR_1)
@@ -7352,7 +7373,8 @@
(!strcmp(snd_card_name, "msm8952-snd-card-mtp")) ||
(!strcmp(snd_card_name, "msm8976-skun-snd-card")) ||
(!strcmp(snd_card_name, "msm8953-snd-card-mtp")) ||
- (!strcmp(snd_card_name, "msm8953-sku4-snd-card")))
+ (!strcmp(snd_card_name, "msm8953-sku4-snd-card")) ||
+ (!strcmp(snd_card_name, "sdm439-snd-card-mtp")))
return 1;
else
return 0;
diff --git a/hal/msm8916/platform.h b/hal/msm8916/platform.h
index aeefcc2..c610e4c 100644
--- a/hal/msm8916/platform.h
+++ b/hal/msm8916/platform.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2017, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2018, The Linux Foundation. All rights reserved.
* Not a Contribution.
*
* Copyright (C) 2013 The Android Open Source Project
@@ -229,6 +229,9 @@
SND_DEVICE_IN_EC_REF_LOOPBACK_MONO,
SND_DEVICE_IN_EC_REF_LOOPBACK_STEREO,
SND_DEVICE_IN_HANDSET_GENERIC_QMIC,
+ SND_DEVICE_IN_INCALL_REC_RX,
+ SND_DEVICE_IN_INCALL_REC_TX,
+ SND_DEVICE_IN_INCALL_REC_RX_TX,
SND_DEVICE_IN_END,
SND_DEVICE_MAX = SND_DEVICE_IN_END,
diff --git a/hal/msm8974/hw_info.c b/hal/msm8974/hw_info.c
index 26c92ec..7afc21a 100644
--- a/hal/msm8974/hw_info.c
+++ b/hal/msm8974/hw_info.c
@@ -542,6 +542,9 @@
if (!strncmp(snd_card_name, "sdm660-snd-card",
sizeof("sdm660-snd-card")))
strlcpy(hw_info->name, "sdm660", sizeof(hw_info->name));
+ if (!strncmp(snd_card_name, "qcs605-lc-snd-card",
+ sizeof("qcs605-lc-snd-card")))
+ strlcpy(hw_info->name, "qcs605-lc", sizeof(hw_info->name));
else if (!strncmp(snd_card_name, "sdm660-tavil-snd-card",
sizeof("sdm660-tavil-snd-card")))
strlcpy(hw_info->name, "sdm660", sizeof(hw_info->name));
@@ -597,7 +600,7 @@
} else if(strstr(snd_card_name, "sdm845")) {
ALOGV("SDM845 - variant soundcard");
update_hardware_info_sdm845(hw_info, snd_card_name);
- } else if (strstr(snd_card_name, "sdm660") || strstr(snd_card_name, "sdm670")) {
+ } else if (strstr(snd_card_name, "sdm660") || strstr(snd_card_name, "sdm670") || strstr(snd_card_name, "qcs605-lc")) {
ALOGV("Bear - variant soundcard");
update_hardware_info_bear(hw_info, snd_card_name);
} else if (strstr(snd_card_name, "sdx")) {
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 475e438..9a5d647 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -539,6 +539,9 @@
[SND_DEVICE_IN_UNPROCESSED_QUAD_MIC] = "unprocessed-quad-mic",
[SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC] = "unprocessed-headset-mic",
[SND_DEVICE_IN_HANDSET_GENERIC_QMIC] = "quad-mic",
+ [SND_DEVICE_IN_INCALL_REC_RX] = "incall-rec-rx",
+ [SND_DEVICE_IN_INCALL_REC_TX] = "incall-rec-tx",
+ [SND_DEVICE_IN_INCALL_REC_RX_TX] = "incall-rec-rx-tx",
};
// Platform specific backend bit width table
@@ -849,6 +852,9 @@
{TO_NAME_INDEX(SND_DEVICE_IN_UNPROCESSED_QUAD_MIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC)},
{TO_NAME_INDEX(SND_DEVICE_IN_HANDSET_GENERIC_QMIC)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_INCALL_REC_RX)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_INCALL_REC_TX)},
+ {TO_NAME_INDEX(SND_DEVICE_IN_INCALL_REC_RX_TX)},
};
static char * backend_tag_table[SND_DEVICE_MAX] = {0};
@@ -1032,7 +1038,9 @@
!strncmp(snd_card_name, "sdm660-snd-card-mtp",
sizeof("sdm660-snd-card-mtp")) ||
!strncmp(snd_card_name, "sdm670-mtp-snd-card",
- sizeof("sdm670-mtp-snd-card"))) {
+ sizeof("sdm670-mtp-snd-card")) ||
+ !strncmp(snd_card_name, "qcs605-lc-snd-card",
+ sizeof("qcs605-lc-snd-card"))) {
ALOGI("%s: snd_card_name: %s",__func__,snd_card_name);
my_data->is_internal_codec = true;
my_data->is_slimbus_interface = false;
@@ -1539,6 +1547,8 @@
hw_interface_table[SND_DEVICE_IN_UNPROCESSED_QUAD_MIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC] = strdup("SLIMBUS_0_TX");
hw_interface_table[SND_DEVICE_IN_HANDSET_GENERIC_QMIC] = strdup("SLIMBUS_0_TX");
+ hw_interface_table[SND_DEVICE_IN_INCALL_REC_RX] = strdup("INCALL_RECORD_RX");
+ hw_interface_table[SND_DEVICE_IN_INCALL_REC_TX] = strdup("INCALL_RECORD_TX");
my_data->max_mic_count = PLATFORM_DEFAULT_MIC_COUNT;
@@ -2369,7 +2379,8 @@
if (!my_data->is_slimbus_interface) {
if (!strncmp(snd_card_name, "sdm660", strlen("sdm660")) ||
- !strncmp(snd_card_name, "sdm670", strlen("sdm670"))) {
+ !strncmp(snd_card_name, "sdm670", strlen("sdm670")) ||
+ !strncmp(snd_card_name, "qcs605", strlen("qcs605"))) {
my_data->current_backend_cfg[DEFAULT_CODEC_BACKEND].bitwidth_mixer_ctl =
strdup("INT4_MI2S_RX Format");
@@ -3604,6 +3615,11 @@
new_snd_devices[0] = SND_DEVICE_OUT_SPEAKER;
new_snd_devices[1] = SND_DEVICE_OUT_BT_A2DP;
ret = 0;
+ } else if (SND_DEVICE_IN_INCALL_REC_RX_TX == snd_device) {
+ *num_devices = 2;
+ new_snd_devices[0] = SND_DEVICE_IN_INCALL_REC_RX;
+ new_snd_devices[1] = SND_DEVICE_IN_INCALL_REC_TX;
+ ret = 0;
}
ALOGD("%s: snd_device(%d) num devices(%d) new_snd_devices(%d)", __func__,
@@ -3845,8 +3861,6 @@
} else
snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
}
- } else if (devices & AUDIO_DEVICE_OUT_ALL_A2DP) {
- snd_device = SND_DEVICE_OUT_BT_A2DP;
} else if (devices & AUDIO_DEVICE_OUT_ANLG_DOCK_HEADSET ||
devices & AUDIO_DEVICE_OUT_DGTL_DOCK_HEADSET) {
snd_device = SND_DEVICE_OUT_USB_HEADSET;
@@ -6202,6 +6216,13 @@
/*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
@@ -6225,7 +6246,8 @@
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))) {
+ &backend_cfg)) ||
+ (!platform_check_backends_match(usecase->out_snd_device, snd_device))) {
ret = platform_set_codec_backend_cfg(adev, new_snd_devices[i],
backend_cfg);
if (!ret) {
diff --git a/hal/msm8974/platform.h b/hal/msm8974/platform.h
index 8151ea6..04f25de 100644
--- a/hal/msm8974/platform.h
+++ b/hal/msm8974/platform.h
@@ -234,6 +234,9 @@
SND_DEVICE_IN_EC_REF_LOOPBACK_MONO,
SND_DEVICE_IN_EC_REF_LOOPBACK_STEREO,
SND_DEVICE_IN_HANDSET_GENERIC_QMIC,
+ SND_DEVICE_IN_INCALL_REC_RX,
+ SND_DEVICE_IN_INCALL_REC_TX,
+ SND_DEVICE_IN_INCALL_REC_RX_TX,
SND_DEVICE_IN_END,
SND_DEVICE_MAX = SND_DEVICE_IN_END,
diff --git a/hal/voice.c b/hal/voice.c
index f9e3562..70bb7e1 100644
--- a/hal/voice.c
+++ b/hal/voice.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2017, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2018, The Linux Foundation. All rights reserved.
* Not a contribution.
*
* Copyright (C) 2013 The Android Open Source Project
@@ -226,16 +226,17 @@
goto error_start_voice;
}
- uc_info->in_snd_device = SND_DEVICE_NONE;
- uc_info->out_snd_device = SND_DEVICE_NONE;
-
- if (audio_is_bluetooth_sco_device(uc_info->devices) && !adev->bt_sco_on) {
- ALOGE("start_call: couldn't find BT SCO, SCO is not ready");
+ if ((audio_is_bluetooth_sco_device(uc_info->devices) && !adev->bt_sco_on) ||
+ audio_is_a2dp_out_device(uc_info->devices)) {
+ ALOGE("start_call: BT SCO is chosen but SCO is not ready, or A2DP is selected");
adev->voice.in_call = false;
ret = -EIO;
goto error_start_voice;
}
+ uc_info->in_snd_device = SND_DEVICE_NONE;
+ uc_info->out_snd_device = SND_DEVICE_NONE;
+
list_add_tail(&adev->usecase_list, &uc_info->list);
select_devices(adev, usecase_id);
@@ -436,6 +437,27 @@
return ret;
}
+snd_device_t voice_get_incall_rec_backend_device(struct stream_in *in)
+{
+ snd_device_t incall_record_device = {0};
+
+ switch(in->source) {
+ case AUDIO_SOURCE_VOICE_UPLINK:
+ incall_record_device = SND_DEVICE_IN_INCALL_REC_TX;
+ break;
+ case AUDIO_SOURCE_VOICE_DOWNLINK:
+ incall_record_device = SND_DEVICE_IN_INCALL_REC_RX;
+ break;
+ case AUDIO_SOURCE_VOICE_CALL:
+ incall_record_device = SND_DEVICE_IN_INCALL_REC_RX_TX;
+ break;
+ default:
+ ALOGI("Invalid source %d", in->source);
+ }
+
+ return incall_record_device;
+}
+
snd_device_t voice_get_incall_rec_snd_device(snd_device_t in_snd_device)
{
snd_device_t incall_record_device = in_snd_device;
diff --git a/hal/voice.h b/hal/voice.h
index 3ae42a8..ca46e24 100644
--- a/hal/voice.h
+++ b/hal/voice.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2013-2016,2018, The Linux Foundation. All rights reserved.
* Not a contribution.
*
* Copyright (C) 2013 The Android Open Source Project
@@ -101,4 +101,5 @@
snd_device_t out_snd_device,
bool enable);
bool voice_is_call_state_active(struct audio_device *adev);
+snd_device_t voice_get_incall_rec_backend_device(struct stream_in *in);
#endif //VOICE_H
diff --git a/mm-audio/aenc-aac/qdsp6/test/omx_aac_enc_test.c b/mm-audio/aenc-aac/qdsp6/test/omx_aac_enc_test.c
index 97b7617..967a7e3 100644
--- a/mm-audio/aenc-aac/qdsp6/test/omx_aac_enc_test.c
+++ b/mm-audio/aenc-aac/qdsp6/test/omx_aac_enc_test.c
@@ -278,12 +278,6 @@
status = -1;
goto exit;
}
- ptr = (char *)malloc(strlen(input) + 1);
- if (ptr == NULL) {
- DEBUG_PRINT("Low memory\n");
- status = -1;
- goto exit;
- }
/* Check for negative input */
if (*input == '-') {
DEBUG_PRINT("Negative Number is not allowed\n");
@@ -322,8 +316,6 @@
break;
}
exit:
- if (ptr != NULL)
- free(ptr);
if (status != 0)
exit(0);
return value;
diff --git a/mm-audio/aenc-evrc/qdsp6/test/omx_evrc_enc_test.c b/mm-audio/aenc-evrc/qdsp6/test/omx_evrc_enc_test.c
index 8c89e61..d1b4837 100644
--- a/mm-audio/aenc-evrc/qdsp6/test/omx_evrc_enc_test.c
+++ b/mm-audio/aenc-evrc/qdsp6/test/omx_evrc_enc_test.c
@@ -291,12 +291,6 @@
status = -1;
goto exit;
}
- ptr = (char *)malloc(strlen(input) + 1);
- if (ptr == NULL) {
- DEBUG_PRINT("Low memory\n");
- status = -1;
- goto exit;
- }
/* Check for negative input */
if (*input == '-') {
DEBUG_PRINT("Negative Number is not allowed\n");
@@ -335,8 +329,6 @@
break;
}
exit:
- if (ptr != NULL)
- free(ptr);
if (status != 0)
exit(0);
return value;
diff --git a/mm-audio/aenc-qcelp13/qdsp6/test/omx_qcelp13_enc_test.c b/mm-audio/aenc-qcelp13/qdsp6/test/omx_qcelp13_enc_test.c
index d5ec4c7..f35af33 100644
--- a/mm-audio/aenc-qcelp13/qdsp6/test/omx_qcelp13_enc_test.c
+++ b/mm-audio/aenc-qcelp13/qdsp6/test/omx_qcelp13_enc_test.c
@@ -290,12 +290,6 @@
status = -1;
goto exit;
}
- ptr = (char *)malloc(strlen(input) + 1);
- if (ptr == NULL) {
- DEBUG_PRINT("Low memory\n");
- status = -1;
- goto exit;
- }
/* Check for negative input */
if (*input == '-') {
DEBUG_PRINT("Negative Number is not allowed\n");
@@ -334,8 +328,6 @@
break;
}
exit:
- if (ptr != NULL)
- free(ptr);
if (status != 0)
exit(0);
return value;
diff --git a/qahw_api/test/qahw_multi_record_test.c b/qahw_api/test/qahw_multi_record_test.c
index 2e0a396..2d9ee6a 100644
--- a/qahw_api/test/qahw_multi_record_test.c
+++ b/qahw_api/test/qahw_multi_record_test.c
@@ -75,6 +75,8 @@
double record_length;
char profile[50];
char kvpairs[256];
+ bool timestamp_mode;
+ char timestamp_file_in[256];
};
struct timed_params {
@@ -261,6 +263,7 @@
char file_name[256] = "/data/rec";
int data_sz = 0, name_len = strlen(file_name);
qahw_in_buffer_t in_buf;
+ static int64_t timestamp = 1;
struct audio_config_params* params = (struct audio_config_params*) thread_param;
qahw_module_handle_t *qahw_mod_handle = params->qahw_mod_handle;
@@ -358,6 +361,19 @@
test_end();
pthread_exit(0);
}
+
+ FILE *fd_in_ts;
+ if (params->timestamp_mode) {
+ if (*(params->timestamp_file_in))
+ fd_in_ts = fopen(params->timestamp_file_in, "w+");
+ if (fd_in_ts == NULL) {
+ fprintf(log_file, "playback timestamps file open failed \n");
+ if (log_file != stdout)
+ fprintf(stdout, "playback timestamps file open failed \n");
+ test_end();
+ pthread_exit(0);
+ }
+ }
int bps = 16;
switch(params->config.format) {
@@ -411,8 +427,12 @@
in_buf.buffer = buffer;
in_buf.bytes = buffer_size;
+ if (params->timestamp_mode)
+ in_buf.timestamp = ×tamp;
bytes_read = qahw_in_read(in_handle, &in_buf);
+ if (params->timestamp_mode)
+ fprintf(fd_in_ts, "timestamp:%lu\n", timestamp);
if (kpi_mode) {
if (count == 0) {
ret = clock_gettime(CLOCK_REALTIME, &tsColdF);
@@ -437,6 +457,9 @@
}
data_sz += buffer_size;
}
+ if (params->timestamp_mode)
+ fclose(fd_in_ts);
+
/*Stopping sourcetracking thread*/
sourcetrack_done = 1;
@@ -548,6 +571,7 @@
thread_param->source = 1;
thread_param->record_length = 8 /*sec*/;
thread_param->record_delay = 0 /*sec*/;
+ thread_param->timestamp_mode = false;
thread_param->handle = 0x99A - rec_session;
}
@@ -568,6 +592,7 @@
printf(" -D --recording-delay <in seconds> - Delay in seconds after which recording should be started\n\n");
printf(" -l --log-file <FILEPATH> - File path for debug msg, to print\n");
printf(" on console use stdout or 1 \n\n");
+ printf(" -m --timestamp-mode <FILEPATH> - Use this flag to support timestamp-mode and timestamp file path for debug msg\n");
printf(" -K --kpi-mode - Use this flag to measure latency KPIs for this recording\n\n");
printf(" -i --interactive-mode - Use this flag if prefer configuring streams using interactive mode\n");
printf(" All other flags passed would be ignore if this flag is used\n\n");
@@ -586,6 +611,8 @@
printf(" hal_rec_test -F 1 --kpi-mode -> start a recording with low latency input flag and calculate latency KPIs\n\n");
printf(" hal_rec_test -c 1 -r 16000 -t 30 -k ffvOn=true;ffv_ec_ref_ch_cnt=2 -> Enable FFV with stereo ec ref\n");
printf(" For mono channel 16kHz rate for 30seconds\n\n");
+ printf(" hal_rec_test -d 2 -f 1 -r 44100 -c 2 -t 8 -D 2 -m <FILEPATH> -F 2147483648 --> enable timestamp mode and\n");
+ printf(" print timestamp debug msg in specified FILEPATH\n");
}
static void qti_audio_server_death_notify_cb(void *ctxt __unused) {
@@ -622,6 +649,7 @@
{"recording-time", required_argument, 0, 't'},
{"recording-delay", required_argument, 0, 'D'},
{"log-file", required_argument, 0, 'l'},
+ {"timestamp-file", required_argument, 0, 'm'},
{"kpi-mode", no_argument, 0, 'K'},
{"interactive", no_argument, 0, 'i'},
{"source-tracking", no_argument, 0, 'S'},
@@ -634,7 +662,7 @@
int option_index = 0;
while ((opt = getopt_long(argc,
argv,
- "-d:f:F:r:c:s:p:t:D:l:k:KiSh",
+ "-d:f:F:r:c:s:p:t:D:l:m:k:KiSh",
long_options,
&option_index)) != -1) {
switch (opt) {
@@ -668,6 +696,10 @@
case 'l':
snprintf(log_filename, sizeof(log_filename), "%s", optarg);
break;
+ case 'm':
+ params[0].timestamp_mode = true;
+ snprintf(params[0].timestamp_file_in, sizeof(params[0].timestamp_file_in), "%s", optarg);
+ break;
case 'K':
kpi_mode = true;
break;