Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fc10b9c3 authored by Dhanalakshmi Siddani's avatar Dhanalakshmi Siddani
Browse files

audio: Enable FFV for APQ8909 target

Define feature flags to enable FFV.
Update sound_trigger_platform xml file structure to match with sthal.
Take latest mixer paths and platform xml files in AHAL and STHAL.
Set flag to not to compile legacy STHAL for 8909.

CRs-Fixed: 2273661
Change-Id: Iaf43d9ad0645c4aea7a46401a084cef4a94b2d13
parent fc182748
Loading
Loading
Loading
Loading
+59 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Copyright (c) 2015, 2017-2018, The Linux Foundation. All rights reserved. -->
<!--                                                                        -->
<!-- Redistribution and use in source and binary forms, with or without     -->
<!-- modification, are permitted provided that the following conditions are -->
<!-- met:                                                                   -->
<!--     * Redistributions of source code must retain the above copyright   -->
<!--       notice, this list of conditions and the following disclaimer.    -->
<!--     * Redistributions in binary form must reproduce the above          -->
<!--       copyright notice, this list of conditions and the following      -->
<!--       disclaimer in the documentation and/or other materials provided  -->
<!--       with the distribution.                                           -->
<!--     * Neither the name of The Linux Foundation nor the names of its    -->
<!--       contributors may be used to endorse or promote products derived  -->
<!--       from this software without specific prior written permission.    -->
<!--                                                                        -->
<!-- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED           -->
<!-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF   -->
<!-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
<!-- ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
<!-- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
<!-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF   -->
<!-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR        -->
<!-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,  -->
<!-- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
<!-- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                          -->
<audio_platform_info>
    <acdb_ids>
         <device name="SND_DEVICE_IN_HANDSET_QMIC" acdb_id="140"/>
         <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>
    <interface_names>
        <device name="AUDIO_DEVICE_IN_BUILTIN_MIC" interface="QUATERNARY_MI2S" codec_type="external"/>
        <device name="AUDIO_DEVICE_IN_BACK_MIC" interface="QUATERNARY_MI2S" codec_type="external"/>
        <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_EC_REF_LOOPBACK" type="in" id="14"/>
        <usecase name="USECASE_AUDIO_PLAYBACK_SILENCE" type="out" id="14"/>
    </pcm_ids>
    <acdb_metainfo_key>
        <param name="aptx" value="456"/>
    </acdb_metainfo_key>
</audio_platform_info>

+1855 −0

File added.

Preview size limit exceeded, changes collapsed.

configs/msm8909/msm8909.mk

100755 → 100644
+15 −2
Original line number Diff line number Diff line
@@ -26,6 +26,10 @@ DOLBY_ENABLE := false
endif
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_FEATURE_ENABLED_SOURCE_TRACKING := true
AUDIO_FEATURE_ENABLED_FLUENCE := true
AUDIO_FEATURE_ENABLED_HFP := true
@@ -36,6 +40,9 @@ AUDIO_FEATURE_ENABLED_DYNAMIC_LOG := true
MM_AUDIO_ENABLED_FTM := true
TARGET_USES_QCOM_MM_AUDIO := true
AUDIO_FEATURE_ENABLED_SND_MONITOR := true
BOARD_SUPPORTS_QAHW := true
BOARD_SUPPORTS_QSTHW_API := true
AUDIO_FEATURE_DISABLED_SOUND_TRIGGER_LEGACY_HAL := true

##AUDIO_FEATURE_FLAGS

@@ -59,6 +66,7 @@ PRODUCT_COPY_FILES += \
    hardware/qcom/audio/configs/msm8909/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \
    hardware/qcom/audio/configs/msm8909/mixer_paths_msm8909_pm8916.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_msm8909_pm8916.xml \
    hardware/qcom/audio/configs/msm8909/mixer_paths_wcd9326_i2s.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_wcd9326_i2s.xml \
    hardware/qcom/audio/configs/msm8909/mixer_paths_wcd9326_i2s_tdm.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_wcd9326_i2s_tdm.xml \
    hardware/qcom/audio/configs/msm8909/mixer_paths_skua.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_skua.xml \
    hardware/qcom/audio/configs/msm8909/mixer_paths_skuc.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_skuc.xml \
    hardware/qcom/audio/configs/msm8909/mixer_paths_skue.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_skue.xml \
