Merge "configs: msmsteppe: Add default platform info file for IDP variant"
diff --git a/configs/msm8937/sound_trigger_mixer_paths.xml b/configs/msm8937/sound_trigger_mixer_paths.xml
index f6abb6b..34ffd5b 100644
--- a/configs/msm8937/sound_trigger_mixer_paths.xml
+++ b/configs/msm8937/sound_trigger_mixer_paths.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<!--- Copyright (c) 2014, 2016-2017, The Linux Foundation. All rights reserved.-->
+<!--- Copyright (c) 2014, 2016-2018, The Linux Foundation. All rights reserved.-->
 <!---                                                                           -->
 <!--- Redistribution and use in source and binary forms, with or without        -->
 <!--- modification, are permitted provided that the following conditions are    -->
@@ -94,6 +94,54 @@
         <ctl name="LSM8 Mixer TERT_MI2S_TX" value="1" />
     </path>
 
+    <path name="listen-voice-wakeup-1 preproc">
+        <ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
+        <ctl name="LSM1 Port" value="ADM_LSM_TX" />
+        <ctl name="LSM1 Mixer TERT_MI2S_TX" value="1" />
+    </path>
+
+    <path name="listen-voice-wakeup-2 preproc">
+        <ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
+        <ctl name="LSM2 Port" value="ADM_LSM_TX" />
+        <ctl name="LSM2 Mixer TERT_MI2S_TX" value="1" />
+    </path>
+
+    <path name="listen-voice-wakeup-3 preproc">
+        <ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
+        <ctl name="LSM3 Port" value="ADM_LSM_TX" />
+        <ctl name="LSM3 Mixer TERT_MI2S_TX" value="1" />
+    </path>
+
+    <path name="listen-voice-wakeup-4 preproc">
+        <ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
+        <ctl name="LSM4 Port" value="ADM_LSM_TX" />
+        <ctl name="LSM4 Mixer TERT_MI2S_TX" value="1" />
+    </path>
+
+    <path name="listen-voice-wakeup-5 preproc">
+        <ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
+        <ctl name="LSM5 Port" value="ADM_LSM_TX" />
+        <ctl name="LSM5 Mixer TERT_MI2S_TX" value="1" />
+    </path>
+
+    <path name="listen-voice-wakeup-6 preproc">
+        <ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
+        <ctl name="LSM6 Port" value="ADM_LSM_TX" />
+        <ctl name="LSM6 Mixer TERT_MI2S_TX" value="1" />
+    </path>
+
+    <path name="listen-voice-wakeup-7 preproc">
+        <ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
+        <ctl name="LSM7 Port" value="ADM_LSM_TX" />
+        <ctl name="LSM7 Mixer TERT_MI2S_TX" value="1" />
+    </path>
+
+    <path name="listen-voice-wakeup-8 preproc">
+        <ctl name="TERT_MI2S_TX LSM Function" value="SWAUDIO" />
+        <ctl name="LSM8 Port" value="ADM_LSM_TX" />
+        <ctl name="LSM8 Mixer TERT_MI2S_TX" value="1" />
+    </path>
+
     <path name="listen-ape-handset-mic">
         <!-- this is to avoid codec mute when device is not enabled first -->
         <ctl name="LOOPBACK Mode" value="ENABLE" />
@@ -102,4 +150,18 @@
         <ctl name="ADC2 MUX" value="INP3" />
     </path>
 
+    <path name="listen-ape-handset-mic-preproc">
+        <path name="listen-ape-handset-mic"/>
+    </path>
+
+    <path name="listen-ape-handset-dmic">
+        <ctl name="ADC1 Volume" value="6" />
+        <ctl name="DEC1 MUX" value="ADC1" />
+        <ctl name="ADC1_INP1 Switch" value="1" />
+        <ctl name="ADC3 Volume" value="6" />
+        <ctl name="DEC2 MUX" value="ADC2" />
+        <ctl name="MI2S_TX Channels" value="Two" />
+        <ctl name="ADC2 MUX" value="INP3" />
+    </path>
+
 </mixer>
