Merge "config: update usb output profiles to have dynamic channelmask"
diff --git a/configs/common_au/overlay/frameworks/base/core/res/res/values/config.xml b/configs/common_au/overlay/frameworks/base/core/res/res/values/config.xml
deleted file mode 100644
index acde6c2..0000000
--- a/configs/common_au/overlay/frameworks/base/core/res/res/values/config.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-    Copyright (c) 2016, 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
--->
-<resources>
-
-   <!-- This file contains only audio specific overrides for overlays -->
-
-   <!-- When true use the linux /dev/input/event subsystem to detect the switch changes
-   on the headphone/microphone jack. When false use the older uevent framework -->
-   <bool name="config_useDevInputEventForAudioJack">true</bool>
-
-</resources>
diff --git a/configs/kona/audio_configs.xml b/configs/kona/audio_configs.xml
index 3c13e33..f5ea583 100644
--- a/configs/kona/audio_configs.xml
+++ b/configs/kona/audio_configs.xml
@@ -49,6 +49,10 @@
         <flag name="audio_extn_hdmi_spk_enabled" value="true" />
         <flag name="use_xml_audio_policy_conf" value="true" />
         <flag name="voice_concurrency" value="false" />
+        <flag name="afe_proxy_enabled" value="true" />
+        <flag name="compress_voip_enabled" value="false" />
+        <flag name="fm_power_opt" value="true" />
+        <flag name="record_play_concurrency" value="false" />
 
         <!-- AV Configs -->
         <property name="vendor.audio.use.sw.alac.decoder" value="true"/>
@@ -65,50 +69,4 @@
         <flag name="qti_flac_decoder" value="true" />
         <flag name="vorbis_offload_enabled" value="true" />
         <flag name="wma_offload_enabled" value="true" />
-
-        <!-- AHAL Configs -->
-        <flag name="a2dp_offload_enabled" value="true" />
-        <flag name="anc_headset_enabled" value="true" />
-        <flag name="audiosphere_enabled" value="true" />
-        <flag name="audio_zoom_enabled" value="false" />
-        <flag name="battery_listener_enabled" value="true" />
-        <flag name="compress_capture_enabled" value="false" />
-        <flag name="compress_in_enabled" value="true" />
-        <flag name="compress_metadata_needed" value="true" />
-        <flag name="concurrent_capture_enabled" value="true" />
-        <flag name="custom_stereo_enabled" value="true" />
-        <flag name="display_port_enabled" value="true" />
-        <flag name="dsm_feedback_enabled" value="false" />
-        <flag name="dynamic_ecns_enabled" value="true" />
-        <flag name="ext_hw_plugin_enabled" value="true" />
-        <flag name="ext_qdsp_enabled" value="false" />
-        <flag name="ext_spkr_enabled" value="false" />
-        <flag name="ext_spkr_tfa_enabled" value="false" />
-        <flag name="fluence_enabled" value="true" />
-        <flag name="hdmi_edid_enabled" value="true" />
-        <flag name="hdmi_passthrough_enabled" value="true" />
-        <flag name="hfp_enabled" value="true" />
-        <flag name="hifi_audio_enabled" value="false" />
-        <flag name="hwdep_cal_enabled" value="false" />
-        <flag name="incall_music_enabled" value="true" />
-        <flag name="keep_alive_enabled" value="true" />
-        <flag name="kpi_optimize_enabled" value="true" />
-        <flag name="maxx_audio_enabled" value="false" />
-        <flag name="receiver_aided_stereo" value="true" />
-        <flag name="snd_monitor_enabled" value="true" />
-        <flag name="source_track_enabled" value="true" />
-        <flag name="spkr_prot_enabled" value="true" />
-        <flag name="ssrec_enabled" value="true" />
-        <flag name="usb_offload_burst_mode" value="true" />
-        <flag name="usb_offload_enabled" value="true" />
-        <flag name="usb_offload_sidetone_vol_enabled" value="false" />
-        <flag name="use_deep_buffer_as_primary_output" value="false" />
-        <flag name="vbat_enabled" value="true" />
-        <flag name="wsa_enabled" value="false" />
-
-        <!-- Common configs between APM and AHAL -->
-        <flag name="afe_proxy_enabled" value="true" />
-        <flag name="compress_voip_enabled" value="false" />
-        <flag name="fm_power_opt" value="true" />
-        <flag name="record_play_concurrency" value="false" />
 </configs>
diff --git a/configs/kona/audio_configs_stock.xml b/configs/kona/audio_configs_stock.xml
index e26ef14..dd0c3b4 100644
--- a/configs/kona/audio_configs_stock.xml
+++ b/configs/kona/audio_configs_stock.xml
@@ -29,45 +29,4 @@
 -->
 <configs>
         <!-- AHAL Configs -->
-        <flag name="a2dp_offload_enabled" value="true" />
-        <flag name="afe_proxy_enabled" value="false" />
-        <flag name="anc_headset_enabled" value="false" />
-        <flag name="audio_zoom_enabled" value="false" />
-        <flag name="audiosphere_enabled" value="false" />
-        <flag name="battery_listener_enabled" value="false" />
-        <flag name="compress_capture_enabled" value="false" />
-        <flag name="compress_in_enabled" value="false" />
-        <flag name="compress_metadata_needed" value="false" />
-        <flag name="compress_voip_enabled" value="false" />
-        <flag name="concurrent_capture_enabled" value="true" />
-        <flag name="custom_stereo_enabled" value="false" />
-        <flag name="display_port_enabled" value="false" />
-        <flag name="dsm_feedback_enabled" value="false" />
-        <flag name="dynamic_ecns_enabled" value="false" />
-        <flag name="ext_hw_plugin_enabled" value="false" />
-        <flag name="ext_qdsp_enabled" value="true" />
-        <flag name="ext_spkr_enabled" value="true" />
-        <flag name="ext_spkr_tfa_enabled" value="false" />
-        <flag name="fluence_enabled" value="false" />
-        <flag name="fm_power_opt" value="false" />
-        <flag name="hdmi_edid_enabled" value="false" />
-        <flag name="hdmi_passthrough_enabled" value="false" />
-        <flag name="hfp_enabled" value="true" />
-        <flag name="hifi_audio_enabled" value="false" />
-        <flag name="hwdep_cal_enabled" value="true" />
-        <flag name="incall_music_enabled" value="true" />
-        <flag name="keep_alive_enabled" value="false" />
-        <flag name="kpi_optimize_enabled" value="false" />
-        <flag name="receiver_aided_stereo" value="false" />
-        <flag name="record_play_concurrency" value="false" />
-        <flag name="snd_monitor_enabled" value="true" />
-        <flag name="source_track_enabled" value="false" />
-        <flag name="spkr_prot_enabled" value="true" />
-        <flag name="ssrec_enabled" value="false" />
-        <flag name="usb_offload_burst_mode" value="false" />
-        <flag name="usb_offload_enabled" value="true" />
-        <flag name="usb_offload_sidetone_vol_enabled" value="false" />
-        <flag name="use_deep_buffer_as_primary_output" value="false" />
-        <flag name="vbat_enabled" value="false" />
-        <flag name="wsa_enabled" value="false" />
 </configs>
diff --git a/configs/kona/kona.mk b/configs/kona/kona.mk
index 33a678f..a4818d8 100644
--- a/configs/kona/kona.mk
+++ b/configs/kona/kona.mk
@@ -423,6 +423,7 @@
 vendor.audio.feature.hifi_audio.enable=false \
 vendor.audio.feature.hwdep_cal.enable=false \
 vendor.audio.feature.incall_music.enable=true \
+vendor.audio.feature.multi_voice_session.enable=true \
 vendor.audio.feature.keep_alive.enable=true \
 vendor.audio.feature.kpi_optimize.enable=true \
 vendor.audio.feature.maxx_audio.enable=false \
diff --git a/configs/kona/mixer_paths.xml b/configs/kona/mixer_paths.xml
index 201c9fb..e987687 100644
--- a/configs/kona/mixer_paths.xml
+++ b/configs/kona/mixer_paths.xml
@@ -2526,7 +2526,12 @@
     </path>
 
     <path name="voice-tty-hco-headset-mic">
-        <path name="voice-tty-full-headset-mic" />
+        <ctl name="TX DEC6 MUX" value="SWR_MIC" />
+        <ctl name="TX SMIC MUX6" value="ADC1" />
+        <ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
+        <ctl name="TX_AIF1_CAP Mixer DEC6" value="1" />
+        <ctl name="ADC2_MIXER Switch" value="1" />
+        <ctl name="ADC2 MUX" value="INP2" />
     </path>
 
     <path name="voice-tty-vco-handset-mic">
diff --git a/configs/lito/audio_configs.xml b/configs/lito/audio_configs.xml
index 271023d..8e3cda2 100644
--- a/configs/lito/audio_configs.xml
+++ b/configs/lito/audio_configs.xml
@@ -49,6 +49,10 @@
         <flag name="audio_extn_hdmi_spk_enabled" value="true" />
         <flag name="use_xml_audio_policy_conf" value="true" />
         <flag name="voice_concurrency" value="false" />
+        <flag name="afe_proxy_enabled" value="true" />
+        <flag name="compress_voip_enabled" value="false" />
+        <flag name="fm_power_opt" value="true" />
+        <flag name="record_play_concurrency" value="false" />
 
         <!-- AV Configs -->
         <property name="vendor.audio.use.sw.alac.decoder" value="true"/>
@@ -65,50 +69,4 @@
         <flag name="qti_flac_decoder" value="true" />
         <flag name="vorbis_offload_enabled" value="true" />
         <flag name="wma_offload_enabled" value="true" />
-
-        <!-- AHAL Configs -->
-        <flag name="a2dp_offload_enabled" value="true" />
-        <flag name="anc_headset_enabled" value="true" />
-        <flag name="audiosphere_enabled" value="true" />
-        <flag name="audio_zoom_enabled" value="false" />
-        <flag name="battery_listener_enabled" value="true" />
-        <flag name="compress_capture_enabled" value="false" />
-        <flag name="compress_in_enabled" value="true" />
-        <flag name="compress_metadata_needed" value="true" />
-        <flag name="concurrent_capture_enabled" value="true" />
-        <flag name="custom_stereo_enabled" value="true" />
-        <flag name="display_port_enabled" value="true" />
-        <flag name="dsm_feedback_enabled" value="false" />
-        <flag name="dynamic_ecns_enabled" value="true" />
-        <flag name="ext_hw_plugin_enabled" value="true" />
-        <flag name="ext_qdsp_enabled" value="false" />
-        <flag name="ext_spkr_enabled" value="false" />
-        <flag name="ext_spkr_tfa_enabled" value="false" />
-        <flag name="fluence_enabled" value="true" />
-        <flag name="hdmi_edid_enabled" value="true" />
-        <flag name="hdmi_passthrough_enabled" value="true" />
-        <flag name="hfp_enabled" value="true" />
-        <flag name="hifi_audio_enabled" value="false" />
-        <flag name="hwdep_cal_enabled" value="false" />
-        <flag name="incall_music_enabled" value="true" />
-        <flag name="keep_alive_enabled" value="true" />
-        <flag name="kpi_optimize_enabled" value="true" />
-        <flag name="maxx_audio_enabled" value="false" />
-        <flag name="receiver_aided_stereo" value="true" />
-        <flag name="snd_monitor_enabled" value="true" />
-        <flag name="source_track_enabled" value="true" />
-        <flag name="spkr_prot_enabled" value="true" />
-        <flag name="ssrec_enabled" value="true" />
-        <flag name="usb_offload_burst_mode" value="true" />
-        <flag name="usb_offload_enabled" value="true" />
-        <flag name="usb_offload_sidetone_vol_enabled" value="false" />
-        <flag name="use_deep_buffer_as_primary_output" value="false" />
-        <flag name="vbat_enabled" value="true" />
-        <flag name="wsa_enabled" value="false" />
-
-        <!-- Common configs between APM and AHAL -->
-        <flag name="afe_proxy_enabled" value="true" />
-        <flag name="compress_voip_enabled" value="false" />
-        <flag name="fm_power_opt" value="true" />
-        <flag name="record_play_concurrency" value="false" />
 </configs>
diff --git a/configs/lito/audio_configs_stock.xml b/configs/lito/audio_configs_stock.xml
index e26ef14..dd0c3b4 100644
--- a/configs/lito/audio_configs_stock.xml
+++ b/configs/lito/audio_configs_stock.xml
@@ -29,45 +29,4 @@
 -->
 <configs>
         <!-- AHAL Configs -->
