audio: Enable FFV for msm8953 target

- Add 6/8mic mixer controls in AHAL and STHAL to enable FFV.
- Enable compile flags and define libffv path on LA platform.

CRs-Fixed: 2225936
Change-Id: Ife7bcfd04a6a758a38ec82b79c69dc3ec7c4612c
diff --git a/configs/msm8953/audio_platform_info_extcodec.xml b/configs/msm8953/audio_platform_info_extcodec.xml
index ac0eabc..81d34c1 100644
--- a/configs/msm8953/audio_platform_info_extcodec.xml
+++ b/configs/msm8953/audio_platform_info_extcodec.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2016 The Linux Foundation. All rights reserved.         -->
+<!-- Copyright (c) 2015-2016, 2018, The Linux Foundation. All rights reserved.         -->
 <!--                                                                        -->
 <!-- Redistribution and use in source and binary forms, with or without     -->
 <!-- modification, are permitted provided that the following conditions are -->
@@ -25,6 +25,12 @@
 <!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
 <!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                          -->
 <audio_platform_info>
+    <acdb_ids>
+         <device name="SND_DEVICE_IN_HANDSET_6MIC" acdb_id="140"/>
+         <device name="SND_DEVICE_IN_HANDSET_8MIC" acdb_id="140"/>
+         <device name="SND_DEVICE_IN_EC_REF_LOOPBACK_MONO" acdb_id="140"/>
+         <device name="SND_DEVICE_IN_EC_REF_LOOPBACK_STEREO" acdb_id="140"/>
+    </acdb_ids>
     <bit_width_configs>
         <device name="SND_DEVICE_OUT_SPEAKER" bit_width="24"/>
     </bit_width_configs>
@@ -34,6 +40,11 @@
         <device name="AUDIO_DEVICE_IN_BUILTIN_MIC" interface="TERT_MI2S" codec_type="internal"/>
         <device name="AUDIO_DEVICE_IN_BACK_MIC" interface="TERT_MI2S" codec_type="internal"/>
     </interface_names>
+    <config_params>
+        <param key="input_mic_max_count" value="6"/>
+        <param key="ffv_split_ec_ref_data" value="false"/>
+        <param key="ffv_ec_ref_channel_count" value="1"/>
+    </config_params>
     <pcm_ids>
         <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD2" type="out" id="24"/>
         <usecase name="USECASE_AUDIO_PLAYBACK_OFFLOAD3" type="out" id="29"/>
@@ -50,6 +61,8 @@
         <usecase name="USECASE_AUDIO_SPKR_CALIB_TX" type="in" id="37"/>
         <usecase name="USECASE_QCHAT_CALL" type="in" id="42"/>
         <usecase name="USECASE_QCHAT_CALL" type="out" id="42"/>
+        <usecase name="USECASE_AUDIO_EC_REF_LOOPBACK" type="in" id="12"/>
+        <usecase name="USECASE_AUDIO_PLAYBACK_SILENCE" type="out" id="12"/>
     </pcm_ids>
     <config_params>
         <param key="spkr_1_tz_name" value="wsatz.11"/>
diff --git a/configs/msm8953/mixer_paths_wcd9335.xml b/configs/msm8953/mixer_paths_wcd9335.xml
index 1eb65b9..5b53ff3 100644
--- a/configs/msm8953/mixer_paths_wcd9335.xml
+++ b/configs/msm8953/mixer_paths_wcd9335.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-16, The Linux Foundation. All rights reserved.      -->
+<!-- Copyright (c) 2015-16, 2018, The Linux Foundation. All rights reserved.      -->
 <!--                                                                        -->
 <!-- Redistribution and use in source and binary forms, with or without     -->
 <!-- modification, are permitted provided that the following conditions are -->
@@ -563,6 +563,8 @@
     <ctl name="SLIMBUS_DL_HL Switch" value="0" />
     <ctl name="SLIMBUS6_DL_HL Switch" value="0" />
     <!-- ADSP testfwk end-->
