diff --git a/configs/msm8953/audio_platform_info_extcodec.xml b/configs/msm8953/audio_platform_info_extcodec.xml
index 81d34c1..a268b65 100644
--- a/configs/msm8953/audio_platform_info_extcodec.xml
+++ b/configs/msm8953/audio_platform_info_extcodec.xml
@@ -40,11 +40,6 @@
         <device name="AUDIO_DEVICE_IN_BUILTIN_MIC" interface="TERT_MI2S" codec_type="internal"/>
         <device name="AUDIO_DEVICE_IN_BACK_MIC" interface="TERT_MI2S" codec_type="internal"/>
     </interface_names>
-    <config_params>
-        <param key="input_mic_max_count" value="6"/>
-        <param key="ffv_split_ec_ref_data" value="false"/>
-        <param key="ffv_ec_ref_channel_count" value="1"/>
-    </config_params>
     <pcm_ids>
         <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD2" type="out" id="24"/>
         <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD3" type="out" id="29"/>
@@ -61,14 +56,16 @@
         <usecase name="USECASE_AUDIO_SPKR_CALIB_TX" type="in" id="37"/>
         <usecase name="USECASE_QCHAT_CALL" type="in" id="42"/>
         <usecase name="USECASE_QCHAT_CALL" type="out" id="42"/>
-        <usecase name="USECASE_AUDIO_EC_REF_LOOPBACK" type="in" id="12"/>
-        <usecase name="USECASE_AUDIO_PLAYBACK_SILENCE" type="out" id="12"/>
+        <usecase name="USECASE_AUDIO_EC_REF_LOOPBACK" type="in" id="14"/>
+        <usecase name="USECASE_AUDIO_PLAYBACK_SILENCE" type="out" id="14"/>
     </pcm_ids>
     <config_params>
         <param key="spkr_1_tz_name" value="wsatz.11"/>
         <param key="spkr_2_tz_name" value="wsatz.12"/>
         <param key="native_audio_mode" value="src"/>
-        <param key="input_mic_max_count" value="4"/>
+        <param key="input_mic_max_count" value="6"/>
+        <param key="ffv_split_ec_ref_data" value="false"/>
+        <param key="ffv_ec_ref_channel_count" value="1"/>
     </config_params>
     <backend_names>
         <device name="SND_DEVICE_OUT_HEADPHONES" backend="headphones" interface="SLIMBUS_6_RX"/>
diff --git a/configs/msm8953/mixer_paths_wcd9335.xml b/configs/msm8953/mixer_paths_wcd9335.xml
index 5b53ff3..db68041 100644
--- a/configs/msm8953/mixer_paths_wcd9335.xml
+++ b/configs/msm8953/mixer_paths_wcd9335.xml
@@ -563,14 +563,17 @@
     <ctl name="SLIMBUS_DL_HL Switch" value="0" />
     <ctl name="SLIMBUS6_DL_HL Switch" value="0" />
     <!-- ADSP testfwk end-->
-    <ctl name="MultiMedia5 Mixer SLIM_2_TX" value="0" />
-    <ctl name="PCM_Dev 12 Topology Capture" value="DTS" />
 
     <!-- These are audio route (FE to BE) specific mixer settings -->
     <path name="deep-buffer-playback">
         <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia1" value="1" />
     </path>
 
+    <path name="silence-playback">
+        <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia9" value="1" />
+        <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_RX" />
+    </path>
+
     <path name="deep-buffer-playback speaker-protected">
         <path name="deep-buffer-playback" />
     </path>
@@ -2485,10 +2488,9 @@
           <path name="speaker-and-headphones" />
     </path>
 
-
     <path name="ec-ref-audio-capture">
-        <ctl name="PCM_Dev 12 Topology Capture" value="LEGACY" />
-        <ctl name="MultiMedia5 Mixer SLIM_2_TX" value="1" />
+        <ctl name="MultiMedia9 Mixer AFE_LOOPBACK_TX" value="1" />
+        <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_RX" />
     </path>
 
     <path name="handset-6mic">
@@ -2567,37 +2569,15 @@
     </path>
 
     <path name="ec-ref-loopback-mono">
-        <ctl name="SLIM_2_TX Channels" value="One" />
-        <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
-        <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
-        <ctl name="RX MIX TX7 MUX" value="RX_MIX7"/>
     </path>
 
     <path name="ec-ref-loopback-stereo">