-        <flag name="a2dp_offload_enabled" value="true" />
-        <flag name="afe_proxy_enabled" value="false" />
-        <flag name="anc_headset_enabled" value="false" />
-        <flag name="audio_zoom_enabled" value="false" />
-        <flag name="audiosphere_enabled" value="false" />
-        <flag name="battery_listener_enabled" value="false" />
-        <flag name="compress_capture_enabled" value="false" />
-        <flag name="compress_in_enabled" value="false" />
-        <flag name="compress_metadata_needed" value="false" />
-        <flag name="compress_voip_enabled" value="false" />
-        <flag name="concurrent_capture_enabled" value="true" />
-        <flag name="custom_stereo_enabled" value="false" />
-        <flag name="display_port_enabled" value="false" />
-        <flag name="dsm_feedback_enabled" value="false" />
-        <flag name="dynamic_ecns_enabled" value="false" />
-        <flag name="ext_hw_plugin_enabled" value="false" />
-        <flag name="ext_qdsp_enabled" value="true" />
-        <flag name="ext_spkr_enabled" value="true" />
-        <flag name="ext_spkr_tfa_enabled" value="false" />
-        <flag name="fluence_enabled" value="false" />
-        <flag name="fm_power_opt" value="false" />
-        <flag name="hdmi_edid_enabled" value="false" />
-        <flag name="hdmi_passthrough_enabled" value="false" />
-        <flag name="hfp_enabled" value="true" />
-        <flag name="hifi_audio_enabled" value="false" />
-        <flag name="hwdep_cal_enabled" value="true" />
-        <flag name="incall_music_enabled" value="true" />
-        <flag name="keep_alive_enabled" value="false" />
-        <flag name="kpi_optimize_enabled" value="false" />
-        <flag name="receiver_aided_stereo" value="false" />
-        <flag name="record_play_concurrency" value="false" />
-        <flag name="snd_monitor_enabled" value="true" />
-        <flag name="source_track_enabled" value="false" />
-        <flag name="spkr_prot_enabled" value="true" />
-        <flag name="ssrec_enabled" value="false" />
-        <flag name="usb_offload_burst_mode" value="false" />
-        <flag name="usb_offload_enabled" value="true" />
-        <flag name="usb_offload_sidetone_vol_enabled" value="false" />
-        <flag name="use_deep_buffer_as_primary_output" value="false" />
-        <flag name="vbat_enabled" value="false" />
-        <flag name="wsa_enabled" value="false" />
 </configs>
diff --git a/configs/lito/audio_platform_info.xml b/configs/lito/audio_platform_info.xml
index a1e2468..93d47c5 100644
--- a/configs/lito/audio_platform_info.xml
+++ b/configs/lito/audio_platform_info.xml
@@ -102,6 +102,7 @@
         <usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="in" id="36" />
         <usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="out" id="36" />
         <usecase name="USECASE_INCALL_MUSIC_UPLINK" type="out" id="23" />
+        <usecase name="USECASE_AUDIO_RECORD_COMPRESS2" type="in" id="37" />
     </pcm_ids>
     <config_params>
         <param key="spkr_1_tz_name" value="wsatz.13"/>
@@ -137,6 +138,7 @@
         <device name="SND_DEVICE_OUT_SPEAKER_AND_LINE" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
         <device name="SND_DEVICE_OUT_SPEAKER_AND_ANC_HEADSET" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
         <device name="SND_DEVICE_OUT_VOICE_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
+        <device name="SND_DEVICE_OUT_VOICE_HEADSET" backend="headset" interface="RX_CDC_DMA_RX_0"/>
         <device name="SND_DEVICE_OUT_VOICE_ANC_HEADSET" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
         <device name="SND_DEVICE_OUT_VOICE_LINE" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
         <device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
@@ -189,10 +191,15 @@
         <device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC" interface="TX_CDC_DMA_TX_3"/>
         <device name="SND_DEVICE_IN_SPEAKER_DMIC_NS" interface="TX_CDC_DMA_TX_3"/>
         <device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
-        <device name="SND_DEVICE_IN_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
-        <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" interface="TX_CDC_DMA_TX_3"/>
+        <device name="SND_DEVICE_IN_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_VOICE_REC_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_HEADSET_MIC_AEC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
         <device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" interface="TX_CDC_DMA_TX_3"/>
-        <device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
         <device name="SND_DEVICE_IN_HDMI_MIC" interface="HDMI"/>
         <device name="SND_DEVICE_IN_BT_SCO_MIC" interface="SLIMBUS_7_TX"/>
         <device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="SLIMBUS_7_TX"/>
diff --git a/configs/lito/audio_platform_info_intcodec.xml b/configs/lito/audio_platform_info_intcodec.xml
index 7f2a4a0..e72a83a 100644
--- a/configs/lito/audio_platform_info_intcodec.xml
+++ b/configs/lito/audio_platform_info_intcodec.xml
@@ -66,6 +66,7 @@
         <usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="in" id="36" />
         <usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="out" id="36" />
         <usecase name="USECASE_INCALL_MUSIC_UPLINK" type="out" id="23" />
+        <usecase name="USECASE_AUDIO_RECORD_COMPRESS2" type="in" id="37" />
     </pcm_ids>
     <config_params>
         <!-- In the below value string, the value indicates default mono -->
@@ -114,6 +115,7 @@
         <device name="SND_DEVICE_OUT_SPEAKER_AND_LINE" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
         <device name="SND_DEVICE_OUT_SPEAKER_AND_ANC_HEADSET" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
         <device name="SND_DEVICE_OUT_VOICE_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
+         <device name="SND_DEVICE_OUT_VOICE_HEADSET" backend="headset" interface="RX_CDC_DMA_RX_0"/>
         <device name="SND_DEVICE_OUT_VOICE_ANC_HEADSET" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
         <device name="SND_DEVICE_OUT_VOICE_LINE" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
         <device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
@@ -166,10 +168,15 @@
         <device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC" interface="TX_CDC_DMA_TX_3"/>
         <device name="SND_DEVICE_IN_SPEAKER_DMIC_NS" interface="TX_CDC_DMA_TX_3"/>
         <device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
-        <device name="SND_DEVICE_IN_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
-        <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" interface="TX_CDC_DMA_TX_3"/>
+        <device name="SND_DEVICE_IN_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_VOICE_REC_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_HEADSET_MIC_AEC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
         <device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" interface="TX_CDC_DMA_TX_3"/>
-        <device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
         <device name="SND_DEVICE_IN_HDMI_MIC" interface="HDMI"/>
         <device name="SND_DEVICE_IN_BT_SCO_MIC" interface="SLIMBUS_7_TX"/>
         <device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="SLIMBUS_7_TX"/>
diff --git a/configs/lito/audio_platform_info_qrd.xml b/configs/lito/audio_platform_info_qrd.xml
index 635f321..b8bbf8a 100644
--- a/configs/lito/audio_platform_info_qrd.xml
+++ b/configs/lito/audio_platform_info_qrd.xml
@@ -66,6 +66,7 @@
         <usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="in" id="36" />
         <usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="out" id="36" />
         <usecase name="USECASE_INCALL_MUSIC_UPLINK" type="out" id="23" />
+        <usecase name="USECASE_AUDIO_RECORD_COMPRESS2" type="in" id="37" />
     </pcm_ids>
     <config_params>
         <!-- In the below value string, the value indicates default mono -->
@@ -113,6 +114,7 @@
         <device name="SND_DEVICE_OUT_SPEAKER_AND_LINE" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
         <device name="SND_DEVICE_OUT_SPEAKER_AND_ANC_HEADSET" backend="speaker-and-headphones" interface="WSA_CDC_DMA_RX_0-and-RX_CDC_DMA_RX_0"/>
         <device name="SND_DEVICE_OUT_VOICE_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
+        <device name="SND_DEVICE_OUT_VOICE_HEADSET" backend="headset" interface="RX_CDC_DMA_RX_0"/>
         <device name="SND_DEVICE_OUT_VOICE_ANC_HEADSET" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
         <device name="SND_DEVICE_OUT_VOICE_LINE" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
         <device name="SND_DEVICE_OUT_VOICE_TTY_FULL_HEADPHONES" backend="headphones" interface="RX_CDC_DMA_RX_0"/>
@@ -165,10 +167,15 @@
         <device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC" interface="TX_CDC_DMA_TX_3"/>
         <device name="SND_DEVICE_IN_SPEAKER_DMIC_NS" interface="TX_CDC_DMA_TX_3"/>
         <device name="SND_DEVICE_IN_SPEAKER_DMIC_AEC_NS" interface="TX_CDC_DMA_TX_3"/>
-        <device name="SND_DEVICE_IN_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
-        <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" interface="TX_CDC_DMA_TX_3"/>
+        <device name="SND_DEVICE_IN_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_VOICE_TTY_FULL_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_VOICE_TTY_HCO_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_VOICE_REC_HEADSET_MIC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
+        <device name="SND_DEVICE_IN_HEADSET_MIC_AEC" backend="headset-mic" interface="TX_CDC_DMA_TX_4"/>
         <device name="SND_DEVICE_IN_VOICE_SPEAKER_MIC" interface="TX_CDC_DMA_TX_3"/>
-        <device name="SND_DEVICE_IN_VOICE_HEADSET_MIC" interface="TX_CDC_DMA_TX_3"/>
         <device name="SND_DEVICE_IN_HDMI_MIC" interface="HDMI"/>
         <device name="SND_DEVICE_IN_BT_SCO_MIC" interface="SLIMBUS_7_TX"/>
         <device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="SLIMBUS_7_TX"/>
diff --git a/configs/lito/audio_policy_configuration.xml b/configs/lito/audio_policy_configuration.xml
index d932652..c6365ff 100644
--- a/configs/lito/audio_policy_configuration.xml
+++ b/configs/lito/audio_policy_configuration.xml
@@ -194,7 +194,7 @@
                              samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
                              channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
                 </mixPort>
-                <mixPort name="record_24" role="sink">
+                <mixPort name="record_24" role="sink" maxOpenCount="2" maxActiveCount="2">
                     <profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
                              samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,96000,192000"
                              channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4"/>
diff --git a/configs/lito/lito.mk b/configs/lito/lito.mk
index 4022d72..0b0f1bb 100644
--- a/configs/lito/lito.mk
+++ b/configs/lito/lito.mk
@@ -394,7 +394,7 @@
 vendor.audio.feature.compress_in.enable=true \
 vendor.audio.feature.compress_meta_data.enable=true \
 vendor.audio.feature.compr_voip.enable=false \
-vendor.audio.feature.concurrent_capture.enable=false \
+vendor.audio.feature.concurrent_capture.enable=true \
 vendor.audio.feature.custom_stereo.enable=true \
 vendor.audio.feature.display_port.enable=true \
 vendor.audio.feature.dsm_feedback.enable=false \
@@ -411,6 +411,7 @@
 vendor.audio.feature.hifi_audio.enable=false \
 vendor.audio.feature.hwdep_cal.enable=false \
 vendor.audio.feature.incall_music.enable=true \
+vendor.audio.feature.multi_voice_session.enable=true \
 vendor.audio.feature.keep_alive.enable=true \
 vendor.audio.feature.kpi_optimize.enable=true \
 vendor.audio.feature.maxx_audio.enable=false \
diff --git a/configs/lito/mixer_paths.xml b/configs/lito/mixer_paths.xml
index ec6be2e..deb5cd4 100644
--- a/configs/lito/mixer_paths.xml
+++ b/configs/lito/mixer_paths.xml
@@ -61,11 +61,16 @@
     <ctl name="MultiMedia5 Mixer AFE_PCM_TX" value="0" />
     <ctl name="MultiMedia5 Mixer TX_CDC_DMA_TX_3" value="0" />
     <ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_3" value="0" />
+    <ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_4" value="0" />
     <ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
     <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
     <ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_3" value="0" />
+    <ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_4" value="0" />
     <ctl name="MultiMedia10 Mixer SLIM_7_TX" value="0" />
     <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="0" />
+    <ctl name="MultiMedia17 Mixer TX_CDC_DMA_TX_3" value="0" />
+    <ctl name="MultiMedia17 Mixer TX_CDC_DMA_TX_4" value="0" />
+    <ctl name="MultiMedia17 Mixer SLIM_7_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" />
@@ -129,6 +134,7 @@
     <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="MultiMedia17 Mixer USB_AUDIO_TX" value="0" />
     <ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
     <ctl name="WSA_CDC_DMA_RX_0 Channels" value="One" />
     <ctl name="RX_CDC_DMA_RX_0 Channels" value="One" />
@@ -175,6 +181,7 @@
     <ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="0" />
     <ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="0" />
     <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="0" />
+    <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_4_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" />
@@ -191,6 +198,7 @@
     <ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="0" />
     <ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="0" />
     <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="0" />
+    <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_4_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" />
@@ -423,6 +431,7 @@
 
     <!-- defaults for mmap record -->
     <ctl name="MultiMedia16 Mixer TX_CDC_DMA_TX_3" value="0" />
+    <ctl name="MultiMedia16 Mixer TX_CDC_DMA_TX_4" value="0" />
     <ctl name="MultiMedia16 Mixer SLIM_7_TX" value="0" />
     <ctl name="MultiMedia16 Mixer SLIM_8_TX" value="0" />
     <ctl name="MultiMedia16 Mixer USB_AUDIO_TX" value="0" />
@@ -440,6 +449,10 @@
         <ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_CDC_DMA_RX_0" />
     </path>
 