+    <ctl name="MultiMedia5 Mixer SLIM_2_TX" value="0" />
+    <ctl name="PCM_Dev 12 Topology Capture" value="DTS" />
 
     <!-- These are audio route (FE to BE) specific mixer settings -->
     <path name="deep-buffer-playback">
@@ -2483,4 +2485,119 @@
           <path name="speaker-and-headphones" />
     </path>
 
+
+    <path name="ec-ref-audio-capture">
+        <ctl name="PCM_Dev 12 Topology Capture" value="LEGACY" />
+        <ctl name="MultiMedia5 Mixer SLIM_2_TX" value="1" />
+    </path>
+
+    <path name="handset-6mic">
+        <ctl name="AIF1_CAP Mixer SLIM TX1" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX2" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX3" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX4" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX5" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX6" value="1" />
+        <ctl name="SLIM_0_TX Channels" value="Six" />
+        <ctl name="SLIM TX1 MUX" value="DEC1" />
+        <ctl name="ADC MUX1" value="DMIC" />
+        <ctl name="DMIC MUX1" value="DMIC2" />
+        <ctl name="DEC1 Volume" value="96" />
+        <ctl name="SLIM TX2 MUX" value="DEC2" />
+        <ctl name="ADC MUX2" value="DMIC" />
+        <ctl name="DMIC MUX2" value="DMIC1" />
+        <ctl name="DEC2 Volume" value="96" />
+        <ctl name="SLIM TX3 MUX" value="DEC3" />
+        <ctl name="ADC MUX3" value="DMIC" />
+        <ctl name="DMIC MUX3" value="DMIC5" />
+        <ctl name="DEC3 Volume" value="96" />
+        <ctl name="SLIM TX4 MUX" value="DEC4" />
+        <ctl name="ADC MUX4" value="DMIC" />
+        <ctl name="DMIC MUX4" value="DMIC0" />
+        <ctl name="DEC4 Volume" value="96" />
+        <ctl name="SLIM TX5 MUX" value="DEC5" />
+        <ctl name="ADC MUX5" value="DMIC" />
+        <ctl name="DMIC MUX5" value="DMIC4" />
+        <ctl name="DEC5 Volume" value="96" />
+        <ctl name="SLIM TX6 MUX" value="DEC6" />
+        <ctl name="ADC MUX6" value="DMIC" />
+        <ctl name="DMIC MUX6" value="DMIC3" />
+        <ctl name="DEC6 Volume" value="96" />
+    </path>
+
+    <path name="handset-8mic">
+        <ctl name="AIF1_CAP Mixer SLIM TX1" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX2" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX3" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX4" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX5" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX6" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
+        <ctl name="SLIM_0_TX Channels" value="Eight" />
+        <ctl name="SLIM TX1 MUX" value="DEC1" />
+        <ctl name="ADC MUX1" value="DMIC" />
+        <ctl name="DMIC MUX1" value="DMIC2" />
+        <ctl name="DEC1 Volume" value="96" />
+        <ctl name="SLIM TX2 MUX" value="DEC2" />
+        <ctl name="ADC MUX2" value="DMIC" />
+        <ctl name="DMIC MUX2" value="DMIC1" />
+        <ctl name="DEC2 Volume" value="96" />
+        <ctl name="SLIM TX3 MUX" value="DEC3" />
+        <ctl name="ADC MUX3" value="DMIC" />
+        <ctl name="DMIC MUX3" value="DMIC5" />
+        <ctl name="DEC3 Volume" value="96" />
+        <ctl name="SLIM TX4 MUX" value="DEC4" />
+        <ctl name="ADC MUX4" value="DMIC" />
+        <ctl name="DMIC MUX4" value="DMIC0" />
+        <ctl name="DEC4 Volume" value="96" />
+        <ctl name="SLIM TX5 MUX" value="DEC5" />
+        <ctl name="ADC MUX5" value="DMIC" />
+        <ctl name="DMIC MUX5" value="DMIC4" />
+        <ctl name="DEC5 Volume" value="96" />
+        <ctl name="SLIM TX6 MUX" value="DEC6" />
+        <ctl name="ADC MUX6" value="DMIC" />
+        <ctl name="DMIC MUX6" value="DMIC3" />
+        <ctl name="DEC6 Volume" value="96" />
+
+        <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
+        <ctl name="RX MIX TX7 MUX" value="RX_MIX7"/>
+        <ctl name="SLIM TX8 MUX" value="RX_MIX_TX8"/>
+        <ctl name="RX MIX TX8 MUX" value="RX_MIX8"/>
+    </path>
+
+    <path name="ec-ref-loopback-mono">
+        <ctl name="SLIM_2_TX Channels" value="One" />
+        <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
+        <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
+        <ctl name="RX MIX TX7 MUX" value="RX_MIX7"/>
+    </path>
+
+    <path name="ec-ref-loopback-stereo">
+        <ctl name="SLIM_2_TX Channels" value="Two" />
+        <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
+        <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
+        <ctl name="RX MIX TX7 MUX" value="RX_MIX7"/>
+        <ctl name="AIF4_CAP Mixer SLIM TX8" value ="1"/>
+        <ctl name="SLIM TX8 MUX" value="RX_MIX_TX8"/>
+        <ctl name="RX MIX TX8 MUX" value="RX_MIX8"/>
+    </path>
+
+    <path name="ec-ref-loopback-mono lineout">
+        <ctl name="SLIM_2_TX Channels" value="One" />
+        <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
+        <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
+        <ctl name="RX MIX TX7 MUX" value="RX_MIX5"/>
+    </path>
+
+    <path name="ec-ref-loopback-stereo lineout">
+        <ctl name="SLIM_2_TX Channels" value="Two" />
+        <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
+        <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
+        <ctl name="RX MIX TX7 MUX" value="RX_MIX5"/>
+        <ctl name="AIF4_CAP Mixer SLIM TX8" value ="1"/>
+        <ctl name="SLIM TX8 MUX" value="RX_MIX_TX8"/>
+        <ctl name="RX MIX TX8 MUX" value="RX_MIX6"/>
+    </path>
+
 </mixer>