-        <ctl name="SLIM_2_TX Channels" value="Two" />
-        <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
-        <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
-        <ctl name="RX MIX TX7 MUX" value="RX_MIX7"/>
-        <ctl name="AIF4_CAP Mixer SLIM TX8" value ="1"/>
-        <ctl name="SLIM TX8 MUX" value="RX_MIX_TX8"/>
-        <ctl name="RX MIX TX8 MUX" value="RX_MIX8"/>
     </path>
 
     <path name="ec-ref-loopback-mono lineout">
-        <ctl name="SLIM_2_TX Channels" value="One" />
-        <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
-        <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
-        <ctl name="RX MIX TX7 MUX" value="RX_MIX5"/>
     </path>
 
     <path name="ec-ref-loopback-stereo lineout">
-        <ctl name="SLIM_2_TX Channels" value="Two" />
-        <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
-        <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
-        <ctl name="RX MIX TX7 MUX" value="RX_MIX5"/>
-        <ctl name="AIF4_CAP Mixer SLIM TX8" value ="1"/>
-        <ctl name="SLIM TX8 MUX" value="RX_MIX_TX8"/>
-        <ctl name="RX MIX TX8 MUX" value="RX_MIX6"/>
     </path>
 
 </mixer>
diff --git a/configs/msm8953/msm8953.mk b/configs/msm8953/msm8953.mk
index 1e51212..c9a9746 100644
--- a/configs/msm8953/msm8953.mk
+++ b/configs/msm8953/msm8953.mk
@@ -34,10 +34,10 @@
 
 USE_XML_AUDIO_POLICY_CONF := 1
 BOARD_SUPPORTS_SOUND_TRIGGER := true
-BOARD_SUPPORTS_SOUND_TRIGGER_ARM: = true
-AUDIO_FEATURE_ENABLED_FFV: = true
-AUDIO_FEATURE_ENABLED_KEEP_ALIVE_ARM_FFV: = true
-AUDIO_FEATURE_ENABLED_KEEP_ALIVE: = true
+BOARD_SUPPORTS_SOUND_TRIGGER_ARM := true
+AUDIO_FEATURE_ENABLED_FFV := true
+AUDIO_FEATURE_ENABLED_KEEP_ALIVE_ARM_FFV := true
+AUDIO_FEATURE_ENABLED_KEEP_ALIVE := true
 AUDIO_USE_LL_AS_PRIMARY_OUTPUT := true
 AUDIO_FEATURE_ENABLED_HIFI_AUDIO := true
 AUDIO_FEATURE_ENABLED_VBAT_MONITOR := true
diff --git a/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml b/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml
index 1756772..8121c0d 100644
--- a/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml
+++ b/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml
@@ -96,9 +96,11 @@
     <ctl name="AIF1_CAP Mixer SLIM TX8" value="0" />
     <ctl name="AIF4_CAP Mixer SLIM TX8" value="0" />
     <ctl name="AIF4_CAP Mixer SLIM TX7" value="0" />
+    <ctl name="MultiMedia9 Mixer AFE_LOOPBACK_TX" value="0" />
 
     <ctl name="MultiMedia2 Mixer SLIM_0_TX" value="0" />
     <ctl name="MultiMedia9 Mixer SLIM_2_TX" value="0" />
+    <ctl name="AUDIO_REF_EC_UL1 MUX" value="None"/>
 
     <path name="listen-voice-wakeup-1">
         <ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
@@ -195,7 +197,8 @@
     </path>
 
     <path name="ec-ref-audio-capture">
-        <ctl name="MultiMedia9 Mixer SLIM_2_TX" value="1" />
+        <ctl name="MultiMedia9 Mixer AFE_LOOPBACK_TX" value="1" />
+        <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_RX" />
     </path>
 
     <path name="listen-cpe-handset-mic">
@@ -361,37 +364,15 @@
     </path>
 
     <path name="ec-ref-loopback-mono">
-        <ctl name="SLIM_2_TX Channels" value="One" />
-        <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
-        <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
-        <ctl name="RX MIX TX7 MUX" value="RX_MIX7"/>
     </path>
 
     <path name="ec-ref-loopback-stereo">