+    <path name="echo-reference headset">
+        <path name="echo-reference headphones" />
+    </path>
+
     <path name="echo-reference display-port">
         <ctl name="AUDIO_REF_EC_UL1 MUX" value="DISPLAY_PORT" />
     </path>
@@ -507,6 +520,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia1" value="1" />
     </path>
 
+    <path name="deep-buffer-playback headset">
+        <path name="deep-buffer-playback headphones" />
+    </path>
+
     <path name="deep-buffer-playback speaker-and-headphones">
         <path name="deep-buffer-playback headphones" />
         <path name="deep-buffer-playback" />
@@ -578,6 +595,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia5" value="1" />
     </path>
 
+    <path name="low-latency-playback headset">
+        <path name="low-latency-playback headphones" />
+    </path>
+
     <path name="low-latency-playback speaker-and-headphones">
         <path name="low-latency-playback headphones" />
         <path name="low-latency-playback" />
@@ -613,6 +634,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia8" value="1" />
     </path>
 
+    <path name="audio-ull-playback headset">
+        <path name="audio-ull-playback headphones" />
+    </path>
+
     <path name="audio-ull-playback speaker-and-headphones">
         <path name="audio-ull-playback" />
         <path name="audio-ull-playback headphones" />
@@ -730,6 +755,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia4" value="1" />
     </path>
 
+    <path name="compress-offload-playback headset">
+        <path name="compress-offload-playback headphones" />
+    </path>
+
     <path name="compress-offload-playback headphones-44.1">
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia4" value="1" />
     </path>
@@ -805,6 +834,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia7" value="1" />
     </path>
 
+    <path name="compress-offload-playback2 headset">
+        <path name="compress-offload-playback2 headphones" />
+    </path>
+
     <path name="compress-offload-playback2 headphones-44.1">
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia7" value="1" />
 
@@ -881,6 +914,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
     </path>
 
+    <path name="compress-offload-playback3 headset">
+        <path name="compress-offload-playback3 headphones" />
+    </path>
+
     <path name="compress-offload-playback3 headphones-44.1">
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
     </path>
@@ -957,6 +994,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
     </path>
 
+    <path name="compress-offload-playback4 headset">
+        <path name="compress-offload-playback4 headphones" />
+    </path>
+
     <path name="compress-offload-playback4 headphones-44.1">
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
     </path>
@@ -1032,6 +1073,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
     </path>
 
+    <path name="compress-offload-playback5 headset">
+        <path name="compress-offload-playback5 headphones" />
+    </path>
+
     <path name="compress-offload-playback5 headphones-44.1">
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
     </path>
@@ -1107,6 +1152,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
     </path>
 
+    <path name="compress-offload-playback6 headset">
+        <path name="compress-offload-playback6 headphones" />
+    </path>
+
     <path name="compress-offload-playback6 headphones-44.1">
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
     </path>
@@ -1182,6 +1231,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
     </path>
 
+    <path name="compress-offload-playback7 headset">
+        <path name="compress-offload-playback7 headphones" />
+    </path>
+
     <path name="compress-offload-playback7 headphones-44.1">
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
     </path>
@@ -1257,6 +1310,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
     </path>
 
+    <path name="compress-offload-playback8 headset">
+        <path name="compress-offload-playback8 headphones" />
+    </path>
+
     <path name="compress-offload-playback8 headphones-44.1">
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
     </path>
@@ -1332,6 +1389,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
     </path>
 
+    <path name="compress-offload-playback9 headset">
+        <path name="compress-offload-playback9 headphones" />
+    </path>
+
     <path name="compress-offload-playback9 headphones-44.1">
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
     </path>
@@ -1381,6 +1442,10 @@
         <path name="audio-record bt-sco" />
     </path>
 
+    <path name="audio-record headset-mic">
+        <ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_4" value="1" />
+    </path>
+
     <path name="audio-record capture-fm">
         <ctl name="MultiMedia1 Mixer SLIM_8_TX" value="1" />
     </path>
@@ -1406,6 +1471,31 @@
         <ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="1" />
     </path>
 
+    <path name="audio-record-compress2">
+        <ctl name="MultiMedia17 Mixer TX_CDC_DMA_TX_3" value="1" />
+    </path>
+
+    <path name="audio-record-compress2 bt-sco">
+        <ctl name="MultiMedia17 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-compress2 bt-sco" />
+    </path>
+
+    <path name="audio-record-compress2 bt-sco-swb">
+        <path name="audio-record-compress2 bt-sco" />
+    </path>
+
+    <path name="audio-record-compress2 usb-headset-mic">
+        <ctl name="MultiMedia17 Mixer USB_AUDIO_TX" value="1" />
+    </path>
+
+    <path name="audio-record-compress2 headset-mic">
+        <ctl name="MultiMedia17 Mixer TX_CDC_DMA_TX_4" value="1" />
+    </path>
+
     <path name="low-latency-record">
       <ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_3" value="1" />
     </path>
@@ -1447,6 +1537,10 @@
         <ctl name="RX_CDC_DMA_RX_0_DL_HL Switch" value="1" />
     </path>
 
+    <path name="play-fm headset">
+        <path name="play-fm headphones" />
+    </path>
+
     <path name="incall-rec-uplink">
         <ctl name="MultiMedia1 Mixer VOC_REC_UL" value="1" />
     </path>
@@ -1471,6 +1565,10 @@
         <path name="incall-rec-uplink" />
     </path>
 
+    <path name="incall-rec-uplink headset-mic">
+        <path name="incall-rec-uplink" />
+    </path>
+
     <path name="incall-rec-uplink-compress">
         <ctl name="MultiMedia8 Mixer VOC_REC_UL" value="1" />
     </path>
@@ -1495,6 +1593,10 @@
         <path name="incall-rec-uplink-compress" />
     </path>
 
+    <path name="incall-rec-uplink-compress headset-mic">
+        <path name="incall-rec-uplink-compress" />
+    </path>
+
     <path name="incall-rec-downlink">
         <ctl name="MultiMedia1 Mixer VOC_REC_DL"  value="1" />
     </path>
@@ -1519,6 +1621,10 @@
         <path name="incall-rec-downlink" />
     </path>
 
+    <path name="incall-rec-downlink headset-mic">
+        <path name="incall-rec-downlink" />
+    </path>
+
     <path name="incall-rec-downlink-compress">
         <ctl name="MultiMedia8 Mixer VOC_REC_DL" value="1" />
     </path>
@@ -1543,6 +1649,10 @@
         <path name="incall-rec-downlink-compress" />
     </path>
 
+    <path name="incall-rec-downlink-compress 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" />
@@ -1568,6 +1678,10 @@
         <path name="incall-rec-uplink-and-downlink" />
     </path>
 
+    <path name="incall-rec-uplink-and-downlink headset-mic">
+        <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" />
@@ -1593,6 +1707,10 @@
         <path name="incall-rec-uplink-and-downlink-compress" />
     </path>
 
+    <path name="incall-rec-uplink-and-downlink-compress headset-mic">
+        <path name="incall-rec-uplink-and-downlink-compress" />
+    </path>
+
     <path name="hfp-sco">
     </path>
 
@@ -1662,6 +1780,11 @@
         <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
     </path>
 
+    <path name="voicemmode1-call headset">
+        <ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="1" />
+        <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_4_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" />
@@ -1711,6 +1834,11 @@
         <ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="1" />
     </path>
 
+    <path name="voicemmode2-call headset">
+        <ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="1" />
+        <ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_4_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" />
@@ -1819,6 +1947,10 @@
         <path name="audio-record-voip bt-sco" />
     </path>
 
+    <path name="audio-record-voip headset-mic">
+        <ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_4" value="1" />
+    </path>
+
     <path name="spkr-rx-calib">
         <ctl name="WSA_CDC_DMA_RX_0_DL_HL Switch"  value="1" />
     </path>
@@ -1828,10 +1960,10 @@
 
     <!-- These are actual sound device specific mixer settings -->
     <path name="amic2">
-        <ctl name="TX DEC0 MUX" value="SWR_MIC" />
-        <ctl name="TX SMIC MUX0" value="ADC1" />
-        <ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
-        <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+        <ctl name="TX DEC5 MUX" value="SWR_MIC" />
+        <ctl name="TX SMIC MUX5" value="ADC1" />
+        <ctl name="TX_CDC_DMA_TX_4 Channels" value="One" />
+        <ctl name="TX_AIF2_CAP Mixer DEC5" value="1" />
         <ctl name="ADC2_MIXER Switch" value="1" />
         <ctl name="ADC2 MUX" value="INP2" />
     </path>
@@ -2054,7 +2186,6 @@
 
     <path name="headset-mic">
         <path name="amic2" />
-        <ctl name="TX_DEC0 Volume" value="84" />
     </path>
 
     <path name="headset-mic-liquid">
@@ -2111,6 +2242,10 @@
         <path name="headphones" />
     </path>
 
+    <path name="voice-headset">
+        <path name="headphones" />
+    </path>
+
     <path name="voice-line">
         <path name="voice-headphones" />
     </path>
@@ -2646,6 +2781,10 @@
        <ctl name="MultiMedia16 Mixer USB_AUDIO_TX" value="1" />
     </path>
 
+    <path name="mmap-record headset-mic">
+        <ctl name="MultiMedia16 Mixer TX_CDC_DMA_TX_4" value="1" />
+    </path>
+
     <path name="hifi-playback display-port">
         <ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
     </path>
@@ -2726,6 +2865,10 @@
         <path name="incall_music_uplink" />
     </path>
 
+    <path name="incall_music_uplink headset">
+        <path name="incall_music_uplink" />
+    </path>
+
     <path name="incall_music_uplink speaker-and-headphones">
         <path name="incall_music_uplink" />
     </path>
diff --git a/configs/lito/mixer_paths_qrd.xml b/configs/lito/mixer_paths_qrd.xml
index b246c5a..3a17be2 100644
--- a/configs/lito/mixer_paths_qrd.xml
+++ b/configs/lito/mixer_paths_qrd.xml
@@ -61,11 +61,16 @@
     <ctl name="MultiMedia5 Mixer AFE_PCM_TX" value="0" />
     <ctl name="MultiMedia5 Mixer TX_CDC_DMA_TX_3" value="0" />
     <ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_3" value="0" />
+    <ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_4" value="0" />
     <ctl name="MultiMedia1 Mixer SLIM_7_TX" value="0" />
     <ctl name="MultiMedia8 Mixer SLIM_7_TX" value="0" />
     <ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_3" value="0" />
+    <ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_4" value="0" />
     <ctl name="MultiMedia10 Mixer SLIM_7_TX" value="0" />
     <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="0" />
+    <ctl name="MultiMedia17 Mixer TX_CDC_DMA_TX_3" value="0" />
+    <ctl name="MultiMedia17 Mixer TX_CDC_DMA_TX_4" value="0" />
+    <ctl name="MultiMedia17 Mixer SLIM_7_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" />
@@ -129,6 +134,7 @@
     <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="MultiMedia17 Mixer USB_AUDIO_TX" value="0" />
     <ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
     <ctl name="WSA_CDC_DMA_RX_0 Channels" value="One" />
     <ctl name="RX_CDC_DMA_RX_0 Channels" value="One" />
@@ -175,6 +181,7 @@
     <ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="0" />
     <ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="0" />
     <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="0" />
+    <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_4_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" />
@@ -191,6 +198,7 @@
     <ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="0" />
     <ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="0" />
     <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="0" />
+    <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_4_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" />
@@ -423,6 +431,7 @@
 
     <!-- defaults for mmap record -->
     <ctl name="MultiMedia16 Mixer TX_CDC_DMA_TX_3" value="0" />
+    <ctl name="MultiMedia16 Mixer TX_CDC_DMA_TX_4" value="0" />
     <ctl name="MultiMedia16 Mixer SLIM_7_TX" value="0" />
     <ctl name="MultiMedia16 Mixer SLIM_8_TX" value="0" />
     <ctl name="MultiMedia16 Mixer USB_AUDIO_TX" value="0" />
@@ -440,6 +449,10 @@
         <ctl name="AUDIO_REF_EC_UL1 MUX" value="RX_CDC_DMA_RX_0" />
     </path>
 
+    <path name="echo-reference headset">
+        <path name="echo-reference headphones" />
+    </path>
+
     <path name="echo-reference display-port">
         <ctl name="AUDIO_REF_EC_UL1 MUX" value="DISPLAY_PORT" />
     </path>
@@ -515,6 +528,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia1" value="1" />
     </path>
 
+    <path name="deep-buffer-playback headset">
+        <path name="deep-buffer-playback headphones" />
+    </path>
+
     <path name="deep-buffer-playback speaker-and-headphones">
         <path name="deep-buffer-playback headphones" />
         <path name="deep-buffer-playback" />
@@ -590,6 +607,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia5" value="1" />
     </path>
 
+    <path name="low-latency-playback headset">
+        <path name="low-latency-playback headphones" />
+    </path>
+
     <path name="low-latency-playback speaker-and-headphones">
         <path name="low-latency-playback headphones" />
         <path name="low-latency-playback" />