diff --git a/configs/msm8953/msm8953.mk b/configs/msm8953/msm8953.mk
index 2abb2b5..7381fa3 100644
--- a/configs/msm8953/msm8953.mk
+++ b/configs/msm8953/msm8953.mk
@@ -34,6 +34,10 @@
 
 USE_XML_AUDIO_POLICY_CONF := 1
 BOARD_SUPPORTS_SOUND_TRIGGER := true
+BOARD_SUPPORTS_SOUND_TRIGGER_ARM: = true
+AUDIO_FEATURE_ENABLED_FFV: = true
+AUDIO_FEATURE_ENABLED_KEEP_ALIVE_ARM_FFV: = true
+AUDIO_FEATURE_ENABLED_KEEP_ALIVE: = true
 AUDIO_USE_LL_AS_PRIMARY_OUTPUT := true
 AUDIO_FEATURE_ENABLED_HIFI_AUDIO := true
 AUDIO_FEATURE_ENABLED_VBAT_MONITOR := true
@@ -120,7 +124,10 @@
 PRODUCT_PROPERTY_OVERRIDES += \
 vendor.audio_hal.period_size=192
 
-##fluencetype can be "fluence" or "fluencepro" or "none"
+PRODUCT_PROPERTY_OVERRIDES += \
+ro.vendor.audio.sdk.ffv=false
+
+##fluencetype can be "fluence" or "fluencepro" or "fluenceffv" or "none"
 PRODUCT_PROPERTY_OVERRIDES += \
 ro.vendor.audio.sdk.fluencetype=none\
 persist.vendor.audio.fluence.voicecall=true\