-        <ctl name="SLIM_2_TX Channels" value="Two" />
-        <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
-        <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
-        <ctl name="RX MIX TX7 MUX" value="RX_MIX7"/>
-        <ctl name="AIF4_CAP Mixer SLIM TX8" value ="1"/>
-        <ctl name="SLIM TX8 MUX" value="RX_MIX_TX8"/>
-        <ctl name="RX MIX TX8 MUX" value="RX_MIX8"/>
     </path>
 
     <path name="ec-ref-loopback-mono lineout">
-        <ctl name="SLIM_2_TX Channels" value="One" />
-        <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
-        <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
-        <ctl name="RX MIX TX7 MUX" value="RX_MIX5"/>
     </path>
 
     <path name="ec-ref-loopback-stereo lineout">
-        <ctl name="SLIM_2_TX Channels" value="Two" />
-        <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
-        <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
-        <ctl name="RX MIX TX7 MUX" value="RX_MIX5"/>
-        <ctl name="AIF4_CAP Mixer SLIM TX8" value ="1"/>
-        <ctl name="SLIM TX8 MUX" value="RX_MIX_TX8"/>
-        <ctl name="RX MIX TX8 MUX" value="RX_MIX6"/>
     </path>
 
     <path name="echo-reference">
diff --git a/configs/msm8953/sound_trigger_platform_info.xml b/configs/msm8953/sound_trigger_platform_info.xml
index f5280e4..a9e1387 100644
--- a/configs/msm8953/sound_trigger_platform_info.xml
+++ b/configs/msm8953/sound_trigger_platform_info.xml
@@ -41,6 +41,14 @@
         <param backend_dai_name="TERT_MI2S_TX" /-->
         <param backend_port_name="SLIM_0_TX" />
         <param backend_dai_name="SLIMBUS_0_TX" />
+        <param sw_mad="false"/>
+        <!-- Enable concurrent VA & audio capture excluding voip/voice call     -->
+        <!-- using concurrent_capture param.                                    -->
+        <!-- Enable VA & voip/voice call concurrency using concurrent_capture   -->
+        <!-- param along with concurrent_voip_call/concurrent_voice_call params -->
+        <param concurrent_capture="false" />
+        <param concurrent_voip_call="false" />
+        <param concurrent_voice_call="false" />
     </common_config>
 
     <acdb_ids>
@@ -69,15 +77,7 @@
         <param max_cpe_users="3" />
         <param max_ape_phrases="10" />
         <param max_ape_users="10" />
-        <param sample_rate="16000" />
-        <param bit_width="16" />
-        <param channel_count="1"/>
-        <!-- adm_cfg_profile should match with the one defined under adm_config -->
-        <!-- Set it to NONE if LSM directly connects to AFE -->
-        <param adm_cfg_profile="NONE" />
-        <!-- fluence_type: "FLUENCE", "FLUENCE_DMIC", "FLUENCE_TMIC", -->
-        <!-- "FLUENCE_QMIC". param value is valid when adm_cfg_profile="FLUENCE"-->
-        <param fluence_type="NONE" />
+        <param event_timestamp_mode="false" />
 
         <!-- Module and param ids with which the algorithm is integrated in firmware -->
         <lsm_usecase>
@@ -93,6 +93,17 @@
         <!--  kw_duration is in milli seconds. It is valid only for FTRT transfer mode -->
         <param capture_keyword="PCM_packet, RT, 2000" />
         <param client_capture_read_delay="2000" />
+
+        <!-- Profile specific data which the algorithm can support -->
+        <param sample_rate="16000" />
+        <param bit_width="16" />
+        <param channel_count="1"/>
+        <!-- adm_cfg_profile should match with the one defined under adm_config -->
+        <!-- Set it to NONE if LSM directly connects to AFE -->
+        <param adm_cfg_profile="NONE" />
+        <!-- fluence_type: "FLUENCE", FLUENCE_DMIC", FLUENCE_QMIC" -->
+        <!-- param value is valid when profile type is fluence -->
+        <param fluence_type="FLUENCE_QMIC" />
     </sound_model_config>
 
     <!-- ARM based SVA sound_model_config -->