@@ -626,6 +647,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia8" value="1" />
     </path>
 
+    <path name="audio-ull-playback headset">
+        <path name="audio-ull-playback headphones" />
+    </path>
+
     <path name="audio-ull-playback speaker-and-headphones">
         <path name="audio-ull-playback" />
         <path name="audio-ull-playback headphones" />
@@ -747,6 +772,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia4" value="1" />
     </path>
 
+    <path name="compress-offload-playback headset">
+        <path name="compress-offload-playback headphones" />
+    </path>
+
     <path name="compress-offload-playback headphones-44.1">
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia4" value="1" />
     </path>
@@ -822,6 +851,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia7" value="1" />
     </path>
 
+    <path name="compress-offload-playback2 headset">
+        <path name="compress-offload-playback2 headphones" />
+    </path>
+
     <path name="compress-offload-playback2 headphones-44.1">
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia7" value="1" />
     </path>
@@ -897,6 +930,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
     </path>
 
+    <path name="compress-offload-playback3 headset">
+        <path name="compress-offload-playback3 headphones" />
+    </path>
+
     <path name="compress-offload-playback3 headphones-44.1">
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
     </path>
@@ -973,6 +1010,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
     </path>
 
+    <path name="compress-offload-playback4 headset">
+        <path name="compress-offload-playback4 headphones" />
+    </path>
+
     <path name="compress-offload-playback4 headphones-44.1">
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia11" value="1" />
     </path>
@@ -1048,6 +1089,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
     </path>
 
+    <path name="compress-offload-playback5 headset">
+        <path name="compress-offload-playback5 headphones" />
+    </path>
+
     <path name="compress-offload-playback5 headphones-44.1">
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia12" value="1" />
     </path>
@@ -1123,6 +1168,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
     </path>
 
+    <path name="compress-offload-playback6 headset">
+        <path name="compress-offload-playback6 headphones" />
+    </path>
+
     <path name="compress-offload-playback6 headphones-44.1">
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia13" value="1" />
     </path>
@@ -1198,6 +1247,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
     </path>
 
+    <path name="compress-offload-playback7 headset">
+        <path name="compress-offload-playback7 headphones" />
+    </path>
+
     <path name="compress-offload-playback7 headphones-44.1">
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia14" value="1" />
     </path>
@@ -1273,6 +1326,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
     </path>
 
+    <path name="compress-offload-playback8 headset">
+        <path name="compress-offload-playback8 headphones" />
+    </path>
+
     <path name="compress-offload-playback8 headphones-44.1">
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia15" value="1" />
     </path>
@@ -1348,6 +1405,10 @@
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
     </path>
 
+    <path name="compress-offload-playback9 headset">
+        <path name="compress-offload-playback9 headphones" />
+    </path>
+
     <path name="compress-offload-playback9 headphones-44.1">
         <ctl name="RX_CDC_DMA_RX_0 Audio Mixer MultiMedia16" value="1" />
     </path>
@@ -1393,6 +1454,10 @@
         <path name="audio-record bt-sco" />
     </path>
 
+    <path name="audio-record headset-mic">
+        <ctl name="MultiMedia1 Mixer TX_CDC_DMA_TX_4" value="1" />
+    </path>
+
     <path name="audio-record capture-fm">
         <ctl name="MultiMedia1 Mixer SLIM_8_TX" value="1" />
     </path>
@@ -1418,6 +1483,31 @@
         <ctl name="MultiMedia8 Mixer USB_AUDIO_TX" value="1" />
     </path>
 
+    <path name="audio-record-compress2">
+        <ctl name="MultiMedia17 Mixer TX_CDC_DMA_TX_3" value="1" />
+    </path>
+
+    <path name="audio-record-compress2 bt-sco">
+        <ctl name="MultiMedia17 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-compress2 bt-sco" />
+    </path>
+
+    <path name="audio-record-compress2 bt-sco-swb">
+        <path name="audio-record-compress2 bt-sco" />
+    </path>
+
+    <path name="audio-record-compress2 usb-headset-mic">
+        <ctl name="MultiMedia17 Mixer USB_AUDIO_TX" value="1" />
+    </path>
+
+    <path name="audio-record-compress2 headset-mic">
+        <ctl name="MultiMedia17 Mixer TX_CDC_DMA_TX_4" value="1" />
+    </path>
+
     <path name="low-latency-record">
       <ctl name="MultiMedia8 Mixer TX_CDC_DMA_TX_3" value="1" />
     </path>
@@ -1459,6 +1549,10 @@
         <ctl name="RX_CDC_DMA_RX_0_DL_HL Switch" value="1" />
     </path>
 
+    <path name="play-fm headset">
+        <path name="play-fm headphones" />
+    </path>
+
     <path name="incall-rec-uplink">
         <ctl name="MultiMedia1 Mixer VOC_REC_UL" value="1" />
     </path>
@@ -1483,6 +1577,10 @@
         <path name="incall-rec-uplink" />
     </path>
 
+    <path name="incall-rec-uplink headset-mic">
+        <path name="incall-rec-uplink" />
+    </path>
+
     <path name="incall-rec-uplink-compress">
         <ctl name="MultiMedia8 Mixer VOC_REC_UL" value="1" />
     </path>
@@ -1507,6 +1605,10 @@
         <path name="incall-rec-uplink-compress" />
     </path>
 
+    <path name="incall-rec-uplink-compress headset-mic">
+        <path name="incall-rec-uplink-compress" />
+    </path>
+
     <path name="incall-rec-downlink">
         <ctl name="MultiMedia1 Mixer VOC_REC_DL"  value="1" />
     </path>
@@ -1531,6 +1633,10 @@
         <path name="incall-rec-downlink" />
     </path>
 
+    <path name="incall-rec-downlink headset-mic">
+        <path name="incall-rec-downlink" />
+    </path>
+
     <path name="incall-rec-downlink-compress">
         <ctl name="MultiMedia8 Mixer VOC_REC_DL" value="1" />
     </path>
@@ -1555,6 +1661,10 @@
         <path name="incall-rec-downlink-compress" />
     </path>
 
+    <path name="incall-rec-downlink-compress 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" />
@@ -1580,6 +1690,10 @@
         <path name="incall-rec-uplink-and-downlink" />
     </path>
 
+    <path name="incall-rec-uplink-and-downlink headset-mic">
+        <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" />
@@ -1605,6 +1719,10 @@
         <path name="incall-rec-uplink-and-downlink-compress" />
     </path>
 
+    <path name="incall-rec-uplink-and-downlink-compress headset-mic">
+        <path name="incall-rec-uplink-and-downlink-compress" />
+    </path>
+
     <path name="hfp-sco">
     </path>
 
@@ -1683,6 +1801,11 @@
         <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
     </path>
 
+    <path name="voicemmode1-call headset">
+        <ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="1" />
+        <ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_4_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" />
@@ -1737,6 +1860,11 @@
         <ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="1" />
     </path>
 
+    <path name="voicemmode2-call headset">
+        <ctl name="RX_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="1" />
+        <ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_4_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" />
@@ -1849,6 +1977,10 @@
         <path name="audio-record-voip bt-sco" />
     </path>
 
+    <path name="audio-record-voip headset-mic">
+        <ctl name="MultiMedia10 Mixer TX_CDC_DMA_TX_4" value="1" />
+    </path>
+
     <path name="bt-a2dp">
         <ctl name="SLIM7_RX ADM Channels" value="Two" />
     </path>
@@ -2056,6 +2188,10 @@
        <ctl name="MultiMedia16 Mixer USB_AUDIO_TX" value="1" />
     </path>
 
+    <path name="mmap-record headset-mic">
+        <ctl name="MultiMedia16 Mixer TX_CDC_DMA_TX_4" value="1" />
+    </path>
+
     <path name="hifi-playback display-port">
         <ctl name="DISPLAY_PORT Mixer MultiMedia2" value="1" />
     </path>
@@ -2132,6 +2268,10 @@
         <path name="incall_music_uplink" />
     </path>
 
+    <path name="incall_music_uplink headset">
+        <path name="incall_music_uplink" />
+    </path>
+
     <path name="incall_music_uplink speaker-and-headphones">
         <path name="incall_music_uplink" />
     </path>
@@ -2172,10 +2312,10 @@
     </path>
 
     <path name="amic2">
-        <ctl name="TX DEC0 MUX" value="SWR_MIC" />
-        <ctl name="TX SMIC MUX0" value="ADC1" />
-        <ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
-        <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+        <ctl name="TX DEC5 MUX" value="SWR_MIC" />
+        <ctl name="TX SMIC MUX5" value="ADC1" />
+        <ctl name="TX_CDC_DMA_TX_4 Channels" value="One" />
+        <ctl name="TX_AIF2_CAP Mixer DEC5" value="1" />
         <ctl name="ADC2_MIXER Switch" value="1" />
         <ctl name="ADC2 MUX" value="INP2" />
     </path>
@@ -2403,6 +2543,10 @@
         <path name="headphones" />
     </path>
 
+    <path name="voice-headset">
+        <path name="headphones" />
+    </path>
+
     <path name="voice-line">
         <path name="voice-headphones" />
     </path>
diff --git a/configs/lito/sound_trigger_platform_info.xml b/configs/lito/sound_trigger_platform_info.xml
index 510fa09..3f5f5df 100644
--- a/configs/lito/sound_trigger_platform_info.xml
+++ b/configs/lito/sound_trigger_platform_info.xml
@@ -48,6 +48,7 @@
         <param backend_dai_name="VA_CDC_DMA_TX_0" />
         <!-- Param used to indicate if SVA has dedicated SLIM ports -->
         <param dedicated_sva_path="true" />
+        <param dedicated_headset_path="false" />
         <param platform_lpi_enable="true" />
     </common_config>
     <acdb_ids>
diff --git a/configs/msm8937/audio_configs.xml b/configs/msm8937/audio_configs.xml
index ed3ed8d..0b0caba 100644
--- a/configs/msm8937/audio_configs.xml
+++ b/configs/msm8937/audio_configs.xml
@@ -49,6 +49,10 @@
         <flag name="audio_extn_hdmi_spk_enabled" value="true" />
         <flag name="use_xml_audio_policy_conf" value="true" />
         <flag name="voice_concurrency" value="false" />
+        <flag name="afe_proxy_enabled" value="true" />
+        <flag name="compress_voip_enabled" value="true" />
+        <flag name="fm_power_opt" value="true" />
+        <flag name="record_play_concurrency" value="false" />
 
         <!-- AV Configs -->
         <property name="vendor.audio.use.sw.alac.decoder" value="true"/>
@@ -65,49 +69,4 @@
         <flag name="qti_flac_decoder" value="true" />
         <flag name="vorbis_offload_enabled" value="true" />
         <flag name="wma_offload_enabled" value="true" />
-
-        <!-- AHAL Configs -->
-        <flag name="a2dp_offload_enabled" value="false" />
-        <flag name="anc_headset_enabled" value="true" />
-        <flag name="audiosphere_enabled" value="true" />
-        <flag name="battery_listener_enabled" value="false" />
-        <flag name="compress_capture_enabled" value="false" />
-        <flag name="compress_in_enabled" value="false" />
-        <flag name="compress_metadata_needed" value="true" />
-        <flag name="concurrent_capture_enabled" value="false" />
-        <flag name="custom_stereo_enabled" value="true" />
-        <flag name="display_port_enabled" value="false" />
-        <flag name="dsm_feedback_enabled" value="false" />
-        <flag name="dynamic_ecns_enabled" value="false" />
-        <flag name="ext_hw_plugin_enabled" value="false" />
-        <flag name="ext_qdsp_enabled" value="false" />
-        <flag name="ext_spkr_enabled" value="false" />
-        <flag name="ext_spkr_tfa_enabled" value="false" />
-        <flag name="fluence_enabled" value="true" />
-        <flag name="hdmi_edid_enabled" value="true" />
-        <flag name="hdmi_passthrough_enabled" value="false" />
-        <flag name="hfp_enabled" value="true" />
-        <flag name="hifi_audio_enabled" value="true" />
-        <flag name="hwdep_cal_enabled" value="false" />
-        <flag name="incall_music_enabled" value="false" />
-        <flag name="keep_alive_enabled" value="false" />
-        <flag name="kpi_optimize_enabled" value="true" />
-        <flag name="maxx_audio_enabled" value="false" />
-        <flag name="receiver_aided_stereo" value="false" />
-        <flag name="snd_monitor_enabled" value="true" />
-        <flag name="source_track_enabled" value="true" />
-        <flag name="spkr_prot_enabled" value="true" />
-        <flag name="ssrec_enabled" value="true" />
-        <flag name="usb_offload_burst_mode" value="false" />
-        <flag name="usb_offload_enabled" value="false" />
-        <flag name="usb_offload_sidetone_vol_enabled" value="false" />
-        <flag name="use_deep_buffer_as_primary_output" value="false" />
-        <flag name="vbat_enabled" value="true" />
-        <flag name="wsa_enabled" value="true" />
-
-        <!-- Common configs between APM and AHAL -->
-        <flag name="afe_proxy_enabled" value="true" />
-        <flag name="compress_voip_enabled" value="true" />
-        <flag name="fm_power_opt" value="true" />
-        <flag name="record_play_concurrency" value="false" />
 </configs>