diff --git a/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml b/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml
index c1b6097..1756772 100644
--- a/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml
+++ b/configs/msm8953/sound_trigger_mixer_paths_wcd9335.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<!--- Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
+<!--- Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
 
       Redistribution and use in source and binary forms, with or without
       modification, are permitted provided that the following conditions are
@@ -53,23 +53,52 @@
     <ctl name="AIF4_MAD Mixer SLIM TX12" value="0" />
     <ctl name="AIF4_MAD Mixer SLIM TX13" value="0" />
     <ctl name="CPE AFE MAD Enable" value="0"/>
+    <ctl name="SLIM TX8 MUX" value="ZERO" />
+    <ctl name="SLIM TX7 MUX" value="ZERO" />
+    <ctl name="SLIM TX6 MUX" value="ZERO" />
+    <ctl name="SLIM TX5 MUX" value="ZERO" />
+    <ctl name="SLIM TX4 MUX" value="ZERO" />
+    <ctl name="SLIM TX3 MUX" value="ZERO" />
+    <ctl name="SLIM TX2 MUX" value="ZERO" />
+    <ctl name="SLIM TX1 MUX" value="ZERO" />
     <ctl name="CLK MODE" value="EXTERNAL" />
     <ctl name="EC BUF MUX INP" value="ZERO" />
     <ctl name="ADC MUX1" value="DMIC" />
     <ctl name="DMIC MUX1" value="ZERO" />
+    <ctl name="ADC MUX1" value="AMIC" />
+    <ctl name="ADC MUX2" value="AMIC" />
+    <ctl name="ADC MUX3" value="AMIC" />
+    <ctl name="ADC MUX4" value="AMIC" />
     <ctl name="ADC MUX5" value="AMIC" />
     <ctl name="ADC MUX6" value="AMIC" />
     <ctl name="ADC MUX7" value="AMIC" />
     <ctl name="ADC MUX8" value="AMIC" />
+    <ctl name="DMIC MUX1" value="ZERO" />
+    <ctl name="DMIC MUX2" value="ZERO" />
+    <ctl name="DMIC MUX3" value="ZERO" />
+    <ctl name="DMIC MUX4" value="ZERO" />
     <ctl name="DMIC MUX5" value="ZERO" />
     <ctl name="DMIC MUX6" value="ZERO" />
     <ctl name="DMIC MUX7" value="ZERO" />
     <ctl name="DMIC MUX8" value="ZERO" />
+    <ctl name="RX MIX TX7 MUX" value="ZERO" />
+    <ctl name="RX MIX TX8 MUX" value="ZERO" />
+    <ctl name="SLIM_0_TX Channels" value="One" />
+    <ctl name="SLIM_2_TX Channels" value="One" />
     <ctl name="IIR0 INP0 MUX" value="ZERO" />
+    <ctl name="AIF1_CAP Mixer SLIM TX1" value="0" />
+    <ctl name="AIF1_CAP Mixer SLIM TX2" value="0" />
+    <ctl name="AIF1_CAP Mixer SLIM TX3" value="0" />
+    <ctl name="AIF1_CAP Mixer SLIM TX4" value="0" />
     <ctl name="AIF1_CAP Mixer SLIM TX5" value="0" />
     <ctl name="AIF1_CAP Mixer SLIM TX6" value="0" />
     <ctl name="AIF1_CAP Mixer SLIM TX7" value="0" />
     <ctl name="AIF1_CAP Mixer SLIM TX8" value="0" />
+    <ctl name="AIF4_CAP Mixer SLIM TX8" value="0" />
+    <ctl name="AIF4_CAP Mixer SLIM TX7" value="0" />
+
+    <ctl name="MultiMedia2 Mixer SLIM_0_TX" value="0" />
+    <ctl name="MultiMedia9 Mixer SLIM_2_TX" value="0" />
 
     <path name="listen-voice-wakeup-1">
         <ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