@@ -66,7 +74,9 @@ PRODUCT_COPY_FILES += \
    hardware/qcom/audio/configs/msm8909/sound_trigger_mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths.xml \
    hardware/qcom/audio/configs/msm8909/sound_trigger_mixer_paths_wcd9326.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9326.xml \
    hardware/qcom/audio/configs/msm8909/sound_trigger_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_platform_info.xml \
    hardware/qcom/audio/configs/msm8909/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml
    hardware/qcom/audio/configs/msm8909/sound_trigger_mixer_paths_wcd9335.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_wcd9335.xml \
    hardware/qcom/audio/configs/msm8909/audio_platform_info.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info.xml \
    hardware/qcom/audio/configs/msm8909/audio_platform_info_extcodec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/audio_platform_info_extcodec.xml

#XML Audio configuration files
ifeq ($(USE_XML_AUDIO_POLICY_CONF), 1)
@@ -87,7 +97,10 @@ endif
PRODUCT_PROPERTY_OVERRIDES += \
ro.vendor.audio.sdk.ssr=false

##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\
+223 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="ISO-8859-1"?>
<!---Copyright (c) 2015, 2018 The Linux Foundation. All rights reserved         -->
<!---                                                                           -->
<!--- Redistribution and use in source and binary forms, with or without        -->
<!--- modification, are permitted provided that the following conditions are    -->
<!--- met:                                                                      -->
<!---     * Redistributions of source code must retain the above copyright      -->
<!---       notice, this list of conditions and the following disclaimer.       -->
<!---     * Redistributions in binary form must reproduce the above             -->
<!---       copyright notice, this list of conditions and the following         -->
<!---       disclaimer in the documentation and/or other materials provided     -->
<!---       with the distribution.                                              -->
<!---     * Neither the name of The Linux Foundation nor the names of its       -->
<!---       contributors may be used to endorse or promote products derived     -->
<!---       from this software without specific prior written permission.       -->
<!---                                                                           -->
<!--- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED              -->
<!--- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF      -->
<!--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT    -->
<!--- ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS    -->
<!--- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR    -->
<!--- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF      -->
<!--- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR           -->
<!--- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,     -->
<!--- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE      -->
<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN    -->
<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                             -->
<mixer>
    <!-- These are the initial mixer settings -->
    <ctl name="LSM1 Mixer QUAT_MI2S_TX" value="0" />
    <ctl name="LSM2 Mixer QUAT_MI2S_TX" value="0" />
    <ctl name="LSM3 Mixer QUAT_MI2S_TX" value="0" />
    <ctl name="LSM4 Mixer QUAT_MI2S_TX" value="0" />
    <ctl name="LSM5 Mixer QUAT_MI2S_TX" value="0" />
    <ctl name="LSM6 Mixer QUAT_MI2S_TX" value="0" />
    <ctl name="LSM7 Mixer QUAT_MI2S_TX" value="0" />
    <ctl name="LSM8 Mixer QUAT_MI2S_TX" value="0" />
    <ctl name="LSM1 Port" value="None" />
    <ctl name="LSM2 Port" value="None" />
    <ctl name="LSM3 Port" value="None" />
    <ctl name="LSM4 Port" value="None" />
    <ctl name="LSM5 Port" value="None" />
    <ctl name="LSM6 Port" value="None" />
    <ctl name="LSM7 Port" value="None" />
    <ctl name="LSM8 Port" value="None" />
    <ctl name="QUAT_MI2S_TX LSM Function" value="None" />
    <ctl name="MADONOFF Switch" value="0" />
    <ctl name="MAD Input" value="DMIC1" />
    <ctl name="MAD_BROADCAST Switch" value="0" />
    <ctl name="TX13 INP MUX" value="CDC_DEC_5" />
    <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="MultiMedia2 Mixer PRI_TDM_TX_0" value="0" />
    <ctl name="MultiMedia9 Mixer AFE_LOOPBACK_TX" value="0" />

    <ctl name="ADC MUX8" value="AMIC" />
    <ctl name="ADC MUX7" value="AMIC" />
    <ctl name="ADC MUX6" value="AMIC" />
    <ctl name="PRI_TDM_TX_0 Channels" value="One" />

    <ctl name="AUDIO_REF_EC_UL1 MUX" value="None"/>
    <ctl name="EC Reference Channels" value="Zero"/>
    <ctl name="EC Reference Bit Format" value="0"/>
    <ctl name="EC Reference SampleRate" value="0"/>

    <ctl name="AIF1_CAP Mixer SLIM TX7" value="0" />
    <ctl name="AIF1_CAP Mixer SLIM TX8" value="0"/>
    <ctl name="AIF1_CAP Mixer SLIM TX6" value="0" />
    <ctl name="AIF1_CAP Mixer SLIM TX11" value="0"/>

    <ctl name="DMIC MUX0" value="ZERO" />
    <ctl name="DMIC MUX6" value="ZERO" />
    <ctl name="DMIC MUX7" value="ZERO" />
    <ctl name="DMIC MUX8" value="ZERO" />

    <ctl name="ADC MUX0" value="AMIC" />
    <ctl name="ADC MUX6" value="AMIC" />
    <ctl name="ADC MUX7" value="AMIC" />
    <ctl name="ADC MUX8" value="AMIC" />

    <ctl name="SLIM TX6 MUX" value="ZERO" />
    <ctl name="SLIM TX7 MUX" value="ZERO" />
    <ctl name="SLIM TX8 MUX" value="ZERO" />
    <ctl name="SLIM TX11 MUX" value="ZERO" />

    <path name="listen-voice-wakeup-1">
        <ctl name="QUAT_MI2S_TX LSM Function" value="SWAUDIO" />
        <ctl name="LSM1 Port" value="ADM_LSM_TX" />
        <ctl name="LSM1 Mixer QUAT_MI2S_TX" value="1" />
    </path>

    <path name="listen-voice-wakeup-2">
        <ctl name="QUAT_MI2S_TX LSM Function" value="SWAUDIO" />
        <ctl name="LSM2 Port" value="ADM_LSM_TX" />
        <ctl name="LSM2 Mixer QUAT_MI2S_TX" value="1" />
    </path>
    <path name="listen-voice-wakeup-3">
        <ctl name="QUAT_MI2S_TX LSM Function" value="SWAUDIO" />
        <ctl name="LSM3 Port" value="ADM_LSM_TX" />
        <ctl name="LSM3 Mixer QUAT_MI2S_TX" value="1" />
    </path>
    <path name="listen-voice-wakeup-4">
        <ctl name="QUAT_MI2S_TX LSM Function" value="SWAUDIO" />
        <ctl name="LSM4 Port" value="ADM_LSM_TX" />
        <ctl name="LSM4 Mixer QUAT_MI2S_TX" value="1" />
    </path>
    <path name="listen-voice-wakeup-5">
        <ctl name="QUAT_MI2S_TX LSM Function" value="SWAUDIO" />
        <ctl name="LSM5 Port" value="ADM_LSM_TX" />
        <ctl name="LSM5 Mixer QUAT_MI2S_TX" value="1" />
    </path>
    <path name="listen-voice-wakeup-6">
        <ctl name="QUAT_MI2S_TX LSM Function" value="SWAUDIO" />
        <ctl name="LSM6 Port" value="ADM_LSM_TX" />
        <ctl name="LSM6 Mixer QUAT_MI2S_TX" value="1" />
    </path>
    <path name="listen-voice-wakeup-7">
        <ctl name="QUAT_MI2S_TX LSM Function" value="SWAUDIO" />
        <ctl name="LSM7 Port" value="ADM_LSM_TX" />
        <ctl name="LSM7 Mixer QUAT_MI2S_TX" value="1" />
    </path>
    <path name="listen-voice-wakeup-8">
        <ctl name="QUAT_MI2S_TX LSM Function" value="SWAUDIO" />
        <ctl name="LSM8 Port" value="ADM_LSM_TX" />
        <ctl name="LSM8 Mixer QUAT_MI2S_TX" value="1" />
    </path>

    <path name="listen-voice-wakeup-1 preproc">
        <path name="listen-voice-wakeup-1" />
    </path>

    <path name="listen-voice-wakeup-2 preproc">
        <path name="listen-voice-wakeup-2" />
    </path>

    <path name="listen-voice-wakeup-3 preproc">
        <path name="listen-voice-wakeup-3" />
    </path>

    <path name="listen-voice-wakeup-4 preproc">
        <path name="listen-voice-wakeup-4" />
    </path>

    <path name="listen-voice-wakeup-5 preproc">
        <path name="listen-voice-wakeup-5" />
    </path>

    <path name="listen-voice-wakeup-6 preproc">
        <path name="listen-voice-wakeup-6" />
    </path>

    <path name="listen-voice-wakeup-7 preproc">
        <path name="listen-voice-wakeup-7" />
    </path>

    <path name="listen-voice-wakeup-8 preproc">
        <path name="listen-voice-wakeup-8" />
    </path>

    <path name="audio-capture">
        <ctl name="MultiMedia2 Mixer PRI_TDM_TX_0" value="1" />
    </path>

    <path name="ec-ref-audio-capture">
        <ctl name="MultiMedia9 Mixer AFE_LOOPBACK_TX" value="1" />
        <ctl name="AUDIO_REF_EC_UL1 MUX" value="I2S_RX" />
    </path>

    <path name="listen-cpe-handset-mic">
        <ctl name="MADONOFF Switch" value="1" />
        <ctl name="TX13 INP MUX" value="CPE_TX_PP" />
        <ctl name="AIF4_MAD Mixer SLIM TX13" value="1" />
        <ctl name="MAD Input" value="DMIC0" />
        <ctl name="CPE AFE MAD Enable" value="1"/>
    </path>

    <!-- path name used for low bandwidth FTRT codec interface -->
    <path name="listen-cpe-handset-mic low-speed-intf">
        <ctl name="MADONOFF Switch" value="1" />
        <ctl name="AIF4_MAD Mixer SLIM TX12" value="1" />
        <ctl name="MAD Input" value="DMIC0" />
        <ctl name="CPE AFE MAD Enable" value="1"/>
     </path>

    <path name="listen-ape-handset-mic">
       <ctl name="AIF1_CAP Mixer SLIM TX6" value="1"/>
        <ctl name="MI2S_TX Channels" value="One" />
        <ctl name="SLIM TX6 MUX" value="DEC6" />
        <ctl name="ADC MUX6" value="DMIC" />
        <ctl name="DMIC MUX6" value="DMIC0" />
    </path>

    <path name="listen-ape-handset-mic-preproc">
        <path name="listen-ape-handset-mic" />
    </path>

    <path name="listen-ape-handset-qmic">
        <ctl name="PRI_TDM_TX_0 Channels" value="Four" />
    </path>

    <path name="listen-handset-6mic">
        <ctl name="PRI_TDM_TX_0 Channels" value="Six" />
    </path>

    <path name="listen-handset-8mic">
        <ctl name="PRI_TDM_TX_0 Channels" value="Eight" />
    </path>

    <path name="ec-ref-loopback-mono">
    </path>

    <path name="ec-ref-loopback-stereo">
    </path>

    <path name="echo-reference">
        <ctl name="AUDIO_REF_EC_UL1 MUX" value="I2S_RX"/>
        <ctl name="EC Reference Channels" value="Two"/>
        <ctl name="EC Reference Bit Format" value="S16_LE"/>
        <ctl name="EC Reference SampleRate" value="48000"/>
    </path>