diff --git a/configs/msm8937/msm8937.mk b/configs/msm8937/msm8937.mk
index a41740f..ff86399 100644
--- a/configs/msm8937/msm8937.mk
+++ b/configs/msm8937/msm8937.mk
@@ -263,6 +263,7 @@
 vendor.audio.feature.hifi_audio.enable=true \
 vendor.audio.feature.hwdep_cal.enable=false \
 vendor.audio.feature.incall_music.enable=false \
+vendor.audio.feature.multi_voice_session.enable=true \
 vendor.audio.feature.keep_alive.enable=false \
 vendor.audio.feature.kpi_optimize.enable=true \
 vendor.audio.feature.maxx_audio.enable=false \
diff --git a/configs/msm8998/audio_configs.xml b/configs/msm8998/audio_configs.xml
index 4b0159d..34d01b7 100644
--- a/configs/msm8998/audio_configs.xml
+++ b/configs/msm8998/audio_configs.xml
@@ -49,6 +49,10 @@
         <flag name="audio_extn_hdmi_spk_enabled" value="true" />
         <flag name="use_xml_audio_policy_conf" value="true" />
         <flag name="voice_concurrency" value="false" />
+        <flag name="afe_proxy_enabled" value="true" />
+        <flag name="compress_voip_enabled" value="false" />
+        <flag name="fm_power_opt" value="true" />
+        <flag name="record_play_concurrency" value="false" />
 
         <!-- AV Configs -->
         <property name="vendor.audio.use.sw.alac.decoder" value="true"/>
@@ -65,49 +69,4 @@
         <flag name="qti_flac_decoder" value="true" />
         <flag name="vorbis_offload_enabled" value="true" />
         <flag name="wma_offload_enabled" value="true" />
-
-        <!-- AHAL Configs -->
-        <flag name="a2dp_offload_enabled" value="true" />
-        <flag name="anc_headset_enabled" value="true" />
-        <flag name="audiosphere_enabled" value="true" />
-        <flag name="battery_listener_enabled" value="false" />
-        <flag name="compress_capture_enabled" value="false" />
-        <flag name="compress_in_enabled" value="false" />
-        <flag name="compress_metadata_needed" value="true" />
-        <flag name="concurrent_capture_enabled" value="false" />
-        <flag name="custom_stereo_enabled" value="true" />
-        <flag name="display_port_enabled" value="true" />
-        <flag name="dsm_feedback_enabled" value="false" />
-        <flag name="dynamic_ecns_enabled" value="false" />
-        <flag name="ext_hw_plugin_enabled" value="false" />
-        <flag name="ext_qdsp_enabled" value="false" />
-        <flag name="ext_spkr_enabled" value="false" />
-        <flag name="ext_spkr_tfa_enabled" value="false" />
-        <flag name="fluence_enabled" value="true" />
-        <flag name="hdmi_edid_enabled" value="true" />
-        <flag name="hdmi_passthrough_enabled" value="true" />
-        <flag name="hfp_enabled" value="true" />
-        <flag name="hifi_audio_enabled" value="false" />
-        <flag name="hwdep_cal_enabled" value="false" />
-        <flag name="incall_music_enabled" value="false" />
-        <flag name="keep_alive_enabled" value="false" />
-        <flag name="kpi_optimize_enabled" value="true" />
-        <flag name="maxx_audio_enabled" value="false" />
-        <flag name="receiver_aided_stereo" value="true" />
-        <flag name="snd_monitor_enabled" value="true" />
-        <flag name="source_track_enabled" value="true" />
-        <flag name="spkr_prot_enabled" value="true" />
-        <flag name="ssrec_enabled" value="true" />
-        <flag name="usb_offload_burst_mode" value="false" />
-        <flag name="usb_offload_enabled" value="true" />
-        <flag name="usb_offload_sidetone_vol_enabled" value="false" />
-        <flag name="use_deep_buffer_as_primary_output" value="false" />
-        <flag name="vbat_enabled" value="true" />
-        <flag name="wsa_enabled" value="false" />
-
-        <!-- Common configs between APM and AHAL -->
-        <flag name="afe_proxy_enabled" value="true" />
-        <flag name="compress_voip_enabled" value="false" />
-        <flag name="fm_power_opt" value="true" />
-        <flag name="record_play_concurrency" value="false" />
 </configs>
diff --git a/configs/msm8998/msm8998.mk b/configs/msm8998/msm8998.mk
index 81077c1..9f31670 100644
--- a/configs/msm8998/msm8998.mk
+++ b/configs/msm8998/msm8998.mk
@@ -283,6 +283,7 @@
 vendor.audio.feature.hifi_audio.enable=false \
 vendor.audio.feature.hwdep_cal.enable=false \
 vendor.audio.feature.incall_music.enable=false \
+vendor.audio.feature.multi_voice_session.enable=true \
 vendor.audio.feature.keep_alive.enable=false \
 vendor.audio.feature.kpi_optimize.enable=true \
 vendor.audio.feature.maxx_audio.enable=false \
diff --git a/configs/msmnile/audio_configs.xml b/configs/msmnile/audio_configs.xml
index 6217f0c..8e3cda2 100644
--- a/configs/msmnile/audio_configs.xml
+++ b/configs/msmnile/audio_configs.xml
@@ -49,6 +49,10 @@
         <flag name="audio_extn_hdmi_spk_enabled" value="true" />
         <flag name="use_xml_audio_policy_conf" value="true" />
         <flag name="voice_concurrency" value="false" />
+        <flag name="afe_proxy_enabled" value="true" />
+        <flag name="compress_voip_enabled" value="false" />
+        <flag name="fm_power_opt" value="true" />
+        <flag name="record_play_concurrency" value="false" />
 
         <!-- AV Configs -->
         <property name="vendor.audio.use.sw.alac.decoder" value="true"/>
@@ -65,50 +69,4 @@
         <flag name="qti_flac_decoder" value="true" />
         <flag name="vorbis_offload_enabled" value="true" />
         <flag name="wma_offload_enabled" value="true" />
-
-        <!-- AHAL Configs -->
-        <flag name="a2dp_offload_enabled" value="true" />
-        <flag name="anc_headset_enabled" value="true" />
-        <flag name="audio_zoom_enabled" value="false" />
-        <flag name="audiosphere_enabled" value="true" />
-        <flag name="battery_listener_enabled" value="true" />
-        <flag name="compress_capture_enabled" value="false" />
-        <flag name="compress_in_enabled" value="true" />
-        <flag name="compress_metadata_needed" value="true" />
-        <flag name="concurrent_capture_enabled" value="true" />
-        <flag name="custom_stereo_enabled" value="true" />
-        <flag name="display_port_enabled" value="true" />
-        <flag name="dsm_feedback_enabled" value="false" />
-        <flag name="dynamic_ecns_enabled" value="true" />
-        <flag name="ext_hw_plugin_enabled" value="true" />
-        <flag name="ext_qdsp_enabled" value="false" />
-        <flag name="ext_spkr_enabled" value="false" />
-        <flag name="ext_spkr_tfa_enabled" value="false" />
-        <flag name="fluence_enabled" value="true" />
-        <flag name="hdmi_edid_enabled" value="true" />
-        <flag name="hdmi_passthrough_enabled" value="true" />
-        <flag name="hfp_enabled" value="true" />
-        <flag name="hifi_audio_enabled" value="false" />
-        <flag name="hwdep_cal_enabled" value="false" />
-        <flag name="incall_music_enabled" value="true" />
-        <flag name="keep_alive_enabled" value="true" />
-        <flag name="kpi_optimize_enabled" value="true" />
-        <flag name="maxx_audio_enabled" value="false" />
-        <flag name="receiver_aided_stereo" value="true" />
-        <flag name="snd_monitor_enabled" value="true" />
-        <flag name="source_track_enabled" value="true" />
-        <flag name="spkr_prot_enabled" value="true" />
-        <flag name="ssrec_enabled" value="true" />
-        <flag name="usb_offload_burst_mode" value="true" />
-        <flag name="usb_offload_enabled" value="true" />
-        <flag name="usb_offload_sidetone_vol_enabled" value="false" />
-        <flag name="use_deep_buffer_as_primary_output" value="false" />
-        <flag name="vbat_enabled" value="true" />
-        <flag name="wsa_enabled" value="false" />
-
-        <!-- Common configs between APM and AHAL -->
-        <flag name="afe_proxy_enabled" value="true" />
-        <flag name="compress_voip_enabled" value="false" />
-        <flag name="fm_power_opt" value="true" />
-        <flag name="record_play_concurrency" value="false" />
 </configs>
diff --git a/configs/msmnile/audio_configs_stock.xml b/configs/msmnile/audio_configs_stock.xml
index bbc44c3..dd0c3b4 100644
--- a/configs/msmnile/audio_configs_stock.xml
+++ b/configs/msmnile/audio_configs_stock.xml
@@ -29,46 +29,4 @@
 -->
 <configs>
         <!-- AHAL Configs -->
-        <flag name="a2dp_offload_enabled" value="true" />
-        <flag name="afe_proxy_enabled" value="false" />
-        <flag name="anc_headset_enabled" value="false" />
-        <flag name="audio_zoom_enabled" value="true" />
-        <flag name="audiosphere_enabled" value="false" />
-        <flag name="battery_listener_enabled" value="false" />
-        <flag name="compress_capture_enabled" value="false" />
-        <flag name="compress_in_enabled" value="false" />
-        <flag name="compress_metadata_needed" value="false" />
-        <flag name="compress_voip_enabled" value="false" />
-        <flag name="concurrent_capture_enabled" value="true" />
-        <flag name="custom_stereo_enabled" value="false" />
-        <flag name="display_port_enabled" value="false" />
-        <flag name="dsm_feedback_enabled" value="false" />
-        <flag name="dynamic_ecns_enabled" value="false" />
-        <flag name="ext_hw_plugin_enabled" value="false" />
-        <flag name="ext_qdsp_enabled" value="true" />
-        <flag name="ext_spkr_enabled" value="true" />
-        <flag name="ext_spkr_tfa_enabled" value="false" />
-        <flag name="fluence_enabled" value="false" />
-        <flag name="fm_power_opt" value="false" />
-        <flag name="hdmi_edid_enabled" value="false" />
-        <flag name="hdmi_passthrough_enabled" value="false" />
-        <flag name="hfp_enabled" value="true" />
-        <flag name="hifi_audio_enabled" value="false" />
-        <flag name="hwdep_cal_enabled" value="true" />
-        <flag name="incall_music_enabled" value="true" />
-        <flag name="keep_alive_enabled" value="false" />
-        <flag name="kpi_optimize_enabled" value="false" />
-        <flag name="maxx_audio_enabled" value="true" />
-        <flag name="receiver_aided_stereo" value="false" />
-        <flag name="record_play_concurrency" value="false" />
-        <flag name="snd_monitor_enabled" value="true" />
-        <flag name="source_track_enabled" value="false" />
-        <flag name="spkr_prot_enabled" value="true" />
-        <flag name="ssrec_enabled" value="false" />
-        <flag name="usb_offload_burst_mode" value="false" />
-        <flag name="usb_offload_enabled" value="true" />
-        <flag name="usb_offload_sidetone_vol_enabled" value="false" />
-        <flag name="use_deep_buffer_as_primary_output" value="false" />
-        <flag name="vbat_enabled" value="false" />
-        <flag name="wsa_enabled" value="false" />
 </configs>
diff --git a/configs/msmnile/msmnile.mk b/configs/msmnile/msmnile.mk
index 3315b11..bb9f804 100644
--- a/configs/msmnile/msmnile.mk
+++ b/configs/msmnile/msmnile.mk
@@ -402,6 +402,7 @@
 vendor.audio.feature.hifi_audio.enable=false \
 vendor.audio.feature.hwdep_cal.enable=true  \
 vendor.audio.feature.incall_music.enable=true  \
+vendor.audio.feature.multi_voice_session.enable=true \
 vendor.audio.feature.keep_alive.enable=false \
 vendor.audio.feature.kpi_optimize.enable=false \
 vendor.audio.feature.maxx_audio.enable=true  \
@@ -446,6 +447,7 @@
 vendor.audio.feature.hifi_audio.enable=false \
 vendor.audio.feature.hwdep_cal.enable=false \
 vendor.audio.feature.incall_music.enable=true \
+vendor.audio.feature.multi_voice_session.enable=true \
 vendor.audio.feature.keep_alive.enable=true \
 vendor.audio.feature.kpi_optimize.enable=true \
 vendor.audio.feature.maxx_audio.enable=false \