@@ -161,6 +190,14 @@
         <ctl name="LSM8 Mixer SLIMBUS_0_TX" value="1" />
     </path>
 
+    <path name="audio-capture">
+        <ctl name="MultiMedia2 Mixer SLIM_0_TX" value="1" />
+    </path>
+
+    <path name="ec-ref-audio-capture">
+        <ctl name="MultiMedia9 Mixer SLIM_2_TX" value="1" />
+    </path>
+
     <path name="listen-cpe-handset-mic">
         <ctl name="MADONOFF Switch" value="1" />
         <ctl name="TX13 INP MUX" value="CPE_TX_PP" />
@@ -248,6 +285,115 @@
         <ctl name="DMIC MUX7" value="DMIC4" />
     </path>
 
+    <path name="listen-handset-6mic">
+        <ctl name="AIF1_CAP Mixer SLIM TX1" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX2" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX3" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX4" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX5" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX6" value="1" />
+        <ctl name="SLIM_0_TX Channels" value="Six" />
+        <ctl name="SLIM TX1 MUX" value="DEC1" />
+        <ctl name="ADC MUX1" value="DMIC" />
+        <ctl name="DMIC MUX1" value="DMIC2" />
+        <ctl name="DEC1 Volume" value="96" />
+        <ctl name="SLIM TX2 MUX" value="DEC2" />
+        <ctl name="ADC MUX2" value="DMIC" />
+        <ctl name="DMIC MUX2" value="DMIC1" />
+        <ctl name="DEC2 Volume" value="96" />
+        <ctl name="SLIM TX3 MUX" value="DEC3" />
+        <ctl name="ADC MUX3" value="DMIC" />
+        <ctl name="DMIC MUX3" value="DMIC5" />
+        <ctl name="DEC3 Volume" value="96" />
+        <ctl name="SLIM TX4 MUX" value="DEC4" />
+        <ctl name="ADC MUX4" value="DMIC" />
+        <ctl name="DMIC MUX4" value="DMIC0" />
+        <ctl name="DEC4 Volume" value="96" />
+        <ctl name="SLIM TX5 MUX" value="DEC5" />
+        <ctl name="ADC MUX5" value="DMIC" />
+        <ctl name="DMIC MUX5" value="DMIC4" />
+        <ctl name="DEC5 Volume" value="96" />
+        <ctl name="SLIM TX6 MUX" value="DEC6" />
+        <ctl name="ADC MUX6" value="DMIC" />
+        <ctl name="DMIC MUX6" value="DMIC3" />
+        <ctl name="DEC6 Volume" value="96" />
+    </path>
+
+    <path name="listen-handset-8mic">
+        <ctl name="AIF1_CAP Mixer SLIM TX1" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX2" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX3" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX4" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX5" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX6" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX7" value="1" />
+        <ctl name="AIF1_CAP Mixer SLIM TX8" value="1" />
+        <ctl name="SLIM_0_TX Channels" value="Eight" />
+        <ctl name="SLIM TX1 MUX" value="DEC1" />
+        <ctl name="ADC MUX1" value="DMIC" />
+        <ctl name="DMIC MUX1" value="DMIC2" />
+        <ctl name="DEC1 Volume" value="96" />
+        <ctl name="SLIM TX2 MUX" value="DEC2" />
+        <ctl name="ADC MUX2" value="DMIC" />
+        <ctl name="DMIC MUX2" value="DMIC1" />
+        <ctl name="DEC2 Volume" value="96" />
+        <ctl name="SLIM TX3 MUX" value="DEC3" />
+        <ctl name="ADC MUX3" value="DMIC" />
+        <ctl name="DMIC MUX3" value="DMIC5" />
+        <ctl name="DEC3 Volume" value="96" />
+        <ctl name="SLIM TX4 MUX" value="DEC4" />
+        <ctl name="ADC MUX4" value="DMIC" />
+        <ctl name="DMIC MUX4" value="DMIC0" />
+        <ctl name="DEC4 Volume" value="96" />
+        <ctl name="SLIM TX5 MUX" value="DEC5" />
+        <ctl name="ADC MUX5" value="DMIC" />
+        <ctl name="DMIC MUX5" value="DMIC4" />
+        <ctl name="DEC5 Volume" value="96" />
+        <ctl name="SLIM TX6 MUX" value="DEC6" />
+        <ctl name="ADC MUX6" value="DMIC" />
+        <ctl name="DMIC MUX6" value="DMIC3" />
+        <ctl name="DEC6 Volume" value="96" />
+
+        <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
+        <ctl name="RX MIX TX7 MUX" value="RX_MIX7"/>
+        <ctl name="SLIM TX8 MUX" value="RX_MIX_TX8"/>
+        <ctl name="RX MIX TX8 MUX" value="RX_MIX8"/>
+    </path>
+
+    <path name="ec-ref-loopback-mono">
+        <ctl name="SLIM_2_TX Channels" value="One" />
+        <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
+        <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
+        <ctl name="RX MIX TX7 MUX" value="RX_MIX7"/>
+    </path>
+
+    <path name="ec-ref-loopback-stereo">
+        <ctl name="SLIM_2_TX Channels" value="Two" />
+        <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
+        <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
+        <ctl name="RX MIX TX7 MUX" value="RX_MIX7"/>
+        <ctl name="AIF4_CAP Mixer SLIM TX8" value ="1"/>
+        <ctl name="SLIM TX8 MUX" value="RX_MIX_TX8"/>
+        <ctl name="RX MIX TX8 MUX" value="RX_MIX8"/>
+    </path>
+
+    <path name="ec-ref-loopback-mono lineout">
+        <ctl name="SLIM_2_TX Channels" value="One" />
+        <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
+        <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
+        <ctl name="RX MIX TX7 MUX" value="RX_MIX5"/>
+    </path>
+
+    <path name="ec-ref-loopback-stereo lineout">
+        <ctl name="SLIM_2_TX Channels" value="Two" />
+        <ctl name="AIF4_CAP Mixer SLIM TX7" value ="1"/>
+        <ctl name="SLIM TX7 MUX" value="RX_MIX_TX7"/>
+        <ctl name="RX MIX TX7 MUX" value="RX_MIX5"/>
+        <ctl name="AIF4_CAP Mixer SLIM TX8" value ="1"/>
+        <ctl name="SLIM TX8 MUX" value="RX_MIX_TX8"/>
+        <ctl name="RX MIX TX8 MUX" value="RX_MIX6"/>
+    </path>
+
     <path name="echo-reference">
         <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_RX" />
         <ctl name="EC Reference Channels" value="Two"/>