diff --git a/hal/Android.mk b/hal/Android.mk
index 921252c..36bcca9 100644
--- a/hal/Android.mk
+++ b/hal/Android.mk
@@ -395,12 +395,13 @@
     LOCAL_CFLAGS += -DDYNAMIC_ECNS_ENABLED
 endif
 
-ifeq ($(strip $($AUDIO_FEATURE_ENABLED_KEEP_ALIVE_ARM_FFV)), true)
+ifeq ($(strip $(AUDIO_FEATURE_ENABLED_KEEP_ALIVE_ARM_FFV)), true)
     LOCAL_CFLAGS += -DRUN_KEEP_ALIVE_IN_ARM_FFV
 endif
 
-ifeq ($(strip $($AUDIO_FEATURE_ENABLED_FFV_FFV)), true)
+ifeq ($(strip $(AUDIO_FEATURE_ENABLED_FFV)), true)
     LOCAL_CFLAGS += -DFFV_ENABLED
+    LOCAL_C_INCLUDES += $(TARGET_OUT_HEADERS)/mm-audio-noship/include/ffv
     LOCAL_SRC_FILES += audio_extn/ffv.c
 endif
 
diff --git a/hal/audio_extn/ffv.c b/hal/audio_extn/ffv.c
index 54ce30c..82140b1 100755
--- a/hal/audio_extn/ffv.c
+++ b/hal/audio_extn/ffv.c
@@ -81,6 +81,7 @@
 
 #define FFV_CHANNEL_MODE_MONO 1
 #define FFV_CHANNEL_MODE_STEREO 2
+#define FFV_CHANNEL_MODE_QUAD 6
 #define FFV_CHANNEL_MODE_HEX 6
 #define FFV_CHANNEL_MODE_OCT 8
 
@@ -407,7 +408,7 @@
     config->period_size = ffvmod.capture_config.period_size;
 }
 
-int32_t audio_extn_ffv_init(struct audio_device *adev)
+int32_t audio_extn_ffv_init(struct audio_device *adev __unused)
 {
     int ret = 0;
 
@@ -487,7 +488,7 @@
            __func__, num_ec_ref_ch, num_tx_in_ch, num_out_ch, frame_len, sample_rate);
     ALOGD("%s: config file path %s", __func__, config_file_path);
     status_type = ffv_init_fn(&ffvmod.handle, num_tx_in_ch, num_out_ch, num_ec_ref_ch,
-                      frame_len, sample_rate, config_file_path, sm_buffer, 0,
+                      frame_len, sample_rate, config_file_path, (char *)sm_buffer, 0,
                       &total_mem_size, key, lic);
     if (status_type) {
         ALOGE("%s: ERROR. ffv_init returned %d", __func__, status_type);
@@ -580,6 +581,8 @@
         return SND_DEVICE_IN_HANDSET_8MIC;
     } else if (ffvmod.capture_config.channels == FFV_CHANNEL_MODE_HEX) {
         return SND_DEVICE_IN_HANDSET_6MIC;
+    } else if (ffvmod.capture_config.channels == FFV_CHANNEL_MODE_QUAD) {
+        return SND_DEVICE_IN_HANDSET_QMIC;
     } else {
         ALOGE("%s: Invalid channels configured for capture", __func__);
         return SND_DEVICE_NONE;
@@ -587,7 +590,7 @@
 }
 
 int audio_extn_ffv_init_ec_ref_loopback(struct audio_device *adev,
-                                        snd_device_t snd_device)
+                                        snd_device_t snd_device __unused)
 {
     struct audio_usecase *uc_info_tx = NULL;
     snd_device_t in_snd_device;
@@ -679,7 +682,7 @@
 }
 
 int audio_extn_ffv_deinit_ec_ref_loopback(struct audio_device *adev,
-                                          snd_device_t snd_device)
+                                          snd_device_t snd_device __unused)
 {
     struct audio_usecase *uc_info_tx = NULL;
     snd_device_t in_snd_device;
@@ -709,7 +712,7 @@
     return ret;
 }
 