diff --git a/configs/msm8937/sound_trigger_mixer_paths_wcd9335.xml b/configs/msm8937/sound_trigger_mixer_paths_wcd9335.xml
index af630d0..cb6bd32 100644
--- a/configs/msm8937/sound_trigger_mixer_paths_wcd9335.xml
+++ b/configs/msm8937/sound_trigger_mixer_paths_wcd9335.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
@@ -56,7 +56,26 @@
     <ctl name="CLK MODE" value="EXTERNAL" />
     <ctl name="EC BUF MUX INP" value="ZERO" />
     <ctl name="ADC MUX1" value="DMIC" />
+    <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 MUX5" value="ZERO" />
+    <ctl name="DMIC MUX6" value="ZERO" />
+    <ctl name="DMIC MUX7" value="ZERO" />
+    <ctl name="DMIC MUX8" value="ZERO" />
+    <ctl name="IIR0 INP0 MUX" value="ZERO" />
+    <ctl name="AIF1_CAP Mixer SLIM TX7" value="0" />
+    <ctl name="SLIM_0_TX Channels" value="One" />
+    <ctl name="SLIM TX5 MUX" value="ZERO" />
+    <ctl name="SLIM TX6 MUX" value="ZERO" />
+    <ctl name="SLIM TX7 MUX" value="ZERO" />
+    <ctl name="SLIM TX8 MUX" value="ZERO" />
+    <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" />
 
     <path name="listen-voice-wakeup-1">
         <ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
@@ -99,6 +118,46 @@
         <ctl name="LSM8 Port" value="SLIMBUS_5_TX" />
         <ctl name="LSM8 Mixer SLIMBUS_5_TX" value="1" />
     </path>
+    <path name="listen-voice-wakeup-1 preproc">
+        <ctl name="SLIMBUS_0_TX LSM Function" value="SWAUDIO" />
+        <ctl name="LSM1 Port" value="ADM_LSM_TX" />
+        <ctl name="LSM1 Mixer SLIMBUS_0_TX" value="1" />
+    </path>
+    <path name="listen-voice-wakeup-2 preproc">
+        <ctl name="SLIMBUS_0_TX LSM Function" value="SWAUDIO" />
+        <ctl name="LSM2 Port" value="ADM_LSM_TX" />
+        <ctl name="LSM2 Mixer SLIMBUS_0_TX" value="1" />
+    </path>
+    <path name="listen-voice-wakeup-3 preproc">
+        <ctl name="SLIMBUS_0_TX LSM Function" value="SWAUDIO" />
+        <ctl name="LSM3 Port" value="ADM_LSM_TX" />
+        <ctl name="LSM3 Mixer SLIMBUS_0_TX" value="1" />
+    </path>
+    <path name="listen-voice-wakeup-4 preproc">
+        <ctl name="SLIMBUS_0_TX LSM Function" value="SWAUDIO" />
+        <ctl name="LSM4 Port" value="ADM_LSM_TX" />
+        <ctl name="LSM4 Mixer SLIMBUS_0_TX" value="1" />
+    </path>
+    <path name="listen-voice-wakeup-5 preproc">
+        <ctl name="SLIMBUS_0_TX LSM Function" value="SWAUDIO" />
+        <ctl name="LSM5 Port" value="ADM_LSM_TX" />
+        <ctl name="LSM5 Mixer SLIMBUS_0_TX" value="1" />
+    </path>
+    <path name="listen-voice-wakeup-6 preproc">
+        <ctl name="SLIMBUS_0_TX LSM Function" value="SWAUDIO" />
+        <ctl name="LSM6 Port" value="ADM_LSM_TX" />
+        <ctl name="LSM6 Mixer SLIMBUS_0_TX" value="1" />
+    </path>
+    <path name="listen-voice-wakeup-7 preproc">
+        <ctl name="SLIMBUS_0_TX LSM Function" value="SWAUDIO" />
+        <ctl name="LSM7 Port" value="ADM_LSM_TX" />
+        <ctl name="LSM7 Mixer SLIMBUS_0_TX" value="1" />
+    </path>
+    <path name="listen-voice-wakeup-8 preproc">
+        <ctl name="SLIMBUS_0_TX LSM Function" value="SWAUDIO" />
+        <ctl name="LSM8 Port" value="ADM_LSM_TX" />
+        <ctl name="LSM8 Mixer SLIMBUS_0_TX" value="1" />
+    </path>
 
     <path name="listen-cpe-handset-mic">
         <ctl name="MADONOFF Switch" value="1" />