diff --git a/configs/msm8953/sound_trigger_platform_info.xml b/configs/msm8953/sound_trigger_platform_info.xml
index a1f70a0..0925931 100644
--- a/configs/msm8953/sound_trigger_platform_info.xml
+++ b/configs/msm8953/sound_trigger_platform_info.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<!--- Copyright (c) 2013-2017, The Linux Foundation. All rights reserved.       -->
+<!--- Copyright (c) 2013-2018, The Linux Foundation. All rights reserved.       -->
 <!---                                                                           -->
 <!--- Redistribution and use in source and binary forms, with or without        -->
 <!--- modification, are permitted provided that the following conditions are    -->
@@ -54,6 +54,8 @@
         <param DEVICE_HANDSET_QMIC_APE="150" />
         <param DEVICE_HANDSET_DMIC_APE="149" />
         <param DEVICE_HANDSET_TMIC_APE="152" />
+        <param DEVICE_HANDSET_6MIC_ARM="140" />
+        <param DEVICE_HANDSET_8MIC_ARM="140" />
     </acdb_ids>
 
     <!-- Multiple sound_model_config tags can be listed, each with unique    -->
@@ -90,6 +92,24 @@
         <param client_capture_read_delay="2000" />
     </sound_model_config>
 
+    <!-- ARM based SVA sound_model_config -->
+    <sound_model_config>
+        <param vendor_uuid="67fabb70-79e8-4e1c-a202-bcb050243a70" />
+        <param execution_type="ARM" />
+        <!-- ec reference loopback params -->
+        <!-- split_ec_ref_data - true if ec ref is packed with mic captured data -->
+        <param split_ec_ref_data="false"/>
+        <param ec_ref_channel_count="1"/>
+
+        <!-- Profile specific data which the algorithm can support -->
+        <param sample_rate="16000" />
+        <param bit_width="16" />
+        <param channel_count="6"/>
+        <!-- adm_cfg_profile should match with the one defined under adm_config -->
+        <!-- Set it to NONE if LSM directly connects to AFE -->
+        <param adm_cfg_profile="DEFAULT" />
+    </sound_model_config>
+
     <!-- Multiple adm_config tags can be listed, each with unique profile name. -->
     <!-- app_type to match corresponding value from ACDB -->
     <adm_config>