diff --git a/configs/msmsteppe/msmsteppe.mk b/configs/msmsteppe/msmsteppe.mk
index ec546ac..55caba5 100644
--- a/configs/msmsteppe/msmsteppe.mk
+++ b/configs/msmsteppe/msmsteppe.mk
@@ -384,6 +384,7 @@
 vendor.audio.feature.hifi_audio.enable=false \
 vendor.audio.feature.hwdep_cal.enable=false \
 vendor.audio.feature.incall_music.enable=true \
+vendor.audio.feature.multi_voice_session.enable=true \
 vendor.audio.feature.keep_alive.enable=false \
 vendor.audio.feature.kpi_optimize.enable=true \
 vendor.audio.feature.maxx_audio.enable=false \
diff --git a/configs/sdm660/audio_configs.xml b/configs/sdm660/audio_configs.xml
index 3688697..9ba674c 100644
--- a/configs/sdm660/audio_configs.xml
+++ b/configs/sdm660/audio_configs.xml
@@ -49,6 +49,10 @@
         <flag name="audio_extn_hdmi_spk_enabled" value="true" />
         <flag name="use_xml_audio_policy_conf" value="true" />
         <flag name="voice_concurrency" value="false" />
+        <flag name="afe_proxy_enabled" value="true" />
+        <flag name="compress_voip_enabled" value="true" />
+        <flag name="fm_power_opt" value="true" />
+        <flag name="record_play_concurrency" value="false" />
 
         <!-- AV Configs -->
         <property name="vendor.audio.use.sw.alac.decoder" value="true"/>
@@ -65,49 +69,4 @@
         <flag name="qti_flac_decoder" value="true" />
         <flag name="vorbis_offload_enabled" value="true" />
         <flag name="wma_offload_enabled" value="true" />
-
-        <!-- AHAL Configs -->
-        <flag name="a2dp_offload_enabled" value="true" />
-        <flag name="anc_headset_enabled" value="true" />
-        <flag name="audiosphere_enabled" value="true" />
-        <flag name="battery_listener_enabled" value="false" />
-        <flag name="compress_capture_enabled" value="false" />
-        <flag name="compress_in_enabled" value="false" />
-        <flag name="compress_metadata_needed" value="true" />
-        <flag name="concurrent_capture_enabled" value="false" />
-        <flag name="custom_stereo_enabled" value="true" />
-        <flag name="display_port_enabled" value="true" />
-        <flag name="dsm_feedback_enabled" value="false" />
-        <flag name="dynamic_ecns_enabled" value="false" />
-        <flag name="ext_hw_plugin_enabled" value="false" />
-        <flag name="ext_qdsp_enabled" value="false" />
-        <flag name="ext_spkr_enabled" value="false" />
-        <flag name="ext_spkr_tfa_enabled" value="false" />
-        <flag name="fluence_enabled" value="true" />
-        <flag name="hdmi_edid_enabled" value="true" />
-        <flag name="hdmi_passthrough_enabled" value="true" />
-        <flag name="hfp_enabled" value="true" />
-        <flag name="hifi_audio_enabled" value="true" />
-        <flag name="hwdep_cal_enabled" value="false" />
-        <flag name="incall_music_enabled" value="false" />
-        <flag name="keep_alive_enabled" value="false" />
-        <flag name="kpi_optimize_enabled" value="true" />
-        <flag name="maxx_audio_enabled" value="false" />
-        <flag name="receiver_aided_stereo" value="true" />
-        <flag name="snd_monitor_enabled" value="true" />
-        <flag name="source_track_enabled" value="true" />
-        <flag name="spkr_prot_enabled" value="true" />
-        <flag name="ssrec_enabled" value="true" />
-        <flag name="usb_offload_burst_mode" value="false" />
-        <flag name="usb_offload_enabled" value="true" />
-        <flag name="usb_offload_sidetone_vol_enabled" value="false" />
-        <flag name="use_deep_buffer_as_primary_output" value="false" />
-        <flag name="vbat_enabled" value="true" />
-        <flag name="wsa_enabled" value="false" />
-
-        <!-- Common configs between APM and AHAL -->
-        <flag name="afe_proxy_enabled" value="true" />
-        <flag name="compress_voip_enabled" value="true" />
-        <flag name="fm_power_opt" value="true" />
-        <flag name="record_play_concurrency" value="false" />
 </configs>
diff --git a/configs/sdm660/sdm660.mk b/configs/sdm660/sdm660.mk
index b598a2c..8fa1840 100644
--- a/configs/sdm660/sdm660.mk
+++ b/configs/sdm660/sdm660.mk
@@ -294,6 +294,7 @@
 vendor.audio.feature.hifi_audio.enable=true \
 vendor.audio.feature.hwdep_cal.enable=false \
 vendor.audio.feature.incall_music.enable=false \
+vendor.audio.feature.multi_voice_session.enable=true \
 vendor.audio.feature.keep_alive.enable=false \
 vendor.audio.feature.kpi_optimize.enable=true \
 vendor.audio.feature.maxx_audio.enable=false \
diff --git a/configs/sdm710/audio_configs.xml b/configs/sdm710/audio_configs.xml
index 6a6fb7d..eb02775 100644
--- a/configs/sdm710/audio_configs.xml
+++ b/configs/sdm710/audio_configs.xml
@@ -49,6 +49,10 @@
         <flag name="audio_extn_hdmi_spk_enabled" value="true" />
         <flag name="use_xml_audio_policy_conf" value="true" />
         <flag name="voice_concurrency" value="false" />
+        <flag name="afe_proxy_enabled" value="true" />
+        <flag name="compress_voip_enabled" value="false" />
+        <flag name="fm_power_opt" value="true" />
+        <flag name="record_play_concurrency" value="false" />
 
         <!-- AV Configs -->
         <property name="vendor.audio.use.sw.alac.decoder" value="true"/>
@@ -65,49 +69,4 @@
         <flag name="qti_flac_decoder" value="true" />
         <flag name="vorbis_offload_enabled" value="true" />
         <flag name="wma_offload_enabled" value="true" />
-
-        <!-- AHAL Configs -->
-        <flag name="a2dp_offload_enabled" value="true" />
-        <flag name="anc_headset_enabled" value="true" />
-        <flag name="audiosphere_enabled" value="true" />
-        <flag name="battery_listener_enabled" value="false" />
-        <flag name="compress_capture_enabled" value="false" />
-        <flag name="compress_in_enabled" value="false" />
-        <flag name="compress_metadata_needed" value="true" />
-        <flag name="concurrent_capture_enabled" value="false" />
-        <flag name="custom_stereo_enabled" value="true" />
-        <flag name="display_port_enabled" value="true" />
-        <flag name="dsm_feedback_enabled" value="false" />
-        <flag name="dynamic_ecns_enabled" value="false" />
-        <flag name="ext_hw_plugin_enabled" value="false" />
-        <flag name="ext_qdsp_enabled" value="false" />
-        <flag name="ext_spkr_enabled" value="false" />
-        <flag name="ext_spkr_tfa_enabled" value="false" />
-        <flag name="fluence_enabled" value="true" />
-        <flag name="hdmi_edid_enabled" value="true" />
-        <flag name="hdmi_passthrough_enabled" value="true" />
-        <flag name="hfp_enabled" value="true" />
-        <flag name="hifi_audio_enabled" value="true" />
-        <flag name="hwdep_cal_enabled" value="false" />
-        <flag name="incall_music_enabled" value="false" />
-        <flag name="keep_alive_enabled" value="false" />
-        <flag name="kpi_optimize_enabled" value="true" />
-        <flag name="maxx_audio_enabled" value="false" />
-        <flag name="receiver_aided_stereo" value="true" />
-        <flag name="snd_monitor_enabled" value="true" />
-        <flag name="source_track_enabled" value="true" />
-        <flag name="spkr_prot_enabled" value="true" />
-        <flag name="ssrec_enabled" value="true" />
-        <flag name="usb_offload_burst_mode" value="false" />
-        <flag name="usb_offload_enabled" value="true" />
-        <flag name="usb_offload_sidetone_vol_enabled" value="false" />
-        <flag name="use_deep_buffer_as_primary_output" value="false" />
-        <flag name="vbat_enabled" value="true" />
-        <flag name="wsa_enabled" value="false" />
-
-        <!-- Common configs between APM and AHAL -->
-        <flag name="afe_proxy_enabled" value="true" />
-        <flag name="compress_voip_enabled" value="false" />
-        <flag name="fm_power_opt" value="true" />
-        <flag name="record_play_concurrency" value="false" />
 </configs>
diff --git a/configs/sdm710/sdm710.mk b/configs/sdm710/sdm710.mk
index 5cb6a5a..750147d 100644
--- a/configs/sdm710/sdm710.mk
+++ b/configs/sdm710/sdm710.mk
@@ -393,6 +393,7 @@
 vendor.audio.feature.hifi_audio.enable=true \
 vendor.audio.feature.hwdep_cal.enable=false \
 vendor.audio.feature.incall_music.enable=false \
+vendor.audio.feature.multi_voice_session.enable=true \
 vendor.audio.feature.keep_alive.enable=false \
 vendor.audio.feature.kpi_optimize.enable=true \
 vendor.audio.feature.maxx_audio.enable=false \
diff --git a/configs/sdm845/audio_configs.xml b/configs/sdm845/audio_configs.xml
index 307f9a3..8e3cda2 100644
--- a/configs/sdm845/audio_configs.xml
+++ b/configs/sdm845/audio_configs.xml
@@ -49,6 +49,10 @@
         <flag name="audio_extn_hdmi_spk_enabled" value="true" />
         <flag name="use_xml_audio_policy_conf" value="true" />
         <flag name="voice_concurrency" value="false" />
+        <flag name="afe_proxy_enabled" value="true" />
+        <flag name="compress_voip_enabled" value="false" />
+        <flag name="fm_power_opt" value="true" />
+        <flag name="record_play_concurrency" value="false" />
 
         <!-- AV Configs -->
         <property name="vendor.audio.use.sw.alac.decoder" value="true"/>
@@ -65,49 +69,4 @@
         <flag name="qti_flac_decoder" value="true" />
         <flag name="vorbis_offload_enabled" value="true" />
         <flag name="wma_offload_enabled" value="true" />
-
-        <!-- AHAL Configs -->
-        <flag name="a2dp_offload_enabled" value="true" />
-        <flag name="anc_headset_enabled" value="true" />
-        <flag name="audiosphere_enabled" value="true" />
-        <flag name="battery_listener_enabled" value="false" />
-        <flag name="compress_capture_enabled" value="false" />
-        <flag name="compress_in_enabled" value="false" />
-        <flag name="compress_metadata_needed" value="true" />
-        <flag name="concurrent_capture_enabled" value="false" />
-        <flag name="custom_stereo_enabled" value="true" />
-        <flag name="display_port_enabled" value="true" />
-        <flag name="dsm_feedback_enabled" value="false" />
-        <flag name="dynamic_ecns_enabled" value="false" />
-        <flag name="ext_hw_plugin_enabled" value="false" />
-        <flag name="ext_qdsp_enabled" value="false" />
-        <flag name="ext_spkr_enabled" value="false" />
-        <flag name="ext_spkr_tfa_enabled" value="false" />
-        <flag name="fluence_enabled" value="true" />
-        <flag name="hdmi_edid_enabled" value="true" />
-        <flag name="hdmi_passthrough_enabled" value="true" />
-        <flag name="hfp_enabled" value="true" />
-        <flag name="hifi_audio_enabled" value="false" />
-        <flag name="hwdep_cal_enabled" value="false" />
-        <flag name="incall_music_enabled" value="false" />
-        <flag name="keep_alive_enabled" value="false" />
-        <flag name="kpi_optimize_enabled" value="true" />
-        <flag name="maxx_audio_enabled" value="false" />
-        <flag name="receiver_aided_stereo" value="true" />
-        <flag name="snd_monitor_enabled" value="true" />
-        <flag name="source_track_enabled" value="true" />
-        <flag name="spkr_prot_enabled" value="true" />
-        <flag name="ssrec_enabled" value="true" />
-        <flag name="usb_offload_burst_mode" value="false" />
-        <flag name="usb_offload_enabled" value="true" />
-        <flag name="usb_offload_sidetone_vol_enabled" value="false" />
-        <flag name="use_deep_buffer_as_primary_output" value="false" />
-        <flag name="vbat_enabled" value="true" />
-        <flag name="wsa_enabled" value="false" />
-
-        <!-- Common configs between APM and AHAL -->
-        <flag name="afe_proxy_enabled" value="true" />
-        <flag name="compress_voip_enabled" value="false" />
-        <flag name="fm_power_opt" value="true" />
-        <flag name="record_play_concurrency" value="false" />
 </configs>
diff --git a/configs/sdm845/sdm845.mk b/configs/sdm845/sdm845.mk
index 77da76c..a967867 100644
--- a/configs/sdm845/sdm845.mk
+++ b/configs/sdm845/sdm845.mk
@@ -343,6 +343,7 @@
 vendor.audio.feature.hifi_audio.enable=false \
 vendor.audio.feature.hwdep_cal.enable=false \
 vendor.audio.feature.incall_music.enable=false \