@@ -130,4 +189,33 @@
         <ctl name="MAD Input" value="DMIC0" />
     </path>
 
+    <path name="listen-ape-handset-mic-preproc">
+        <ctl name="AIF1_CAP Mixer SLIM TX7" value="1"/>
+        <ctl name="SLIM_0_TX Channels" value="One" />
+        <ctl name="SLIM TX7 MUX" value="DEC7" />
+        <ctl name="ADC MUX7" value="DMIC" />
+        <ctl name="DMIC MUX7" value="DMIC0" />
+        <ctl name="IIR0 INP0 MUX" value="DEC7" />
+    </path>
+
+    <path name="listen-ape-handset-qmic">
+        <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="Four" />
+        <ctl name="SLIM TX5 MUX" value="DEC5" />
+        <ctl name="ADC MUX5" value="DMIC" />
+        <ctl name="DMIC MUX5" value="DMIC0" />
+        <ctl name="SLIM TX6 MUX" value="DEC6" />
+        <ctl name="ADC MUX6" value="DMIC" />
+        <ctl name="DMIC MUX6" value="DMIC2" />
+        <ctl name="SLIM TX7 MUX" value="DEC7" />
+        <ctl name="ADC MUX7" value="DMIC" />
+        <ctl name="DMIC MUX7" value="DMIC1" />
+        <ctl name="SLIM TX8 MUX" value="DEC8" />
+        <ctl name="ADC MUX8" value="DMIC" />
+        <ctl name="DMIC MUX8" value="DMIC3" />
+    </path>
+
 </mixer>
diff --git a/configs/msm8953/msm8953.mk b/configs/msm8953/msm8953.mk
index fd03e88..b60c56c 100644
--- a/configs/msm8953/msm8953.mk
+++ b/configs/msm8953/msm8953.mk
@@ -57,6 +57,7 @@
 BOARD_SUPPORTS_QAHW := false
 AUDIO_FEATURE_ENABLED_DYNAMIC_LOG := true
 AUDIO_FEATURE_ENABLED_SND_MONITOR := true
+AUDIO_FEATURE_ENABLED_SVA_MULTI_STAGE := true
 ifeq ($(TARGET_KERNEL_VERSION), 3.18)
     AUDIO_FEATURE_ENABLED_DLKM := false
 else
@@ -241,7 +242,7 @@
     android.hardware.audio@2.0-service \
     android.hardware.audio@2.0-impl \
     android.hardware.audio.effect@2.0-impl \
-    android.hardware.soundtrigger@2.0-impl \
+    android.hardware.soundtrigger@2.1-impl \
     android.hardware.audio@4.0 \
     android.hardware.audio.common@4.0 \
     android.hardware.audio.common@4.0-util \