@@ -105,6 +125,4 @@
         <param sample_rate="16000" />
         <param bit_width="16" />
     </adm_config>
-
 </sound_trigger_platform_info>
-
diff --git a/hal/Android.mk b/hal/Android.mk
index 523a593..921252c 100644
--- a/hal/Android.mk
+++ b/hal/Android.mk
@@ -395,6 +395,15 @@
     LOCAL_CFLAGS += -DDYNAMIC_ECNS_ENABLED
 endif
 
+ifeq ($(strip $($AUDIO_FEATURE_ENABLED_KEEP_ALIVE_ARM_FFV)), true)
+    LOCAL_CFLAGS += -DRUN_KEEP_ALIVE_IN_ARM_FFV
+endif
+
+ifeq ($(strip $($AUDIO_FEATURE_ENABLED_FFV_FFV)), true)
+    LOCAL_CFLAGS += -DFFV_ENABLED
+    LOCAL_SRC_FILES += audio_extn/ffv.c
+endif
+
 LOCAL_CFLAGS += -Wall -Werror
 
 LOCAL_COPY_HEADERS_TO   := mm-audio
diff --git a/hal/audio_extn/ffv.c b/hal/audio_extn/ffv.c
index 027849c..71aeb3d 100644
--- a/hal/audio_extn/ffv.c
+++ b/hal/audio_extn/ffv.c
@@ -59,8 +59,22 @@
 #define AUDIO_PARAMETER_FFV_EC_REF_DEVICE "ffv_ec_ref_dev"
 #define AUDIO_PARAMETER_FFV_CHANNEL_INDEX "ffv_channel_index"
 
-#define FFV_LIB "libffv.so"
-#define FFV_CONFIG_FILE_PATH "/etc/BF_1out.cfg"
+#if LINUX_ENABLED
+#define ST_FFV_CONFIG_FILE_PATH "/etc/BF_1out.cfg"
+#ifdef __LP64__
+#define FFV_LIB "/usr/lib64/libffv.so"
+#else
+#define FFV_LIB "/usr/lib/libffv.so"
+#endif
+#else
+#define ST_FFV_CONFIG_FILE_PATH "/vendor/etc/BF_1out.cfg"
+#ifdef __LP64__
+#define FFV_LIB "/vendor/lib64/libffv.so"
+#else
+#define FFV_LIB "/vendor/lib/libffv.so"
+#endif
+#endif
+
 #define FFV_SAMPLING_RATE_16000 16000
 #define FFV_EC_REF_LOOPBACK_DEVICE_MONO "ec-ref-loopback-mono"
 #define FFV_EC_REF_LOOPBACK_DEVICE_STEREO "ec-ref-loopback-stereo"