+vendor.audio.feature.multi_voice_session.enable=true \
 vendor.audio.feature.keep_alive.enable=false \
 vendor.audio.feature.kpi_optimize.enable=true \
 vendor.audio.feature.maxx_audio.enable=false \
diff --git a/configs/trinket/trinket.mk b/configs/trinket/trinket.mk
index 56ef3a8..2a28adf 100644
--- a/configs/trinket/trinket.mk
+++ b/configs/trinket/trinket.mk
@@ -286,6 +286,7 @@
 vendor.audio.feature.hifi_audio.enable=false \
 vendor.audio.feature.hwdep_cal.enable=false \
 vendor.audio.feature.incall_music.enable=false \
+vendor.audio.feature.multi_voice_session.enable=true \
 vendor.audio.feature.keep_alive.enable=false \
 vendor.audio.feature.kpi_optimize.enable=true \
 vendor.audio.feature.maxx_audio.enable=false \
diff --git a/hal/audio_extn/a2dp.c b/hal/audio_extn/a2dp.c
old mode 100755
new mode 100644
index 1b197b2..bcdcb1c
--- a/hal/audio_extn/a2dp.c
+++ b/hal/audio_extn/a2dp.c
@@ -1031,12 +1031,10 @@
     a2dp.audio_is_tws_mono_mode_enable = (audio_is_tws_mono_mode_enable_t)
                    dlsym(a2dp.bt_lib_source_handle,"isTwsMonomodeEnable");
 
-    if (is_running_with_enhanced_fwk == UNINITIALIZED)
-        is_running_with_enhanced_fwk = check_if_enhanced_fwk();
-    if (a2dp.bt_lib_source_handle && is_running_with_enhanced_fwk
-        && a2dp.bt_audio_pre_init) {
-            ALOGD("calling BT module preinit");
-            a2dp.bt_audio_pre_init();
+    if (a2dp.bt_lib_source_handle && a2dp.bt_audio_pre_init) {
+        ALOGD("calling BT module preinit");
+        // fwk related check's will be done in the BT layer
+        a2dp.bt_audio_pre_init();
     }
 }
 
diff --git a/hal/audio_extn/soundtrigger.c b/hal/audio_extn/soundtrigger.c
index 1e28b86..a175b83 100644
--- a/hal/audio_extn/soundtrigger.c
+++ b/hal/audio_extn/soundtrigger.c
@@ -84,9 +84,9 @@
     AUDIO_EVENT_CAPTURE_STREAM_INACTIVE,
     AUDIO_EVENT_CAPTURE_STREAM_ACTIVE,
     AUDIO_EVENT_BATTERY_STATUS_CHANGED,
-    AUDIO_EVENT_SCREEN_STATUS_CHANGED,
     AUDIO_EVENT_GET_PARAM,