diff --git a/configs/msm8953/sound_trigger_mixer_paths.xml b/configs/msm8953/sound_trigger_mixer_paths.xml
index e7f3740..c889d65 100644
--- a/configs/msm8953/sound_trigger_mixer_paths.xml
+++ b/configs/msm8953/sound_trigger_mixer_paths.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
-<!--- Copyright (c) 2014, 2016-2017, The Linux Foundation. All rights reserved.-->
+<!--- Copyright (c) 2014, 2016-2018, The Linux Foundation. All rights reserved.-->
 <!---                                                                           -->
 <!--- Redistribution and use in source and binary forms, with or without        -->
 <!--- modification, are permitted provided that the following conditions are    -->
@@ -158,6 +158,7 @@
     <path name="listen-ape-handset-dmic">
         <ctl name="ADC1 Volume" value="6" />
         <ctl name="DEC1 MUX" value="ADC1" />
+        <ctl name="ADC1_INP1 Switch" value="1" />
         <ctl name="ADC3 Volume" value="6" />
         <ctl name="DEC2 MUX" value="ADC2" />
         <ctl name="MI2S_TX Channels" value="Two" />
diff --git a/configs/msm8953/sound_trigger_platform_info.xml b/configs/msm8953/sound_trigger_platform_info.xml
index a1f70a0..ddaa2e5 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    -->
@@ -29,12 +29,13 @@
     <param version="0x0101" /> <!-- this must be the first param -->
 
     <common_config>
-        <param execution_type="APE" /> <!-- value: "CPE" "APE" -->
         <param max_cpe_sessions="1" />
         <param max_ape_sessions="5" />
         <param enable_failure_detection="false" />
         <param rx_concurrency_disabled="true" />
         <param rx_conc_max_st_ses="1" />
+        <!-- Transition will only occur if execution_type="DYNAMIC" -->
+        <param transit_to_adsp_on_playback="false" />
         <!-- Below backend params must match with port used in mixer path file -->
         <!-- param used to configure backend sample rate, format and channels -->
         <!--Enable below backend params for internal codec-->
@@ -61,6 +62,7 @@
     <!-- configuration. ISV must use their own unique vendor_uuid.           -->
     <sound_model_config>
         <param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b" />
+        <param execution_type="ADSP" /> <!-- value: "WDSP" "ADSP" "DYNAMIC" -->
         <param app_type="2" /> <!-- app type used in ACDB -->
         <param library="libsmwrapper.so" />
         <param max_cpe_phrases="6" />
@@ -78,16 +80,46 @@
         <param fluence_type="NONE" />
 
         <!-- Module and param ids with which the algorithm is integrated in firmware -->
-        <param load_sound_model_ids="0x00012C0D, 0x00012C14" />
-        <param unload_sound_model_ids="0x00012C0D, 0x00012C15" />
-        <param confidence_levels_ids="0x00012C0D, 0x00012C07" />
-        <param operation_mode_ids="0x00012C0D, 0x00012C02" />
+        <lsm_usecase>
+            <param execution_mode="WDSP" />
+            <param load_sound_model_ids="0x00012C0D, 0x00012C14" />
+            <param unload_sound_model_ids="0x00012C0D, 0x00012C15" />
+            <param confidence_levels_ids="0x00012C0D, 0x00012C07" />
+            <param operation_mode_ids="0x00012C0D, 0x00012C02" />
+            <param custom_config_ids="0x00012C0D, 0x00012C20" />
+        </lsm_usecase>
+
+        <lsm_usecase>
+            <param execution_mode="ADSP" />
+            <param load_sound_model_ids="0x00012C0D, 0x00012C14" />
+            <param unload_sound_model_ids="0x00012C0D, 0x00012C15" />
+            <param confidence_levels_ids="0x00012C0D, 0x00012C07" />
+            <param operation_mode_ids="0x00012C0D, 0x00012C02" />
+            <param custom_config_ids="0x00012C0D, 0x00012C20" />
+        </lsm_usecase>
 
         <!-- format: "ADPCM_packet" or "PCM_packet" !-->
         <!-- transfer_mode: "FTRT" or "RT" -->
         <!--  kw_duration is in milli seconds. It is valid only for FTRT transfer mode -->
         <param capture_keyword="PCM_packet, RT, 2000" />
         <param client_capture_read_delay="2000" />