-int32_t audio_extn_ffv_read(struct audio_stream_in *stream,
+int32_t audio_extn_ffv_read(struct audio_stream_in *stream __unused,
                        void *buffer, size_t bytes)
 {
     int status = 0;
@@ -717,7 +720,7 @@
     int16_t *process_ec_ref_ptr = NULL;
     size_t in_buf_size, out_buf_size, bytes_to_copy;
     int retry_num = 0;
-    int i, j, ch;
+    int i, ch;
     int total_in_ch, in_ch, ec_ref_ch;
 
     if (!ffvmod.ffv_lib_handle) {
@@ -805,7 +808,7 @@
         total_in_ch = ffvmod.capture_config.channels;
         ec_ref_ch = ffvmod.ec_ref_config.channels;
         in_ch = total_in_ch - ec_ref_ch;
-        for (i = 0; i < ffvmod.capture_config.period_size; i++) {
+        for (i = 0; i < (int)ffvmod.capture_config.period_size; i++) {
             for (ch = 0; ch < in_ch; ch++) {
                 process_in_ptr[i*in_ch+ch] =
                           in_ptr[i*total_in_ch+ch];
@@ -846,7 +849,6 @@
 void audio_extn_ffv_set_parameters(struct audio_device *adev __unused,
                                    struct str_parms *parms)
 {
-    int err;
     int val;
     int ret = 0;
     char value[128];
diff --git a/hal/audio_extn/soundtrigger.c b/hal/audio_extn/soundtrigger.c
index 041eb53..061616c 100644
--- a/hal/audio_extn/soundtrigger.c
+++ b/hal/audio_extn/soundtrigger.c
@@ -79,6 +79,7 @@
     AUDIO_EVENT_SVA_EXEC_MODE_STATUS,
     AUDIO_EVENT_CAPTURE_STREAM_INACTIVE,
     AUDIO_EVENT_CAPTURE_STREAM_ACTIVE,
+    AUDIO_EVENT_GET_PARAM
 } audio_event_type_t;
 
 typedef enum {
@@ -121,6 +122,12 @@
     int device;
 };
 
+struct sound_trigger_get_param_data {
+    char *param;
+    int sm_handle;
+    struct str_parms *reply;
+};
+
 struct audio_event_info {
     union {
         ssr_event_status_t status;
@@ -129,6 +136,7 @@
         struct audio_read_samples_info aud_info;
         char str_value[ST_EVENT_CONFIG_MAX_STR_VALUE];
         struct audio_hal_usecase usecase;
+        struct sound_trigger_get_param_data st_get_param_data;
     } u;
     struct sound_trigger_device_info device_info;
 };
@@ -165,6 +173,8 @@
 #define SOUND_TRIGGER_LIBRARY_PATH "/vendor/lib/hw/sound_trigger.primary.%s.so"
 #endif
 
+#define SVA_PARAM_DIRECTION_OF_ARRIVAL "st_direction_of_arrival"
+#define SVA_PARAM_CHANNEL_INDEX "st_channel_index"
 /*
  * Current proprietary API version used by AHAL. Queried by STHAL
  * for compatibility check with AHAL
@@ -597,7 +607,7 @@
                        struct str_parms *query, struct str_parms *reply)
 {
     audio_event_info_t event;
-    int ret;
+    int ret, val;
     char value[32];
 
     ret = str_parms_get_str(query, "SVA_EXEC_MODE_STATUS", value,
@@ -606,6 +616,22 @@
         st_dev->st_callback(AUDIO_EVENT_SVA_EXEC_MODE_STATUS, &event);
         str_parms_add_int(reply, "SVA_EXEC_MODE_STATUS", event.u.value);
     }
+
+    ret = str_parms_get_int(query, SVA_PARAM_DIRECTION_OF_ARRIVAL, &val);
+    if (ret >= 0) {
+        event.u.st_get_param_data.sm_handle = val;
+        event.u.st_get_param_data.param = SVA_PARAM_DIRECTION_OF_ARRIVAL;
+        event.u.st_get_param_data.reply = reply;
+        st_dev->st_callback(AUDIO_EVENT_GET_PARAM, &event);
+    }
+
+    ret = str_parms_get_int(query, SVA_PARAM_CHANNEL_INDEX, &val);
+    if (ret >= 0) {
+        event.u.st_get_param_data.sm_handle = val;
+        event.u.st_get_param_data.param = SVA_PARAM_CHANNEL_INDEX;
+        event.u.st_get_param_data.reply = reply;
+        st_dev->st_callback(AUDIO_EVENT_GET_PARAM, &event);
+    }
 }
 
 int audio_extn_sound_trigger_init(struct audio_device *adev)