-    AUDIO_EVENT_UPDATE_ECHO_REF
+    AUDIO_EVENT_UPDATE_ECHO_REF,
+    AUDIO_EVENT_SCREEN_STATUS_CHANGED
 } audio_event_type_t;
 
 typedef enum {
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 94c9c50..a747bd2 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -4183,6 +4183,13 @@
             if (out->usecase == USECASE_AUDIO_PLAYBACK_MMAP) {
                 do_stop = out->playback_started;
                 out->playback_started = false;
+
+                if (out->mmap_shared_memory_fd >= 0) {
+                    ALOGV("%s: closing mmap_shared_memory_fd = %d",
+                          __func__, out->mmap_shared_memory_fd);
+                    close(out->mmap_shared_memory_fd);
+                    out->mmap_shared_memory_fd = -1;
+                }
             }
         } else {
             ALOGD("copl(%p):standby", out);
@@ -6110,6 +6117,9 @@
         // Fall back to non exclusive mode
         info->shared_memory_fd = pcm_get_poll_fd(out->pcm);
     } else {
+        out->mmap_shared_memory_fd = info->shared_memory_fd; // for closing later
+        ALOGV("%s: opened mmap_shared_memory_fd = %d", __func__, out->mmap_shared_memory_fd);
+
         if (mmap_size < buffer_size) {
             step = "mmap";
             goto exit;
@@ -6256,6 +6266,12 @@
         } else if (in->usecase == USECASE_AUDIO_RECORD_MMAP) {
             do_stop = in->capture_started;
             in->capture_started = false;
+            if (in->mmap_shared_memory_fd >= 0) {
+                ALOGV("%s: closing mmap_shared_memory_fd = %d",
+                      __func__, in->mmap_shared_memory_fd);
+                close(in->mmap_shared_memory_fd);
+                in->mmap_shared_memory_fd = -1;
+            }
         } else {
             if (audio_extn_cin_attached_usecase(in->usecase))
                 audio_extn_cin_close_input_stream(in);
@@ -6984,6 +7000,9 @@
         // Fall back to non exclusive mode
         info->shared_memory_fd = pcm_get_poll_fd(in->pcm);
     } else {
+        in->mmap_shared_memory_fd = info->shared_memory_fd; // for closing later
+        ALOGV("%s: opened mmap_shared_memory_fd = %d", __func__, in->mmap_shared_memory_fd);
+
         if (mmap_size < buffer_size) {
             step = "mmap";
             goto exit;
@@ -7208,6 +7227,7 @@
     out->set_dual_mono = false;
     out->prev_card_status_offline = false;
     out->pspd_coeff_sent = false;
+    out->mmap_shared_memory_fd = -1; // not open
 
     if ((flags & AUDIO_OUTPUT_FLAG_BD) &&
         (property_get_bool("vendor.audio.matrix.limiter.enable", false)))
@@ -8110,16 +8130,13 @@
         if (strcmp(value, AUDIO_PARAMETER_VALUE_ON) == 0){
             adev->bt_sco_on = true;
         } else {
-            ALOGD("sco is off, reset sco and route device to handset/mic");
+            ALOGD("sco is off, reset sco and route device to handset mic");
             adev->bt_sco_on = false;
             audio_extn_sco_reset_configuration();
             list_for_each(node, &adev->usecase_list) {
                 usecase = node_to_item(node, struct audio_usecase, list);
-                if ((usecase->type == PCM_PLAYBACK) && usecase->stream.out &&
-                    (usecase->stream.out->devices & AUDIO_DEVICE_OUT_ALL_SCO))
-                    usecase->stream.out->devices = AUDIO_DEVICE_OUT_EARPIECE;
-                else if ((usecase->type == PCM_CAPTURE) && usecase->stream.in &&
-                         (usecase->stream.in->device & AUDIO_DEVICE_IN_ALL_SCO))
+                if ((usecase->type == PCM_CAPTURE) && usecase->stream.in &&
+                    (usecase->stream.in->device & AUDIO_DEVICE_IN_ALL_SCO))
                     usecase->stream.in->device = AUDIO_DEVICE_IN_BUILTIN_MIC;
                 else
                     continue;
@@ -8725,6 +8742,7 @@
     in->zoom = 0;
     list_init(&in->aec_list);
     list_init(&in->ns_list);
+    in->mmap_shared_memory_fd = -1; // not open
 
     ALOGV("%s: source %d, config->channel_mask %#x", __func__, source, config->channel_mask);
     if (source == AUDIO_SOURCE_VOICE_UPLINK ||
diff --git a/hal/audio_hw.h b/hal/audio_hw.h
index 9b7bf5b..ebdaa97 100644
--- a/hal/audio_hw.h
+++ b/hal/audio_hw.h
@@ -368,6 +368,7 @@
     bool muted;
     uint64_t written; /* total frames written, not cleared when entering standby */
     int64_t mmap_time_offset_nanos; /* fudge factor to correct inaccuracies in DSP */
+    int     mmap_shared_memory_fd; /* file descriptor associated with MMAP NOIRQ shared memory */
     audio_io_handle_t handle;
     struct stream_app_type_cfg app_type_cfg;
 
@@ -456,6 +457,7 @@
     struct listnode aec_list;
     struct listnode ns_list;
     int64_t mmap_time_offset_nanos; /* fudge factor to correct inaccuracies in DSP */
+    int     mmap_shared_memory_fd; /* file descriptor associated with MMAP NOIRQ shared memory */
     audio_io_handle_t capture_handle;
     audio_input_flags_t flags;
     char profile[MAX_STREAM_PROFILE_STR_LEN];
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 130c017..64e9383 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -5910,7 +5910,6 @@
     case USECASE_VOICEMMODE1_CALL:
     case USECASE_VOICEMMODE2_CALL:
     case USECASE_COMPRESS_VOIP_CALL:
-    case USECASE_AUDIO_RECORD_FM_VIRTUAL:
     case USECASE_INCALL_REC_UPLINK:
     case USECASE_INCALL_REC_DOWNLINK:
     case USECASE_INCALL_REC_UPLINK_AND_DOWNLINK:
@@ -5919,8 +5918,6 @@
     case USECASE_INCALL_REC_UPLINK_AND_DOWNLINK_COMPRESS:
     case USECASE_INCALL_MUSIC_UPLINK:
     case USECASE_INCALL_MUSIC_UPLINK2:
-    case USECASE_AUDIO_SPKR_CALIB_RX:
-    case USECASE_AUDIO_SPKR_CALIB_TX:
     case USECASE_AUDIO_RECORD_VOIP:
         needs_event = true;
         break;
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index d83ef20..42c9256 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -8023,9 +8023,6 @@
     case USECASE_INCALL_MUSIC_UPLINK:
     case USECASE_INCALL_MUSIC_UPLINK2:
     case USECASE_AUDIO_RECORD_VOIP:
-    case USECASE_AUDIO_RECORD_FM_VIRTUAL:
-    case USECASE_AUDIO_SPKR_CALIB_RX:
-    case USECASE_AUDIO_SPKR_CALIB_TX:
         needs_event = true;
         break;
     default:
@@ -8059,7 +8056,9 @@
     }
 
     /* Use client specified buffer size if mentioned */
-    if ((info != NULL) && (info->duration_us > 0)) {
+    if ((info != NULL) &&
+        (info->duration_us >= MIN_OFFLOAD_BUFFER_DURATION_MS) &&
+        (info->duration_us <= MAX_OFFLOAD_BUFFER_DURATION_MS)) {
         duration_ms = info->duration_us / 1000;
         channel_count = audio_channel_count_from_in_mask(info->channel_mask);
 
diff --git a/hal/voice.c b/hal/voice.c
index c455537..0000d72 100644
--- a/hal/voice.c
+++ b/hal/voice.c
@@ -330,7 +330,7 @@
     }
 #endif
 
-    if(adev->mic_break_enabled)
+    if (adev->mic_break_enabled)
         platform_set_mic_break_det(adev->platform, true);
 
     ret = pcm_start(session->pcm_tx);
@@ -786,6 +786,10 @@
 void voice_init(struct audio_device *adev)
 {
     int i = 0;
+    int max_voice_sessions = MAX_VOICE_SESSIONS;
+
+    if (!voice_extn_is_multi_session_supported())
+        max_voice_sessions = 1;
 
     memset(&adev->voice, 0, sizeof(adev->voice));
     adev->voice.tty_mode = TTY_MODE_OFF;
@@ -793,7 +797,7 @@
     adev->voice.volume = 1.0f;
     adev->voice.mic_mute = false;
     adev->voice.in_call = false;
-    for (i = 0; i < MAX_VOICE_SESSIONS; i++) {
+    for (i = 0; i < max_voice_sessions; i++) {
         adev->voice.session[i].pcm_rx = NULL;
         adev->voice.session[i].pcm_tx = NULL;
         adev->voice.session[i].state.current = CALL_INACTIVE;
diff --git a/hal/voice_extn/voice_extn.c b/hal/voice_extn/voice_extn.c
index d278742..e6a4ed6 100644
--- a/hal/voice_extn/voice_extn.c
+++ b/hal/voice_extn/voice_extn.c
@@ -87,6 +87,7 @@
 static bool voice_extn_compress_voip_enabled = false;
 static bool voice_extn_dynamic_ecns_feature_enabled = false;
 static bool voice_extn_incall_music_enabled = false;
+static bool voice_extn_multi_session_enabled = false;
 
 int voice_extn_is_call_state_active(struct audio_device *adev, bool *is_call_active);
 
@@ -184,10 +185,14 @@
     struct voice_session *session = NULL;
     int i = 0;
     uint32_t session_id = 0;
+    int max_voice_sessions = MAX_VOICE_SESSIONS;
 
-    for (i = 0; i < MAX_VOICE_SESSIONS; i++) {
+    if (!voice_extn_is_multi_session_supported())
+        max_voice_sessions = 1;
+
+    for (i = 0; i < max_voice_sessions; i++) {
         session = &adev->voice.session[i];
-        if(session->state.current == call_state){
+        if (session->state.current == call_state){
             session_id = session->vsid;
             break;
         }
@@ -203,10 +208,13 @@
     enum voice_lch_mode lch_mode;
     struct voice_session *session = NULL;
     int ret = 0;
+    int max_voice_sessions = MAX_VOICE_SESSIONS;
 
     ALOGD("%s: enter:", __func__);
+    if (!voice_extn_is_multi_session_supported())
+        max_voice_sessions = 1;
 
-    for (i = 0; i < MAX_VOICE_SESSIONS; i++) {
+    for (i = 0; i < max_voice_sessions; i++) {
         usecase_id = voice_extn_get_usecase_for_session_idx(i);
         session = &adev->voice.session[i];
         ALOGD("%s: cur_state=%d new_state=%d vsid=%x",
@@ -220,7 +228,7 @@
             case CALL_INACTIVE:
                 ALOGD("%s: INACTIVE -> ACTIVE vsid:%x", __func__, session->vsid);
                 ret = voice_start_usecase(adev, usecase_id);
-                if(ret < 0) {
+                if (ret < 0) {
                     ALOGE("%s: voice_start_usecase() failed for usecase: %d\n",
                           __func__, usecase_id);
                 } else {
@@ -258,7 +266,7 @@
             case CALL_LOCAL_HOLD:
                 ALOGD("%s: ACTIVE/HOLD/LOCAL_HOLD -> INACTIVE vsid:%x", __func__, session->vsid);
                 ret = voice_stop_usecase(adev, usecase_id);
-                if(ret < 0) {
+                if (ret < 0) {
                     ALOGE("%s: voice_stop_usecase() failed for usecase: %d\n",
                           __func__, usecase_id);
                 } else {
@@ -334,8 +342,12 @@
     struct voice_session *session = NULL;
     int i = 0;
     bool is_call_active;
+    int max_voice_sessions = MAX_VOICE_SESSIONS;
 
-    for (i = 0; i < MAX_VOICE_SESSIONS; i++) {
+    if (!voice_extn_is_multi_session_supported())
+        max_voice_sessions = 1;
+
+    for (i = 0; i < max_voice_sessions; i++) {
         if (vsid == adev->voice.session[i].vsid) {
             session = &adev->voice.session[i];
             break;
@@ -370,6 +382,9 @@
 int voice_extn_get_active_session_id(struct audio_device *adev,
                                      uint32_t *session_id)
 {
+    if (!voice_extn_is_multi_session_supported())
+        return -ENOSYS;
+
     *session_id = get_session_id_with_state(adev, CALL_ACTIVE);
     return 0;
 }
@@ -378,11 +393,14 @@
 {
     struct voice_session *session = NULL;
     int i = 0;
-    *is_call_active = false;
 
+    if (!voice_extn_is_multi_session_supported())
+        return -ENOSYS;
+
+    *is_call_active = false;
     for (i = 0; i < MAX_VOICE_SESSIONS; i++) {
         session = &adev->voice.session[i];
-        if(session->state.current != CALL_INACTIVE){
+        if (session->state.current != CALL_INACTIVE){
             *is_call_active = true;
             break;
         }
@@ -403,14 +421,17 @@
     return voice_extn_dynamic_ecns_feature_enabled;
 }
 
-// START: INCALL_MUSIC ===================================================================
 void incall_music_feature_init(bool is_feature_enabled)
 {
     voice_extn_incall_music_enabled = is_feature_enabled;
     ALOGV("%s: ---- Feature INCALL_MUSIC is %s----", __func__,
                                 is_feature_enabled ? "ENABLED" : "NOT ENABLED");
 }
-// END: INCALL_MUSIC ===================================================================
+
+bool voice_extn_is_incall_music_enabled()
+{
+    return voice_extn_incall_music_enabled;
+}
 
 void compr_voip_feature_init(bool is_feature_enabled)
 {
@@ -424,6 +445,18 @@
     return voice_extn_compress_voip_enabled;
 }
 
+void multi_voice_session_feature_init(bool is_feature_enabled)
+{
+    voice_extn_multi_session_enabled = is_feature_enabled;
+    ALOGV("%s:: ---- Feature MULTI VOICE SESSION is %s ----", __func__,
+                                is_feature_enabled ? "ENABLED" : "NOT ENABLED");
+}
+
+bool voice_extn_is_multi_session_supported()
+{
+    return voice_extn_multi_session_enabled;
+}
+
 void voice_extn_feature_init()
 {
     // Register feature function here
@@ -437,10 +470,17 @@
     incall_music_feature_init(
        property_get_bool("vendor.audio.feature.incall_music.enable",
                           true));
+    multi_voice_session_feature_init(
+       property_get_bool("vendor.audio.feature.multi_voice_session.enable",
+                          true));
+
 }
 
 void voice_extn_init(struct audio_device *adev)
 {
+    if (!voice_extn_is_multi_session_supported())
+        return;
+
     adev->voice.session[VOICE_SESS_IDX].vsid =  VOICE_VSID;
     adev->voice.session[VOICE2_SESS_IDX].vsid = VOICE2_VSID;
     adev->voice.session[VOLTE_SESS_IDX].vsid =  VOLTE_VSID;
@@ -454,6 +494,8 @@
                                          const audio_usecase_t usecase_id,
                                          struct voice_session **session)
 {
+    if (!voice_extn_is_multi_session_supported())
+        return -ENOSYS;
 
     switch(usecase_id)
     {
@@ -500,6 +542,9 @@
      * udpated.
      */
     ALOGV("%s: enter:", __func__);
+    if (!voice_extn_is_multi_session_supported())
+        return -ENOSYS;
+
     return update_calls(adev);
 }
 
@@ -510,6 +555,9 @@
 
     ALOGV("%s: enter:", __func__);
 
+    if (!voice_extn_is_multi_session_supported())
+        return -ENOSYS;
+
     /* If BT device is enabled and voice calls are ended, telephony will call
      * set_mode(AUDIO_MODE_NORMAL) which will trigger audio policy manager to
      * set routing with device BT A2DP profile. Hence end all voice calls when
@@ -616,8 +664,12 @@
     int ret = 0;
     char *cur_ptr = value;
     int i, len=0;
+    int max_voice_sessions = MAX_VOICE_SESSIONS;
 
-    for (i = 0; i < MAX_VOICE_SESSIONS; i++) {
+    if (!voice_extn_is_multi_session_supported())
+        max_voice_sessions = 1;
+
+    for (i = 0; i < max_voice_sessions; i++) {
         snprintf(cur_ptr, VOICE_EXTN_PARAMETER_VALUE_MAX_LEN - len,
                  "%d:%d,",adev->voice.session[i].vsid,
                  adev->voice.session[i].state.current);
@@ -655,7 +707,7 @@
         }
         str_parms_add_str(reply, AUDIO_PARAMETER_KEY_ALL_CALL_STATES, value);
     }
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         voice_extn_compress_voip_get_parameters(query, reply);
 
     str = str_parms_to_str(reply);
@@ -667,7 +719,7 @@
                                    struct str_parms *query,
                                    struct str_parms *reply)
 {
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         voice_extn_compress_voip_out_get_parameters(out, query, reply);
 }
 
@@ -675,7 +727,7 @@
                                   struct str_parms *query,
                                   struct str_parms *reply)
 {
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         voice_extn_compress_voip_in_get_parameters(in, query, reply);
 }
 
@@ -683,7 +735,7 @@
 int voice_extn_check_and_set_incall_music_usecase(struct audio_device *adev,
                                                   struct stream_out *out)
 {
-    if(voice_extn_incall_music_enabled) {
+    if (voice_extn_incall_music_enabled) {
         uint32_t session_id = get_session_id_with_state(adev, CALL_ACTIVE);
         if (session_id == VOICEMMODE1_VSID) {
             out->usecase = USECASE_INCALL_MUSIC_UPLINK;
@@ -707,10 +759,10 @@
 
 
 int voice_extn_compress_voip_set_parameters(struct audio_device *adev,
-                                             struct str_parms *parms) 
+                                            struct str_parms *parms)
 {
     int ret = -ENOSYS;
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         ret = compress_voip_set_parameters(adev, parms);
     return ret;
 }
@@ -718,7 +770,7 @@
 void voice_extn_compress_voip_get_parameters(struct str_parms *query,
                                              struct str_parms *reply)
 {
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         compress_voip_get_parameters(query, reply);
 }
 
@@ -727,7 +779,7 @@
                                                  struct str_parms *query,
                                                  struct str_parms *reply)
 {
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         compress_voip_out_get_parameters(out, query, reply);
 }
 
@@ -735,14 +787,14 @@
                                                 struct str_parms *query,
                                                 struct str_parms *reply)
 {
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         compress_voip_in_get_parameters(in, query, reply);
 }
 
 int voice_extn_compress_voip_out_get_buffer_size(struct stream_out *out)
 {
     int ret = -1;
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         ret = compress_voip_out_get_buffer_size(out);
     return ret;
 }
@@ -750,7 +802,7 @@
 int voice_extn_compress_voip_in_get_buffer_size(struct stream_in *in)
 {
     int ret = -1;
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         ret = compress_voip_in_get_buffer_size(in);
     return ret;
 }
@@ -759,7 +811,7 @@
 int voice_extn_compress_voip_start_output_stream(struct stream_out *out)
 {
     int ret = -1;
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         ret = compress_voip_start_output_stream(out);
     return ret;
 }
@@ -768,7 +820,7 @@
 int voice_extn_compress_voip_start_input_stream(struct stream_in *in)
 {
     int ret = -1;
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         ret = compress_voip_start_input_stream(in);
     return ret;
 }
@@ -776,7 +828,7 @@
 int voice_extn_compress_voip_close_output_stream(struct audio_stream *stream)
 {
     int ret = -1;
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         ret = compress_voip_close_output_stream(stream);
     return ret;
 }
@@ -785,7 +837,7 @@
 int voice_extn_compress_voip_close_input_stream(struct audio_stream *stream)
 {
     int ret = -1;
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         ret = compress_voip_close_input_stream(stream);
     return ret;
 }
@@ -793,7 +845,7 @@
 int voice_extn_compress_voip_open_output_stream(struct stream_out *out)
 {
     int ret = -1;
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         ret = compress_voip_open_output_stream(out);
     return ret;
 }
@@ -802,7 +854,7 @@
 int voice_extn_compress_voip_open_input_stream(struct stream_in *in)
 {
     int ret = -1;
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         ret = compress_voip_open_input_stream(in);
     return ret;
 }
@@ -810,7 +862,7 @@
 int voice_extn_compress_voip_set_volume(struct audio_device *adev, float volume)
 {
     int ret = -1;
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         ret = compress_voip_set_volume(adev, volume);
     return ret;
 }
@@ -818,7 +870,7 @@
 int voice_extn_compress_voip_set_mic_mute(struct audio_device *adev, bool state)
 {
     int ret = -1;
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         ret = compress_voip_set_mic_mute(adev, state);
     return ret;
 }
@@ -826,7 +878,7 @@
 bool voice_extn_compress_voip_pcm_prop_check()
 {
     bool ret = false;
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         ret = compress_voip_pcm_prop_check();
     return ret;
 }
@@ -834,7 +886,7 @@
 bool voice_extn_compress_voip_is_active(const struct audio_device *adev)
 {
     bool ret = false;
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         ret = compress_voip_is_active(adev);
     return ret;
 }
@@ -842,7 +894,7 @@
 bool voice_extn_compress_voip_is_format_supported(audio_format_t format)
 {
     bool ret = false;
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         ret = compress_voip_is_format_supported(format);
     return ret;
 }
@@ -850,7 +902,7 @@
 bool voice_extn_compress_voip_is_config_supported(struct audio_config *config)
 {
     bool ret = false;
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         ret = compress_voip_is_config_supported(config);
     return ret;
 }
@@ -858,7 +910,7 @@
 bool voice_extn_compress_voip_is_started(struct audio_device *adev)
 {
     bool ret = false;
-    if(voice_extn_compress_voip_enabled)
+    if (voice_extn_compress_voip_enabled)
         ret = compress_voip_is_started(adev);
     return ret;
 }
diff --git a/hal/voice_extn/voice_extn.h b/hal/voice_extn/voice_extn.h
index c4f0d49..b2aab7e 100644
--- a/hal/voice_extn/voice_extn.h
+++ b/hal/voice_extn/voice_extn.h
@@ -78,10 +78,14 @@
 bool voice_extn_compress_voip_is_config_supported(struct audio_config *config);
 bool voice_extn_compress_voip_is_started(struct audio_device *adev);
 void voice_extn_feature_init();
-void compr_voip_feature_init(bool is_feature_enabled);
-bool voice_extn_is_compress_voip_supported();
 void dynamic_ecns_feature_init(bool is_feature_enabled);
 bool voice_extn_is_dynamic_ecns_enabled();
+void incall_music_feature_init(bool is_feature_enabled);
+bool voice_extn_is_incall_music_enabled();
+void compr_voip_feature_init(bool is_feature_enabled);
+bool voice_extn_is_compress_voip_supported();
+void multi_voice_session_feature_init(bool is_feature_enabled);
+bool voice_extn_is_multi_session_supported();
 
 
 #endif //VOICE_EXTN_H