+        <arm_ss_usecase>
+            <!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION", "CUSTOM_DETECTION"  -->
+            <param sm_detection_type= "KEYWORD_DETECTION" />
+            <param sm_id="0x2" />
+            <param module_lib="libcapiv2svacnn.so"/>
+            <param sample_rate="16000"/>
+            <param bit_wdith="16"/>
+            <param channel_count="1"/>
+        </arm_ss_usecase>
+        <arm_ss_usecase>
+            <param sm_detection_type= "USER_VERIFICATION" />
+            <param sm_id="0x4" />
+            <param module_lib="libcapiv2vop.so"/>
+            <param sample_rate="16000"/>
+            <param bit_wdith="16"/>
+            <param channel_count="1"/>
+        </arm_ss_usecase>
     </sound_model_config>
 
     <!-- Multiple adm_config tags can be listed, each with unique profile name. -->
diff --git a/configs/sdm710/audio_platform_info.xml b/configs/sdm710/audio_platform_info.xml
index 6154a27..da8f767 100644
--- a/configs/sdm710/audio_platform_info.xml
+++ b/configs/sdm710/audio_platform_info.xml
@@ -99,7 +99,7 @@
         <usecase name="USECASE_AUDIO_HFP_SCO_WB" type="in" id="35" />
         <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="16" />
         <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="16" />
-        <usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="in" id="40" />
+        <usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="in" id="35" />
     </pcm_ids>
     <config_params>
         <param key="spkr_1_tz_name" value="wsatz.13"/>
diff --git a/configs/sdm710/audio_platform_info_intcodec.xml b/configs/sdm710/audio_platform_info_intcodec.xml
index b42d22b..8495686 100644
--- a/configs/sdm710/audio_platform_info_intcodec.xml
+++ b/configs/sdm710/audio_platform_info_intcodec.xml
@@ -68,6 +68,7 @@
         <usecase name="USECASE_AUDIO_RECORD_COMPRESS4" type="in" id="43"/>
         <usecase name="USECASE_AUDIO_RECORD_COMPRESS5" type="in" id="44"/>
         <usecase name="USECASE_AUDIO_RECORD_COMPRESS6" type="in" id="45"/>
+        <usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="in" id="12"/>
     </pcm_ids>
     <config_params>
         <!-- In the below value string, the value indicates default mono -->
diff --git a/configs/sdm710/audio_platform_info_skuw.xml b/configs/sdm710/audio_platform_info_skuw.xml
index 0f23781..fccc18d 100644
--- a/configs/sdm710/audio_platform_info_skuw.xml
+++ b/configs/sdm710/audio_platform_info_skuw.xml
@@ -63,6 +63,7 @@
         <usecase name="USECASE_AUDIO_HFP_SCO_WB" type="in" id="12" />
         <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="16" />
         <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="16" />
+        <usecase name="USECASE_AUDIO_A2DP_ABR_FEEDBACK" type="in" id="12"/>
     </pcm_ids>
     <config_params>
         <!-- In the below value string, the value indicates default mono -->
diff --git a/configs/sdm710/sdm710.mk b/configs/sdm710/sdm710.mk
index 092e560..536cc2c 100644
--- a/configs/sdm710/sdm710.mk
+++ b/configs/sdm710/sdm710.mk
@@ -230,7 +230,7 @@
 
 #split a2dp DSP supported encoder list
 PRODUCT_PROPERTY_OVERRIDES += \
-persist.vendor.bt.a2dp_offload_cap=sbc-aptx-aptxhd-aac
+persist.vendor.bt.a2dp_offload_cap=sbc-aptx-aptxhd-aac-ldac
 
 #enable software decoders for ALAC and APE
 PRODUCT_PROPERTY_OVERRIDES += \