</mixer>
+104 −31
Original line number Diff line number Diff line
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--- Copyright (c) 2013-2014, 2016, The Linux Foundation. All rights reserved.       -->
<!--- Copyright (c) 2013-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    -->
@@ -26,37 +26,110 @@
<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN    -->
<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                             -->
<sound_trigger_platform_info>
    <device name="DEVICE_HANDSET_APE_ACDB_ID" value="130" />
    <device name="DEVICE_HANDSET_CPE_ACDB_ID" value="128" />
    <ctrl name="execution_type" value="APE" /> <!-- value: "CPE" "APE" -->
    <ctrl name="max_cpe_sessions" value="1" />
    <ctrl name="max_cpe_phrases" value="6" />
    <ctrl name="max_cpe_users" value="3" />
    <ctrl name="max_ape_sessions" value="5" />
    <ctrl name="max_ape_phrases" value="5" />
    <ctrl name="max_ape_users" value="5" />
    <ctrl name="enable_failure_detection" value="false" />
    <ctrl name="support_lec" value="false" />

    <!-- vendor_uuid for a soundmodel. More than one vendor_uuid tags can be -->
    <!-- listed in sequence, the below vendor uuid is reserved for Qualcomm  -->
    <!-- module. ISV must use their own unique vendor uuid. app_type,        -->
    <!-- module_id, param_id must match to the calibration database          -->
    <!-- If ISV vendor_uuid is present, execution_type will be forced to APE -->
    <vendor_uuid value="68ab2d40-e860-11e3-95ef-0002a5d5c51b" app_type="2" library="libsmwrapper.so">
    <param version="0x0101" /> <!-- this must be the first param -->

    <common_config>
        <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" />
        <param backend_port_name="MI2S_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>
        <param DEVICE_HANDSET_MIC_APE="130" />
        <param DEVICE_HANDSET_MIC_CPE="128" />
        <param DEVICE_HANDSET_MIC_ECPP_CPE="128" />
        <param DEVICE_HANDSET_QMIC_APE="138" />
        <param DEVICE_HANDSET_MIC_PP_APE="130" />
        <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    -->
    <!-- vendor_uuid. The below tag represents QTI SVA engine sound model    -->
    <!-- configuration. ISV must use their own unique vendor_uuid.           -->
    <sound_model_config>
        <param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b" />
        <param execution_type="WDSP" /> <!-- value: "WDSP" "ADSP" "DYNAMIC" -->
        <param app_type="2" /> <!-- app type used in ACDB -->
        <param library="libsmwrapper.so" />
        <param max_cpe_phrases="6" />
        <param max_cpe_users="3" />
        <param max_ape_phrases="10" />
        <param max_ape_users="10" />
        <param event_timestamp_mode="false" />

        <!-- Module and param ids with which the algorithm is integrated in firmware -->
        <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" />
        </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 -->
        <capture_keyword format="PCM_packet" transfer_mode="RT" kw_duration="2000" />
        <param_type name="load_sound_model" module_id="0x00012C0D" param_id="0x00012C14"/>
        <param_type name="unload_sound_model" module_id="0x00012C0D" param_id="0x00012C15"/>
        <param_type name="confidence_levels" module_id="0x00012C0D" param_id="0x00012C07"/>
        <param_type name="operation_mode" module_id="0x00012C0D" param_id="0x00012C02"/>
        <ctrl name="max_cpe_phrases" value="6" />
        <ctrl name="max_cpe_users" value="3" />
        <ctrl name="max_ape_phrases" value="10" />
        <ctrl name="max_ape_users" value="10" />
        <ctrl name="client_capture_read_delay" value="2000" /> <!-- in milli seconds -->
    </vendor_uuid>
</sound_trigger_platform_info>
        <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 -->
    <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>
        <param adm_cfg_profile="DEFAULT" />
        <param app_type="69938" />
        <param sample_rate="16000" />
        <param bit_width="16" />
    </adm_config>

    <adm_config>
        <param adm_cfg_profile="FLUENCE" />
        <param app_type="69944" />
        <param sample_rate="16000" />
        <param bit_width="16" />
    </adm_config>
    <acdb_metainfo_key>
        <param name="ffv" value="9729"/>
    </acdb_metainfo_key>
</sound_trigger_platform_info>