Merge "pal: release resoucemanager mutex lock when bt device api to set metadata."
diff --git a/configs/crow/card-defs.xml b/configs/crow/card-defs.xml
new file mode 100644
index 0000000..0cd6eb1
--- /dev/null
+++ b/configs/crow/card-defs.xml
@@ -0,0 +1,412 @@
+<!-- Copyright (c) 2019, 2021, 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.
+
+* Changes from Qualcomm Innovation Center are provided under the following license:
+*
+* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted (subject to the limitations in the
+* disclaimer below) 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 Qualcomm Innovation Center, Inc. nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+* IN NO EVENT SHALL THE COPYRIGHT HOLDER 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. -->
+
+<defs>
+<card>
+ <id>100</id>
+ <name>kalamavirtualsndcard</name>
+
+ <pcm-device>
+ <id>100</id>
+ <name>PCM100</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>1</playback>
+ <capture>0</capture>
+ <session_mode>0</session_mode>
+ </props>
+ </pcm-device>
+
+ <pcm-device>
+ <id>101</id>
+ <name>PCM101</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>0</playback>
+ <capture>1</capture>
+ <session_mode>0</session_mode>
+ </props>
+ </pcm-device>
+
+ <pcm-device>
+ <id>102</id>
+ <name>PCM102</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>1</playback>
+ <capture>0</capture>
+ <session_mode>0</session_mode>
+ </props>
+ </pcm-device>
+
+ <pcm-device>
+ <id>103</id>
+ <name>PCM103</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>1</playback>
+ <capture>0</capture>
+ <session_mode>1</session_mode>
+ </props>
+ </pcm-device>
+
+ <pcm-device>
+ <id>104</id>
+ <name>PCM104</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>0</playback>
+ <capture>1</capture>
+ <session_mode>1</session_mode>
+ </props>
+ </pcm-device>
+
+ <compress-device>
+ <id>105</id>
+ <name>COMPRESS105</name>
+ <compress_plugin>
+ <so-name>libagm_compress_plugin.so</so-name>
+ </compress_plugin>
+ <props>
+ <playback>1</playback>
+ <capture>0</capture>
+ <session_mode>0</session_mode>
+ </props>
+ </compress-device>
+
+ <pcm-device>
+ <id>106</id>
+ <name>VOICEMMODE1p</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>1</playback>
+ <capture>0</capture>
+ <session_mode>1</session_mode>
+ </props>
+ </pcm-device>
+
+ <pcm-device>
+ <id>107</id>
+ <name>VOICEMMODE2p</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>1</playback>
+ <capture>0</capture>
+ <session_mode>1</session_mode>
+ </props>
+ </pcm-device>
+ <pcm-device>
+ <id>108</id>
+ <name>VOICEMMODE1c</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>0</playback>
+ <capture>1</capture>
+ <session_mode>1</session_mode>
+ </props>
+ </pcm-device>
+
+ <pcm-device>
+ <id>109</id>
+ <name>VOICEMMODE2c</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>0</playback>
+ <capture>1</capture>
+ <session_mode>1</session_mode>
+ </props>
+ </pcm-device>
+
+ <pcm-device>
+ <id>110</id>
+ <name>PCM110</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>1</playback>
+ <capture>0</capture>
+ <session_mode>0</session_mode>
+ </props>
+ </pcm-device>
+
+ <pcm-device>
+ <id>111</id>
+ <name>PCM111</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>0</playback>
+ <capture>1</capture>
+ <session_mode>0</session_mode>
+ </props>
+ </pcm-device>
+
+ <pcm-device>
+ <id>112</id>
+ <name>PCM112</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>0</playback>
+ <capture>1</capture>
+ <session_mode>0</session_mode>
+ </props>
+ </pcm-device>
+
+ <pcm-device>
+ <id>113</id>
+ <name>PCM113</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>0</playback>
+ <capture>1</capture>
+ <session_mode>2</session_mode>
+ </props>
+ </pcm-device>
+
+ <pcm-device>
+ <id>114</id>
+ <name>PCM114</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>1</playback>
+ <capture>0</capture>
+ <session_mode>2</session_mode>
+ </props>
+ </pcm-device>
+
+ <pcm-device>
+ <id>115</id>
+ <name>PCM115</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>0</playback>
+ <capture>1</capture>
+ <session_mode>0</session_mode>
+ </props>
+ </pcm-device>
+
+ <pcm-device>
+ <id>116</id>
+ <name>PCM116</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <capture>1</capture>
+ <session_mode>3</session_mode>
+ </props>
+ </pcm-device>
+
+ <pcm-device>
+ <id>117</id>
+ <name>PCM117</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>1</playback>
+ <capture>0</capture>
+ </props>
+ </pcm-device>
+
+ <pcm-device>
+ <id>118</id>
+ <name>PCM118</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>0</playback>
+ <capture>1</capture>
+ <session_mode>1</session_mode>
+ </props>
+ </pcm-device>
+
+ <pcm-device>
+ <id>119</id>
+ <name>PCM119</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>0</playback>
+ <capture>1</capture>
+ <session_mode>1</session_mode>
+ </props>
+ </pcm-device>
+
+ <pcm-device>
+ <id>120</id>
+ <name>PCM120</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>0</playback>
+ <capture>1</capture>
+ <session_mode>1</session_mode>
+ </props>
+ </pcm-device>
+
+ <pcm-device>
+ <id>121</id>
+ <name>PCM121</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>0</playback>
+ <capture>1</capture>
+ <session_mode>1</session_mode>
+ </props>
+ </pcm-device>
+
+ <pcm-device>
+ <id>122</id>
+ <name>ExtEC122</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>0</playback>
+ <capture>1</capture>
+ <session_mode>1</session_mode>
+ </props>
+ </pcm-device>
+
+ <pcm-device>
+ <id>123</id>
+ <name>PCM123</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>1</playback>
+ <capture>0</capture>
+ <session_mode>1</session_mode>
+ </props>
+ </pcm-device>
+
+ <compress-device>
+ <id>124</id>
+ <name>COMPRESS124</name>
+ <compress_plugin>
+ <so-name>libagm_compress_plugin.so</so-name>
+ </compress_plugin>
+ <props>
+ <playback>0</playback>
+ <capture>1</capture>
+ <!-- AGM_SESSION_COMPRESS -->
+ <session_mode>4</session_mode>
+ </props>
+ </compress-device>
+
+ <pcm-device>
+ <id>125</id>
+ <name>PCM125</name>
+ <pcm_plugin>
+ <so-name>libagm_pcm_plugin.so</so-name>
+ </pcm_plugin>
+ <props>
+ <playback>1</playback>
+ <capture>0</capture>
+ <session_mode>0</session_mode>
+ </props>
+ </pcm-device>
+
+ <mixer>
+ <id>1</id>
+ <name>agm_mixer</name>
+ <mixer_plugin>
+ <so-name>libagm_mixer_plugin.so</so-name>
+ </mixer_plugin>
+ </mixer>
+
+</card>
+</defs>
diff --git a/configs/crow/mixer_paths_crow_idp.xml b/configs/crow/mixer_paths_crow_idp.xml
new file mode 100644
index 0000000..c477b7e
--- /dev/null
+++ b/configs/crow/mixer_paths_crow_idp.xml
@@ -0,0 +1,1263 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Copyright (c) 2015-2021, 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.
+
+* Changes from Qualcomm Innovation Center are provided under the following license:
+*
+* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted (subject to the limitations in the
+* disclaimer below) 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 Qualcomm Innovation Center, Inc. nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+* IN NO EVENT SHALL THE COPYRIGHT HOLDER 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="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="0" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="0" />
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_1" value="0" />
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_2" value="0" />
+
+ <!-- Codec controls -->
+ <!-- WSA controls -->
+ <ctl name="WSA RX0 MUX" value="ZERO" />
+ <ctl name="WSA RX1 MUX" value="ZERO" />
+ <ctl name="WSA_RX0 INP0" value="ZERO" />
+ <ctl name="WSA_RX1 INP0" value="ZERO" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="0" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="0" />
+ <ctl name="WSA SPKRRECV" value="0" />
+ <ctl name="WSA PBR Enable" value="0" />
+ <ctl name="Idle Detect" value="0" />
+ <ctl name="SpkrLeft COMP Switch" value="0" />
+ <ctl name="SpkrRight COMP Switch" value="0" />
+ <ctl name="SpkrLeft VISENSE Switch" value="0" />
+ <ctl name="SpkrRight VISENSE Switch" value="0" />
+ <ctl name="SpkrLeft CPS Switch" value="0" />
+ <ctl name="SpkrRight CPS Switch" value="0" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="0" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="0" />
+ <ctl name="SpkrLeft PBR Switch" value="0" />
+ <ctl name="SpkrRight PBR Switch" value="0" />
+ <ctl name="SpkrLeft WSA MODE" value="0" />
+ <ctl name="SpkrRight WSA MODE" value="0" />
+
+ <!-- RX Controls -->
+ <ctl name="RX_MACRO RX0 MUX" value="ZERO" />
+ <ctl name="RX_MACRO RX1 MUX" value="ZERO" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT0_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT0_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX INT0 DEM MUX" value="NORMAL_DSM_OUT" />
+ <ctl name="RX INT1 DEM MUX" value="NORMAL_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="0" />
+ <ctl name="RX_COMP2 Switch" value="0" />
+ <ctl name="HPHL_COMP Switch" value="0" />
+ <ctl name="HPHR_COMP Switch" value="0" />
+ <ctl name="EAR_RDAC Switch" value="0" />
+ <ctl name="HPHL_RDAC Switch" value="0" />
+ <ctl name="HPHR_RDAC Switch" value="0" />
+ <ctl name="AUX_RDAC Switch" value="0" />
+ <ctl name="RX_FIR Filter" value="OFF" />
+ <ctl name="RX_EAR Mode" value="OFF" />
+
+ <!-- TX Controls -->
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="0" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="0" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="0" />
+ <ctl name="VA_AIF1_CAP Mixer DEC3" value="0" />
+ <ctl name="VA DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC2 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC3 MUX" value="MSM_DMIC" />
+ <ctl name="VA DMIC MUX0" value="ZERO" />
+ <ctl name="VA DMIC MUX1" value="ZERO" />
+ <ctl name="VA DMIC MUX2" value="ZERO" />
+ <ctl name="VA DMIC MUX3" value="ZERO" />
+ <ctl name="VA SMIC MUX0" value="ZERO" />
+ <ctl name="VA SMIC MUX1" value="ZERO" />
+ <ctl name="VA SMIC MUX2" value="ZERO" />
+ <ctl name="VA SMIC MUX3" value="ZERO" />
+ <ctl name="VA_DEC0 MODE" value="ADC_DEFAULT" />
+ <ctl name="ADC2_BCS Disable" value="0" />
+ <ctl name="ADC1_MIXER Switch" value="0" />
+ <ctl name="ADC2_MIXER Switch" value="0" />
+ <ctl name="ADC3_MIXER Switch" value="0" />
+ <ctl name="ADC4_MIXER Switch" value="0" />
+ <ctl name="ADC2 MUX" value="INP2" />
+ <ctl name="DEC0_BCS Switch" value="0" />
+ <ctl name="ADC2_BCS Disable" value="0" />
+ <ctl name="ADC3 MUX" value="INP4" />
+ <ctl name="ADC4 MUX" value="INP5" />
+ <ctl name="VA_AMIC1_MIXER Switch" value="0" />
+ <ctl name="VA_AMIC2_MIXER Switch" value="0" />
+ <ctl name="VA_AMIC3_MIXER Switch" value="0" />
+ <ctl name="VA_AMIC4_MIXER Switch" value="0" />
+ <ctl name="VA_AMIC5_MIXER Switch" value="0" />
+ <ctl name="AMIC1_MIXER Switch" value="0" />
+ <ctl name="AMIC2_MIXER Switch" value="0" />
+ <ctl name="AMIC3_MIXER Switch" value="0" />
+ <ctl name="AMIC4_MIXER Switch" value="0" />
+ <ctl name="AMIC5_MIXER Switch" value="0" />
+
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC5" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC6" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC7" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC0" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC1" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC2" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC3" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC4" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC5" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC6" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC7" value="0" />
+ <ctl name="TX DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX0" value="ZERO" />
+ <ctl name="TX SMIC MUX0" value="ZERO" />
+ <ctl name="TX DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX1" value="ZERO" />
+ <ctl name="TX SMIC MUX1" value="ZERO" />
+ <ctl name="TX DEC2 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX2" value="ZERO" />
+ <ctl name="TX SMIC MUX2" value="ZERO" />
+ <ctl name="TX DEC3 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX3" value="ZERO" />
+ <ctl name="TX SMIC MUX3" value="ZERO" />
+ <ctl name="TX DEC4 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX4" value="ZERO" />
+ <ctl name="TX SMIC MUX4" value="ZERO" />
+ <ctl name="TX DEC5 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX5" value="ZERO" />
+ <ctl name="TX SMIC MUX5" value="ZERO" />
+ <ctl name="TX DEC6 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX6" value="ZERO" />
+ <ctl name="TX SMIC MUX6" value="ZERO" />
+ <ctl name="TX DEC7 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX7" value="ZERO" />
+ <ctl name="TX SMIC MUX7" value="ZERO" />
+ <ctl name="ADC1 ChMap" value="ZERO" />
+ <ctl name="ADC2 ChMap" value="ZERO" />
+ <ctl name="ADC3 ChMap" value="ZERO" />
+ <ctl name="ADC4 ChMap" value="ZERO" />
+ <ctl name="HDR12 MUX" value="NO_HDR12" />
+ <ctl name="HDR34 MUX" value="NO_HDR34" />
+ <ctl name="TX0 MODE" value="ADC_NORMAL" />
+ <ctl name="TX1 MODE" value="ADC_NORMAL" />
+ <ctl name="TX2 MODE" value="ADC_NORMAL" />
+ <ctl name="TX3 MODE" value="ADC_NORMAL" />
+
+ <!-- Volume controls -->
+ <ctl name="WSA_RX0 Digital Volume" value="84" />
+ <ctl name="WSA_RX1 Digital Volume" value="84" />
+ <ctl name="RX_RX0 Digital Volume" value="84" />
+ <ctl name="RX_RX1 Digital Volume" value="84" />
+ <ctl name="RX_RX2 Digital Volume" value="84" />
+ <ctl name="HPHL Volume" value="20" />
+ <ctl name="HPHR Volume" value="20" />
+
+ <ctl name="TX_DEC0 Volume" value="102" />
+ <ctl name="TX_DEC1 Volume" value="114" />
+ <ctl name="TX_DEC2 Volume" value="114" />
+ <ctl name="TX_DEC3 Volume" value="114" />
+ <ctl name="TX_DEC4 Volume" value="144" />
+ <ctl name="TX_DEC5 Volume" value="84" />
+ <ctl name="TX_DEC6 Volume" value="84" />
+ <ctl name="TX_DEC7 Volume" value="84" />
+
+ <ctl name="ADC1 Volume" value="12" />
+ <ctl name="ADC2 Volume" value="12" />
+ <ctl name="ADC3 Volume" value="12" />
+ <ctl name="ADC4 Volume" value="12" />
+
+ <ctl name="VA_DEC0 Volume" value="84" />
+ <ctl name="VA_DEC1 Volume" value="84" />
+ <ctl name="VA_DEC2 Volume" value="84" />
+ <ctl name="VA_DEC3 Volume" value="84" />
+
+ <!-- Compander controls -->
+ <ctl name="WSA_COMP1 Switch" value="0" />
+ <ctl name="WSA_COMP2 Switch" value="0" />
+
+ <!-- Headphone class-H mode -->
+ <ctl name="RX_HPH_PWR_MODE" value="ULP" />
+ <ctl name="RX HPH Mode" value="CLS_H_ULP" />
+
+ <!-- IIR/voice anc -->
+ <ctl name="IIR0 Band1" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Band2" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Band3" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Band4" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Band5" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Enable Band1" value="0" />
+ <ctl name="IIR0 Enable Band2" value="0" />
+ <ctl name="IIR0 Enable Band3" value="0" />
+ <ctl name="IIR0 Enable Band4" value="0" />
+ <ctl name="IIR0 Enable Band5" value="0" />
+ <ctl name="IIR0 INP0 Volume" value="54" />
+ <ctl name="IIR0 INP0 MUX" value="ZERO" />
+ <ctl name="IIR0 INP1 MUX" value="ZERO" />
+ <ctl name="IIR0 INP2 MUX" value="ZERO" />
+ <ctl name="IIR0 INP3 MUX" value="ZERO" />
+
+ <!-- vbat related data -->
+ <ctl name="GSM mode Enable" value="OFF" />
+ <ctl name="WSA_Softclip0 Enable" value="0" />
+ <ctl name="WSA_Softclip1 Enable" value="0" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="0" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="0" />
+
+ <!-- Codec controls end -->
+
+ <!-- defaults for mmap record -->
+
+ <!-- HIFI Filter coefficients for headphones path -->
+ <path name="hifi-filter-coefficients">
+ <ctl name="RX0 FIR Coeff Num" value="8" />
+ <ctl name="RX0 FIR Coeff Group0" value="08 00 00 00 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
+ <ctl name="RX0 FIR Coeff Group1" value="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
+ <ctl name="RX1 FIR Coeff Num" value="8" />
+ <ctl name="RX1 FIR Coeff Group0" value="08 00 00 00 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
+ <ctl name="RX1 FIR Coeff Group1" value="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
+ </path>
+
+ <!-- These are audio route (FE to BE) specific mixer settings -->
+ <path name="gsm-mode">
+ <ctl name="GSM mode Enable" value="ON" />
+ </path>
+
+
+ <!-- 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="SWR_MIC5" />
+ <ctl name="DEC0_BCS Switch" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="ADC2 MUX" value="INP2" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="MBHC ChMap" value="SWRM_TX1_CH3" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="BCS Channel" value="CH2" />
+ <ctl name="HDR12 MUX" value="NO_HDR12" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="AMIC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="dmic1">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC0" />
+ </path>
+
+ <path name="dmic2">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC1" />
+ </path>
+
+ <path name="dmic3">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC2" />
+ </path>
+
+ <path name="dmic4">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC3" />
+ </path>
+
+ <path name="speaker">
+ <ctl name="WSA RX0 MUX" value="AIF1_PB" />
+ <ctl name="WSA RX1 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX0 INP0" value="RX0" />
+ <ctl name="WSA_RX1 INP0" value="RX1" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="WSA_COMP2 Switch" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrRight COMP Switch" value="1" />
+ <ctl name="SpkrRight VISENSE Switch" value="1" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ </path>
+
+ <path name="haptics-dev">
+ <ctl name="SWR DAC_Port Switch" value="1" />
+ </path>
+
+ <path name="speaker-mono">
+ <ctl name="WSA RX0 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX0 INP0" value="RX0" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ </path>
+
+ <path name="speaker-mono-2">
+ <ctl name="WSA RX1 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX1 INP0" value="RX1" />
+ <ctl name="WSA_COMP2 Switch" value="1" />
+ <ctl name="SpkrRight COMP Switch" value="1" />
+ <ctl name="SpkrRight VISENSE Switch" value="1" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ </path>
+
+ <path name="speaker-mono-vbat">
+ <path name="speaker-mono" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="speaker-mono-2-vbat">
+ <path name="speaker-mono-2" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="speaker-vbat">
+ <path name="speaker" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="speaker-hdk">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="speaker-fluid">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="speaker-liquid">
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-safe">
+ <path name="speaker-mono"/>
+ </path>
+
+ <path name="speaker-hdk-vbat">
+ <path name="speaker-mono-vbat" />
+ </path>
+
+ <path name="speaker-fluid-vbat">
+ <path name="speaker-mono-vbat" />
+ </path>
+
+ <path name="speaker-liquid-vbat">
+ <path name="speaker-vbat" />
+ </path>
+
+ <path name="speaker-safe-vbat">
+ <path name="speaker-mono-vbat"/>
+ </path>
+
+ <path name="sidetone-iir">
+ <ctl name="IIR0 Enable Band1" value="1" />
+ <ctl name="IIR0 Enable Band2" value="1" />
+ <ctl name="IIR0 Enable Band3" value="1" />
+ <ctl name="IIR0 Enable Band4" value="1" />
+ <ctl name="IIR0 Enable Band5" value="1" />
+ </path>
+
+ <path name="sidetone-headphones">
+ <path name="sidetone-iir" />
+ <ctl name="IIR0 INP0 Volume" value="54" />
+ <ctl name="IIR0 INP0 MUX" value="DEC0" />
+ <ctl name="RX INT0 MIX2 INP" value="SRC0" />
+ <ctl name="RX INT1 MIX2 INP" value="SRC0" />
+ </path>
+
+ <path name="sidetone-handset">
+ <path name="sidetone-iir" />
+ <ctl name="IIR0 INP0 Volume" value="0" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ <ctl name="RX INT2 MIX2 INP" value="SRC0" />
+ <ctl name="WSA_RX0 INT0 SIDETONE MIX" value="SRC0" />
+ </path>
+
+ <path name="sidetone-heaphone-handset-mic">
+ <path name="sidetone-iir" />
+ <ctl name="IIR0 INP0 Volume" value="0" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ <ctl name="RX INT0 MIX2 INP" value="SRC0" />
+ <ctl name="RX INT1 MIX2 INP" value="SRC0" />
+ </path>
+
+ <path name="afe-sidetone">
+ </path>
+
+ <path name="play-fm">
+ </path>
+
+ <path name="speaker-mic">
+ <path name="dmic1" />
+ </path>
+
+ <path name="speaker-mic-liquid">
+ <path name="dmic1" />
+ </path>
+
+ <path name="speaker-mic-sbc">
+ </path>
+
+ <path name="speaker-protected">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ <path name="speaker" />
+ </path>
+
+ <path name="voice-speaker-protected">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-2-protected">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ <path name="speaker-mono-2" />
+ </path>
+
+ <path name="voice-speaker-stereo-protected">
+ <path name="speaker-protected" />
+ </path>
+
+ <path name="speaker-protected-vbat">
+ <path name="speaker-protected" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="voice-speaker-protected-vbat">
+ <path name="voice-speaker-protected" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="voice-speaker-2-protected-vbat">
+ <path name="voice-speaker-2-protected" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="voice-speaker-stereo-protected-vbat">
+ <path name="speaker-protected-vbat" />
+ </path>
+
+ <path name="vi-feedback">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ </path>
+
+ <path name="vi-feedback-mono-1">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ </path>
+
+ <path name="vi-feedback-mono-2">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ </path>
+
+ <path name="cps-feedback">
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_1" value="1" />
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_2" value="1" />
+ </path>
+
+ <path name="cps-feedback-mono-1">
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_1" value="1" />
+ </path>
+
+ <path name="cps-feedback-mono-2">
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_2" value="1" />
+ </path>
+
+ <path name="handset">
+ <ctl name="WSA RX0 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX0 INP0" value="RX0" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft CPS Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="WSA_RX0 Digital Volume" value="70" />
+ </path>
+
+ <path name="handset-vbat">
+ <path name="handset" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="handset-mic">
+ <path name="dmic2" />
+ </path>
+
+ <path name="handset-mic-unprocessed">
+ <path name="dmic2" />
+ <ctl name="TX_DEC2 Volume" value="102" />
+ </path>
+
+ <path name="ultrasound-handset">
+ <ctl name="WSA RX_MIX0 MUX" value="AIF_MIX1_PB" />
+ <ctl name="WSA_RX0 MIX INP" value="RX_MIX0" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="WSA PBR Enable" value="1" />
+ <ctl name="WSA_RX0 Digital Volume" value="50" />
+ </path>
+
+ <path name="ultrasound-handset-vbat">
+ <path name="ultrasound-handset" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="ultrasound-mic">
+ <ctl name="TX_AIF2_CAP Mixer DEC4" value="1" />
+ <ctl name="TX DMIC MUX4" value="DMIC2" />
+ </path>
+
+ <path name="headphones">
+ <ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
+ <ctl name="RX_MACRO RX1 MUX" value="AIF1_PB" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="RX1" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="1" />
+ <ctl name="RX_COMP2 Switch" value="1" />
+ <ctl name="HPHL_COMP Switch" value="1" />
+ <ctl name="HPHR_COMP Switch" value="1" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ <ctl name="HPHR_RDAC Switch" value="1" />
+ </path>
+
+ <path name="headphones-and-haptics">
+ <ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
+ <ctl name="RX_MACRO RX1 MUX" value="AIF1_PB" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="RX1" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="1" />
+ <ctl name="RX_COMP2 Switch" value="1" />
+ <ctl name="HPHL_COMP Switch" value="1" />
+ <ctl name="HPHR_COMP Switch" value="1" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ <ctl name="HPHR_RDAC Switch" value="1" />
+ <ctl name="SWR DAC_Port Switch" value="1" />
+ </path>
+
+ <path name="headphones-44.1">
+ <path name="headphones" />
+ </path>
+
+ <path name="headphones-hifi-filter">
+ <ctl name="RX_FIR Filter" value="ON" />
+ <path name="headphones" />
+ </path>
+
+ <path name="hph-highquality-mode">
+ </path>
+
+ <path name="hph-lowpower-mode">
+ </path>
+
+ <path name="true-native-mode">
+ </path>
+
+ <path name="line">
+ <path name="headphones" />
+ </path>
+
+ <path name="headset-mic">
+ <ctl name="TX_DEC0 Volume" value="84" />
+ <path name="amic2" />
+ </path>
+
+ <path name="headset-mic-liquid">
+ <path name="amic2" />
+ </path>
+ <path name="voice-handset">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-tmus">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-hac">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-hdk">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-tmus-hdk">
+ <path name="handset" />
+ </path>
+ <path name="voice-speaker">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-stereo">
+ <path name="speaker" />
+ </path>
+
+ <path name="voice-speaker-2">
+ <path name="speaker-mono-2" />
+ </path>
+
+ <path name="voice-speaker-hdk">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-fluid">
+ <path name="speaker-fluid" />
+ </path>
+
+ <path name="voice-speaker-vbat">
+ <path name="speaker-mono-vbat" />
+ </path>
+
+ <path name="voice-speaker-stereo-vbat">
+ <path name="speaker-vbat" />
+ </path>
+
+ <path name="voice-speaker-2-vbat">
+ <path name="speaker-mono-2-vbat" />
+ </path>
+
+ <path name="voice-speaker-hdk-vbat">
+ <path name="speaker-mono-vbat" />
+ </path>
+
+ <path name="voice-speaker-fluid-vbat">
+ <path name="speaker-fluid-vbat" />
+ </path>
+
+ <path name="voice-speaker-mic">
+ <path name="speaker-mic" />
+ </path>
+
+ <path name="voice-headphones">
+ <path name="headphones" />
+ </path>
+
+ <path name="voice-headset">
+ <path name="headphones" />
+ </path>
+
+ <path name="voice-line">
+ <path name="voice-headphones" />
+ </path>
+
+ <path name="voice-headset-mic">
+ <path name="headset-mic" />
+ </path>
+
+ <path name="speaker-and-headphones">
+ <path name="headphones" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-and-headphones-hifi-filter">
+ <path name="headphones-hifi-filter" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-safe-and-headphones">
+ <path name="headphones" />
+ <path name="speaker-safe" />
+ </path>
+
+ <path name="speaker-and-line">
+ <path name="speaker-and-headphones" />
+ </path>
+
+ <path name="speaker-and-headphones-liquid">
+ <path name="headphones" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-and-line-liquid">
+ <path name="speaker-and-headphones-liquid" />
+ </path>
+
+ <path name="usb-headphones">
+ </path>
+
+ <path name="usb-headset">
+ </path>
+
+ <path name="afe-proxy">
+ </path>
+
+ <path name="echo-ref-record">
+ </path>
+
+ <path name="display-port">
+ </path>
+
+ <path name="display-port1">
+ </path>
+
+ <path name="speaker-and-usb-headphones">
+ <path name="speaker" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="speaker-safe-and-usb-headphones">
+ <path name="speaker-safe" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="speaker-and-display-port">
+ <path name="speaker" />
+ <path name="display-port" />
+ </path>
+
+ <path name="speaker-and-display-port1">
+ <path name="speaker" />
+ <path name="display-port1" />
+ </path>
+
+ <path name="voice-rec-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="bt-sco">
+ </path>
+
+ <path name="bt-sco-mic">
+ </path>
+
+ <path name="bt-sco-wb">
+ </path>
+
+ <path name="bt-sco-mic-wb">
+ </path>
+
+ <path name="bt-sco-swb">
+ </path>
+
+ <path name="bt-sco-mic-swb">
+ </path>
+
+ <path name="bt-a2dp">
+ </path>
+
+ <path name="bt-a2dp-mic">
+ </path>
+
+ <path name="bt-ble">
+ </path>
+
+ <path name="bt-ble-mic">
+ </path>
+
+ <path name="usb-headset-mic">
+ </path>
+
+ <path name="capture-fm">
+ </path>
+
+ <!-- The below mixer-control setup for ext_ec_ref_tx is for CODEC_DMA internal testing purpose only, needs to be empty if TDM/MI2S -->
+ <path name="ext_ec_ref_tx">
+ <ctl name="WSA RX_MIX EC0_MUX" value="RX_MIX_TX0" />
+ <ctl name="WSA RX_MIX EC1_MUX" value="RX_MIX_TX1" />
+ </path>
+
+ <path name="va-mic-mono">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="VA DMIC MUX0" value="DMIC0" />
+ </path>
+
+ <path name="va-mic-dmic">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="VA DMIC MUX0" value="DMIC0" />
+ <ctl name="VA DMIC MUX1" value="DMIC1" />
+ </path>
+
+ <path name="va-mic-tmic">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC2 MUX" value="MSM_DMIC" />
+ <ctl name="VA DMIC MUX0" value="DMIC0" />
+ <ctl name="VA DMIC MUX1" value="DMIC1" />
+ <ctl name="VA DMIC MUX2" value="DMIC3" />
+ </path>
+
+ <path name="va-mic-qmic">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="VA DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC2 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC3 MUX" value="MSM_DMIC" />
+ <ctl name="VA DMIC MUX0" value="DMIC0" />
+ <ctl name="VA DMIC MUX1" value="DMIC1" />
+ <ctl name="VA DMIC MUX2" value="DMIC3" />
+ <ctl name="VA DMIC MUX3" value="DMIC2" />
+ </path>
+
+ <path name="va-mic">
+ <path name="va-mic-mono" />
+ </path>
+
+ <path name="va-mic-mono-lpi">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="VA DMIC MUX0" value="DMIC1" />
+ </path>
+
+ <path name="va-mic-dmic-lpi">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="VA DMIC MUX0" value="DMIC1" />
+ <ctl name="VA DMIC MUX1" value="DMIC0" />
+ </path>
+
+ <path name="va-mic-tmic-lpi">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC2 MUX" value="MSM_DMIC" />
+ <ctl name="VA DMIC MUX0" value="DMIC1" />
+ <ctl name="VA DMIC MUX1" value="DMIC0" />
+ <ctl name="VA DMIC MUX2" value="DMIC2" />
+ </path>
+
+ <path name="va-mic-qmic-lpi">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="VA DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC2 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC3 MUX" value="MSM_DMIC" />
+ <ctl name="VA DMIC MUX0" value="DMIC1" />
+ <ctl name="VA DMIC MUX1" value="DMIC0" />
+ <ctl name="VA DMIC MUX2" value="DMIC2" />
+ <ctl name="VA DMIC MUX3" value="DMIC3" />
+ </path>
+
+ <path name="va-mic-lpi">
+ <path name="va-mic-mono-lpi" />
+ </path>
+
+ <path name="headset-va-mic-lpi">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC5" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="ADC2 MUX" value="INP2" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="HDR12 MUX" value="NO_HDR12" />
+ <ctl name="ADC2_BCS Disable" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="headset-va-mic">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC5" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="ADC2 MUX" value="INP2" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="HDR12 MUX" value="NO_HDR12" />
+ <ctl name="ADC2_BCS Disable" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="lpi-pcm-logging">
+ <ctl name="LPI PCM Logging Enable" value="1" />
+ </path>
+
+ <!-- Dual MIC devices -->
+ <path name="handset-dmic-endfire">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC3" />
+ </path>
+
+ <path name="speaker-dmic-endfire">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC1" />
+ </path>
+
+ <path name="dmic-endfire">
+ <path name="handset-dmic-endfire" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ </path>
+
+ <path name="dmic-endfire-liquid">
+ <path name="handset-dmic-endfire" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ </path>
+
+ <path name="handset-stereo-dmic-ef">
+ <path name="handset-dmic-endfire" />
+ </path>
+
+ <path name="speaker-stereo-dmic-ef">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef-tmus">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-speaker-dmic-ef">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-rec-dmic-ef">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-fluence">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="hearing-aid-mic">
+ <path name="voice-speaker-mic"/>
+ </path>
+
+ <path name="handset-stereo-dmic-ef-liquid">
+ <path name="handset-dmic-endfire" />
+ </path>
+
+ <path name="speaker-stereo-dmic-ef-liquid">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef-liquid-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-speaker-dmic-ef-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-fluence-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="speaker-dmic-broadside">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC1" />
+ </path>
+
+ <path name="dmic-broadside">
+ <path name="speaker-dmic-broadside" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ </path>
+
+ <path name="voice-speaker-dmic-broadside">
+ <path name="dmic-broadside" />
+ </path>
+
+ <!-- Tri MIC devices -->
+
+ <path name="three-mic">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DMIC MUX3" value="DMIC3" />
+ </path>
+
+ <path name="speaker-tmic">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DMIC MUX3" value="DMIC3" />
+ </path>
+
+ <path name="voice-speaker-tmic">
+ <path name="speaker-tmic" />
+ </path>
+
+ <!-- Quad MIC devices -->
+
+ <path name="speaker-qmic">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DMIC MUX3" value="DMIC3" />
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="1" />
+ <ctl name="TX DMIC MUX4" value="DMIC2" />
+ </path>
+
+ <path name="speaker-qmic-liquid">
+ </path>
+
+ <path name="voice-speaker-qmic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <path name="quad-mic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <path name="voice-speaker-qmic-liquid">
+ <path name="speaker-qmic-liquid" />
+ </path>
+
+ <path name="quad-mic-liquid">
+ <path name="speaker-qmic-liquid" />
+ </path>
+
+ <path name="handset-dual-dmic-quad-dec">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DMIC MUX3" value="DMIC1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="1" />
+ <ctl name="TX DMIC MUX4" value="DMIC1" />
+ </path>
+
+ <path name="handset-dual-dmic-quad-dec-reverse">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DMIC MUX3" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="1" />
+ <ctl name="TX DMIC MUX4" value="DMIC0" />
+ </path>
+
+ <path name="unprocessed-hdr-mic-landscape">
+ <path name="handset-dual-dmic-quad-dec" />
+ <ctl name="TX_DEC1 Volume" value="108" />
+ <ctl name="TX_DEC2 Volume" value="84" />
+ <ctl name="TX_DEC3 Volume" value="108" />
+ <ctl name="TX_DEC4 Volume" value="84" />
+ </path>
+
+ <path name="unprocessed-hdr-mic-inverted-landscape">
+ <path name="handset-dual-dmic-quad-dec-reverse" />
+ <ctl name="TX_DEC1 Volume" value="108" />
+ <ctl name="TX_DEC2 Volume" value="84" />
+ <ctl name="TX_DEC3 Volume" value="108" />
+ <ctl name="TX_DEC4 Volume" value="84" />
+ </path>
+
+ <path name="handset-single-dmic-quad-dec">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DMIC MUX3" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="1" />
+ <ctl name="TX DMIC MUX4" value="DMIC0" />
+ </path>
+
+ <path name="unprocessed-hdr-mic-portrait">
+ <path name="handset-single-dmic-quad-dec" />
+ <ctl name="TX_DEC1 Volume" value="108" />
+ <ctl name="TX_DEC2 Volume" value="84" />
+ <ctl name="TX_DEC3 Volume" value="108" />
+ <ctl name="TX_DEC4 Volume" value="84" />
+ </path>
+
+ <path name="unprocessed-hdr-mic-inverted-portrait">
+ <path name="handset-single-dmic-quad-dec" />
+ <ctl name="TX_DEC1 Volume" value="108" />
+ <ctl name="TX_DEC2 Volume" value="84" />
+ <ctl name="TX_DEC3 Volume" value="108" />
+ <ctl name="TX_DEC4 Volume" value="84" />
+ </path>
+
+ <path name="camcorder-main-mic">
+ <path name="speaker-mic" />
+ </path>
+
+ <path name="camcorder-dual-mic">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="camcorder-quad-mic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <!-- TTY devices -->
+
+ <path name="tty-headphones">
+ <ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="1" />
+ <ctl name="HPHL_COMP Switch" value="1" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ </path>
+
+ <path name="voice-tty-full-headphones">
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-full-headset">
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-vco-headphones">
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-vco-headset">
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-hco-handset">
+ <path name="handset" />
+ </path>
+
+
+ <path name="voice-tty-hco-handset-hdk">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-tty-full-headset-mic">
+ <path name="amic2" />
+ <ctl name="ADC2 Volume" value="0" />
+ <ctl name="TX_DEC0 Volume" value="84" />
+ </path>
+
+ <path name="voice-tty-hco-headset-mic">
+ <ctl name="TX DEC6 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX6" value="SWR_MIC5" />
+ <ctl name="TX_AIF1_CAP Mixer DEC6" value="1" />
+ <ctl name="ADC2 MUX" value="INP2" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="MBHC ChMap" value="SWRM_TX3_CH3" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="BCS Channel" value="CH10" />
+ <ctl name="HDR12 MUX" value="NO_HDR12" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="AMIC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="voice-tty-vco-handset-mic">
+ <path name="dmic4" />
+ </path>
+
+ <path name="unprocessed-handset-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="unprocessed-mic">
+ <path name="unprocessed-handset-mic" />
+ </path>
+
+ <path name="unprocessed-stereo-mic">
+ <path name="voice-rec-dmic-ef" />
+ </path>
+
+ <path name="unprocessed-three-mic">
+ <path name="three-mic" />
+ </path>
+
+ <path name="unprocessed-quad-mic">
+ <path name="quad-mic" />
+ </path>
+
+ <path name="unprocessed-headset-mic">
+ <path name="headset-mic" />
+ </path>
+
+</mixer>
diff --git a/configs/crow/mixer_paths_crow_idp_wcd9395_aatc.xml b/configs/crow/mixer_paths_crow_idp_wcd9395_aatc.xml
new file mode 100644
index 0000000..056fedb
--- /dev/null
+++ b/configs/crow/mixer_paths_crow_idp_wcd9395_aatc.xml
@@ -0,0 +1,1610 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Copyright (c) 2015-2021, 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.
+
+* Changes from Qualcomm Innovation Center are provided under the following license:
+*
+* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted (subject to the limitations in the
+* disclaimer below) 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 Qualcomm Innovation Center, Inc. nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+* IN NO EVENT SHALL THE COPYRIGHT HOLDER 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="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="0" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="0" />
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_1" value="0" />
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_2" value="0" />
+
+ <!-- Codec controls -->
+ <!-- WSA controls -->
+ <ctl name="WSA RX0 MUX" value="ZERO" />
+ <ctl name="WSA RX1 MUX" value="ZERO" />
+ <ctl name="WSA_RX0 INP0" value="ZERO" />
+ <ctl name="WSA_RX1 INP0" value="ZERO" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="0" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="0" />
+ <ctl name="WSA SPKRRECV" value="0" />
+ <ctl name="WSA PBR Enable" value="0" />
+ <ctl name="Idle Detect" value="0" />
+ <ctl name="SpkrLeft COMP Switch" value="0" />
+ <ctl name="SpkrRight COMP Switch" value="0" />
+ <ctl name="SpkrLeft VISENSE Switch" value="0" />
+ <ctl name="SpkrRight VISENSE Switch" value="0" />
+ <ctl name="SpkrLeft CPS Switch" value="0" />
+ <ctl name="SpkrRight CPS Switch" value="0" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="0" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="0" />
+ <ctl name="SpkrLeft PBR Switch" value="0" />
+ <ctl name="SpkrRight PBR Switch" value="0" />
+ <ctl name="SpkrLeft WSA MODE" value="0" />
+ <ctl name="SpkrRight WSA MODE" value="0" />
+
+ <!-- RX Controls -->
+ <ctl name="RX_MACRO RX0 MUX" value="ZERO" />
+ <ctl name="RX_MACRO RX1 MUX" value="ZERO" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT0_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT0_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX INT0 DEM MUX" value="NORMAL_DSM_OUT" />
+ <ctl name="RX INT1 DEM MUX" value="NORMAL_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="0" />
+ <ctl name="RX_COMP2 Switch" value="0" />
+ <ctl name="HPHL_COMP Switch" value="0" />
+ <ctl name="HPHR_COMP Switch" value="0" />
+ <ctl name="EAR_RDAC Switch" value="0" />
+ <ctl name="HPHL_RDAC Switch" value="0" />
+ <ctl name="HPHR_RDAC Switch" value="0" />
+ <ctl name="AUX_RDAC Switch" value="0" />
+ <ctl name="RX_FIR Filter" value="OFF" />
+ <ctl name="RX_EAR Mode" value="OFF" />
+
+ <!-- TX Controls -->
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="0" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="0" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="0" />
+ <ctl name="VA_AIF1_CAP Mixer DEC3" value="0" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC2 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC3 MUX" value="SWR_MIC" />
+ <ctl name="VA DMIC MUX0" value="ZERO" />
+ <ctl name="VA DMIC MUX1" value="ZERO" />
+ <ctl name="VA DMIC MUX2" value="ZERO" />
+ <ctl name="VA DMIC MUX3" value="ZERO" />
+ <ctl name="VA SMIC MUX0" value="ZERO" />
+ <ctl name="VA SMIC MUX1" value="ZERO" />
+ <ctl name="VA SMIC MUX2" value="ZERO" />
+ <ctl name="VA SMIC MUX3" value="ZERO" />
+ <ctl name="VA_DEC0 MODE" value="ADC_DEFAULT" />
+ <ctl name="ADC2_BCS Disable" value="0" />
+ <ctl name="ADC1_MIXER Switch" value="0" />
+ <ctl name="ADC2_MIXER Switch" value="0" />
+ <ctl name="ADC3_MIXER Switch" value="0" />
+ <ctl name="ADC4_MIXER Switch" value="0" />
+ <ctl name="DEC0_BCS Switch" value="0" />
+ <ctl name="ADC2_BCS Disable" value="0" />
+ <ctl name="ADC1 MUX" value="CH1_AMIC_DISABLE" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC_DISABLE" />
+ <ctl name="ADC3 MUX" value="CH3_AMIC_DISABLE" />
+ <ctl name="ADC4 MUX" value="CH4_AMIC_DISABLE" />
+ <ctl name="ADC1 ChMap" value="ZERO" />
+ <ctl name="ADC2 ChMap" value="ZERO" />
+ <ctl name="ADC3 ChMap" value="ZERO" />
+ <ctl name="ADC4 ChMap" value="ZERO" />
+ <ctl name="VA_AMIC1_MIXER Switch" value="0" />
+ <ctl name="VA_AMIC2_MIXER Switch" value="0" />
+ <ctl name="VA_AMIC3_MIXER Switch" value="0" />
+ <ctl name="VA_AMIC4_MIXER Switch" value="0" />
+ <ctl name="VA_AMIC5_MIXER Switch" value="0" />
+ <ctl name="AMIC1_MIXER Switch" value="0" />
+ <ctl name="AMIC2_MIXER Switch" value="0" />
+ <ctl name="AMIC3_MIXER Switch" value="0" />
+ <ctl name="AMIC4_MIXER Switch" value="0" />
+ <ctl name="AMIC5_MIXER Switch" value="0" />
+
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC5" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC6" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC7" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC0" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC1" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC2" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC3" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC4" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC5" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC6" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC7" value="0" />
+ <ctl name="TX DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX0" value="ZERO" />
+ <ctl name="TX SMIC MUX0" value="ZERO" />
+ <ctl name="TX DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX1" value="ZERO" />
+ <ctl name="TX SMIC MUX1" value="ZERO" />
+ <ctl name="TX DEC2 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX2" value="ZERO" />
+ <ctl name="TX SMIC MUX2" value="ZERO" />
+ <ctl name="TX DEC3 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX3" value="ZERO" />
+ <ctl name="TX SMIC MUX3" value="ZERO" />
+ <ctl name="TX DEC4 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX4" value="ZERO" />
+ <ctl name="TX SMIC MUX4" value="ZERO" />
+ <ctl name="TX DEC5 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX5" value="ZERO" />
+ <ctl name="TX SMIC MUX5" value="ZERO" />
+ <ctl name="TX DEC6 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX6" value="ZERO" />
+ <ctl name="TX SMIC MUX6" value="ZERO" />
+ <ctl name="TX DEC7 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX7" value="ZERO" />
+ <ctl name="TX SMIC MUX7" value="ZERO" />
+ <ctl name="TX0 MODE" value="ADC_INVALID" />
+ <ctl name="TX1 MODE" value="ADC_INVALID" />
+ <ctl name="TX2 MODE" value="ADC_INVALID" />
+ <ctl name="TX3 MODE" value="ADC_INVALID" />
+
+ <!-- Volume controls -->
+ <ctl name="WSA_RX0 Digital Volume" value="84" />
+ <ctl name="WSA_RX1 Digital Volume" value="84" />
+ <ctl name="RX_RX0 Digital Volume" value="84" />
+ <ctl name="RX_RX1 Digital Volume" value="84" />
+ <ctl name="RX_RX2 Digital Volume" value="84" />
+ <ctl name="HPHL Volume" value="20" />
+ <ctl name="HPHR Volume" value="20" />
+
+ <ctl name="TX_DEC0 Volume" value="84" />
+ <ctl name="TX_DEC1 Volume" value="84" />
+ <ctl name="TX_DEC2 Volume" value="84" />
+ <ctl name="TX_DEC3 Volume" value="84" />
+ <ctl name="TX_DEC4 Volume" value="84" />
+ <ctl name="TX_DEC5 Volume" value="84" />
+ <ctl name="TX_DEC6 Volume" value="84" />
+ <ctl name="TX_DEC7 Volume" value="84" />
+
+ <ctl name="ADC1 Volume" value="12" />
+ <ctl name="ADC2 Volume" value="12" />
+ <ctl name="ADC3 Volume" value="12" />
+ <ctl name="ADC4 Volume" value="12" />
+
+ <ctl name="VA_DEC0 Volume" value="84" />
+ <ctl name="VA_DEC1 Volume" value="84" />
+ <ctl name="VA_DEC2 Volume" value="84" />
+ <ctl name="VA_DEC3 Volume" value="84" />
+
+ <!-- Compander controls -->
+ <ctl name="WSA_COMP1 Switch" value="0" />
+ <ctl name="WSA_COMP2 Switch" value="0" />
+
+ <!-- Headphone class-H mode -->
+ <ctl name="RX_HPH_PWR_MODE" value="ULP" />
+ <ctl name="RX HPH Mode" value="CLS_H_ULP" />
+
+ <!-- IIR/voice anc -->
+ <ctl name="IIR0 Band1" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Band2" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Band3" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Band4" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Band5" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Enable Band1" value="0" />
+ <ctl name="IIR0 Enable Band2" value="0" />
+ <ctl name="IIR0 Enable Band3" value="0" />
+ <ctl name="IIR0 Enable Band4" value="0" />
+ <ctl name="IIR0 Enable Band5" value="0" />
+ <ctl name="IIR0 INP0 Volume" value="40" />
+ <ctl name="IIR0 INP0 MUX" value="ZERO" />
+ <ctl name="IIR0 INP1 MUX" value="ZERO" />
+ <ctl name="IIR0 INP2 MUX" value="ZERO" />
+ <ctl name="IIR0 INP3 MUX" value="ZERO" />
+
+ <!-- vbat related data -->
+ <ctl name="GSM mode Enable" value="OFF" />
+ <ctl name="WSA_Softclip0 Enable" value="0" />
+ <ctl name="WSA_Softclip1 Enable" value="0" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="0" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="0" />
+
+ <!-- Codec controls end -->
+
+ <!-- defaults for mmap record -->
+
+ <!-- HIFI Filter coefficients for headphones path -->
+ <path name="hifi-filter-coefficients">
+ <ctl name="RX0 FIR Coeff Num" value="8" />
+ <ctl name="RX0 FIR Coeff Group0" value="08 00 00 00 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
+ <ctl name="RX0 FIR Coeff Group1" value="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
+ <ctl name="RX1 FIR Coeff Num" value="8" />
+ <ctl name="RX1 FIR Coeff Group0" value="08 00 00 00 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
+ <ctl name="RX1 FIR Coeff Group1" value="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
+ </path>
+
+ <!-- These are audio route (FE to BE) specific mixer settings -->
+ <path name="gsm-mode">
+ <ctl name="GSM mode Enable" value="ON" />
+ </path>
+
+
+ <!-- These are actual sound device specific mixer settings -->
+ <path name="amic1">
+ <ctl name="TX DEC2 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX2" value="SWR_MIC4" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC1 MUX" value="CH1_AMIC1" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="AMIC1_MIXER Switch" value="1" />
+ </path>
+
+ <path name="amic2">
+ <ctl name="TX DEC0 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX0" value="SWR_MIC5" />
+ <ctl name="DEC0_BCS Switch" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC2" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="MBHC ChMap" value="SWRM_TX1_CH3" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="BCS Channel" value="CH2" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="AMIC2_MIXER Switch" value="1" />
+ </path>
+
+
+ <path name="amic3">
+ <ctl name="TX DEC2 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX2" value="SWR_MIC5" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC3" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="ADC2_BCS Disable" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="AMIC3_MIXER Switch" value="1" />
+ </path>
+
+ <path name="amic4">
+ <ctl name="TX DEC5 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX5" value="SWR_MIC8" />
+ <ctl name="TX_AIF1_CAP Mixer DEC5" value="1" />
+ <ctl name="ADC3 MUX" value="CH3_AMIC4" />
+ <ctl name="TX2 MODE" value="ADC_LP" />
+ <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="ADC3_MIXER Switch" value="1" />
+ <ctl name="AMIC4_MIXER Switch" value="1" />
+ </path>
+
+ <path name="amic5">
+ <ctl name="TX DEC3 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX3" value="SWR_MIC9" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC4 MUX" value="CH4_AMIC5" />
+ <ctl name="TX3 MODE" value="ADC_LP" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="AMIC5_MIXER Switch" value="1" />
+ </path>
+
+ <path name="amic6">
+ <ctl name="TX DEC4 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX4" value="SWR_MIC4" />
+ <ctl name="TX_AIF2_CAP Mixer DEC4" value="1" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="AMIC1_MIXER Switch" value="1" />
+ </path>
+
+ <path name="dmic1">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC0" />
+ </path>
+
+ <path name="dmic2">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC1" />
+ </path>
+
+ <path name="dmic3">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC2" />
+ </path>
+
+ <path name="dmic4">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC3" />
+ </path>
+
+ <path name="dmic5">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC4" />
+ </path>
+
+ <path name="dmic6">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC5" />
+ </path>
+
+ <path name="speaker">
+ <ctl name="WSA RX0 MUX" value="AIF1_PB" />
+ <ctl name="WSA RX1 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX0 INP0" value="RX0" />
+ <ctl name="WSA_RX1 INP0" value="RX1" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="WSA_COMP2 Switch" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft CPS Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrRight COMP Switch" value="1" />
+ <ctl name="SpkrRight VISENSE Switch" value="1" />
+ <ctl name="SpkrRight CPS Switch" value="1" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrLeft PBR Switch" value="1" />
+ <ctl name="SpkrRight PBR Switch" value="1" />
+ <ctl name="WSA PBR Enable" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ </path>
+
+ <path name="haptics-dev">
+ <ctl name="SWR DAC_Port Switch" value="1" />
+ </path>
+
+ <path name="speaker-mono">
+ <ctl name="WSA RX0 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX0 INP0" value="RX0" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft CPS Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrLeft PBR Switch" value="1" />
+ <ctl name="WSA PBR Enable" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ </path>
+
+ <path name="speaker-mono-2">
+ <ctl name="WSA RX1 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX1 INP0" value="RX1" />
+ <ctl name="WSA_COMP2 Switch" value="1" />
+ <ctl name="SpkrRight COMP Switch" value="1" />
+ <ctl name="SpkrRight VISENSE Switch" value="1" />
+ <ctl name="SpkrRight CPS Switch" value="1" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrRight PBR Switch" value="1" />
+ <ctl name="WSA PBR Enable" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ </path>
+
+ <path name="speaker-mono-vbat">
+ <path name="speaker-mono" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="speaker-mono-2-vbat">
+ <path name="speaker-mono-2" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="speaker-vbat">
+ <path name="speaker" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="speaker-hdk">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="speaker-fluid">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="speaker-liquid">
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-safe">
+ <path name="speaker-mono"/>
+ </path>
+
+ <path name="speaker-hdk-vbat">
+ <path name="speaker-mono-vbat" />
+ </path>
+
+ <path name="speaker-fluid-vbat">
+ <path name="speaker-mono-vbat" />
+ </path>
+
+ <path name="speaker-liquid-vbat">
+ <path name="speaker-vbat" />
+ </path>
+
+ <path name="speaker-safe-vbat">
+ <path name="speaker-mono-vbat"/>
+ </path>
+
+ <path name="sidetone-iir">
+ <ctl name="IIR0 Enable Band1" value="1" />
+ <ctl name="IIR0 Enable Band2" value="1" />
+ <ctl name="IIR0 Enable Band3" value="1" />
+ <ctl name="IIR0 Enable Band4" value="1" />
+ <ctl name="IIR0 Enable Band5" value="1" />
+ </path>
+
+ <path name="sidetone-headphones">
+ <path name="sidetone-iir" />
+ <ctl name="IIR0 INP0 Volume" value="54" />
+ <ctl name="IIR0 INP0 MUX" value="DEC0" />
+ <ctl name="RX INT0 MIX2 INP" value="SRC0" />
+ <ctl name="RX INT1 MIX2 INP" value="SRC0" />
+ </path>
+
+ <path name="sidetone-handset">
+ <path name="sidetone-iir" />
+ <ctl name="IIR0 INP0 Volume" value="0" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ <ctl name="RX INT2 MIX2 INP" value="SRC0" />
+ <ctl name="WSA_RX0 INT0 SIDETONE MIX" value="SRC0" />
+ </path>
+
+ <path name="sidetone-heaphone-handset-mic">
+ <path name="sidetone-iir" />
+ <ctl name="IIR0 INP0 Volume" value="0" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ <ctl name="RX INT0 MIX2 INP" value="SRC0" />
+ <ctl name="RX INT1 MIX2 INP" value="SRC0" />
+ </path>
+
+ <path name="afe-sidetone">
+ <ctl name="Voice Sidetone Enable" value="1" />
+ </path>
+
+ <path name="play-fm">
+ </path>
+
+ <path name="speaker-mic">
+ <path name="amic3" />
+ <ctl name="TX_DEC3 Volume" value="102" />
+ </path>
+
+ <path name="speaker-mic-liquid">
+ <path name="amic3" />
+ </path>
+
+ <path name="speaker-mic-sbc">
+ </path>
+
+ <path name="speaker-protected">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ <path name="speaker" />
+ </path>
+
+ <path name="voice-speaker-protected">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-2-protected">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ <path name="speaker-mono-2" />
+ </path>
+
+ <path name="voice-speaker-stereo-protected">
+ <path name="speaker-protected" />
+ </path>
+
+ <path name="speaker-protected-vbat">
+ <path name="speaker-protected" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="voice-speaker-protected-vbat">
+ <path name="voice-speaker-protected" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="voice-speaker-2-protected-vbat">
+ <path name="voice-speaker-2-protected" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="voice-speaker-stereo-protected-vbat">
+ <path name="speaker-protected-vbat" />
+ </path>
+
+ <path name="vi-feedback">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ </path>
+
+ <path name="vi-feedback-mono-1">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ </path>
+
+ <path name="vi-feedback-mono-2">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ </path>
+
+ <path name="cps-feedback">
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_1" value="1" />
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_2" value="1" />
+ </path>
+
+ <path name="cps-feedback-mono-1">
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_1" value="1" />
+ </path>
+
+ <path name="cps-feedback-mono-2">
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_2" value="1" />
+ </path>
+
+ <path name="handset">
+ <ctl name="WSA RX0 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX0 INP0" value="RX0" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft CPS Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="WSA_RX0 Digital Volume" value="70" />
+ </path>
+
+ <path name="handset-wcd">
+ <ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="EAR_RDAC Switch" value="1" />
+ <ctl name="RDAC3_MUX" value="RX1" />
+ <ctl name="RX_EAR Mode" value="ON" />
+ </path>
+
+ <path name="handset-vbat">
+ <path name="handset" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="handset-mic">
+ <path name="amic1" />
+ </path>
+
+ <path name="handset-mic-unprocessed">
+ <path name="amic1" />
+ <ctl name="TX_DEC2 Volume" value="102" />
+ </path>
+
+ <path name="ultrasound-handset">
+ <ctl name="WSA RX_MIX0 MUX" value="AIF_MIX1_PB" />
+ <ctl name="WSA_RX0 MIX INP" value="RX_MIX0" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="WSA PBR Enable" value="1" />
+ <ctl name="WSA_RX0 Digital Volume" value="50" />
+ </path>
+
+ <path name="ultrasound-handset-vbat">
+ <path name="ultrasound-handset" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="ultrasound-mic">
+ <path name="amic6" />
+ </path>
+
+ <path name="headphones">
+ <ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
+ <ctl name="RX_MACRO RX1 MUX" value="AIF1_PB" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="RX1" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="1" />
+ <ctl name="RX_COMP2 Switch" value="1" />
+ <ctl name="HPHL_COMP" value="1" />
+ <ctl name="HPHR_COMP" value="1" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ <ctl name="HPHR_RDAC Switch" value="1" />
+ </path>
+
+ <path name="headphones-and-haptics">
+ <ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
+ <ctl name="RX_MACRO RX1 MUX" value="AIF1_PB" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="RX1" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="1" />
+ <ctl name="RX_COMP2 Switch" value="1" />
+ <ctl name="HPHL_COMP" value="1" />
+ <ctl name="HPHR_COMP" value="1" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ <ctl name="HPHR_RDAC Switch" value="1" />
+ <ctl name="SWR DAC_Port Switch" value="1" />
+ </path>
+
+ <path name="headphones-44.1">
+ <path name="headphones" />
+ </path>
+
+ <path name="headphones-hifi-filter">
+ <ctl name="RX_FIR Filter" value="ON" />
+ <path name="headphones" />
+ </path>
+
+ <path name="hph-highquality-mode">
+ </path>
+
+ <path name="hph-lowpower-mode">
+ </path>
+
+ <path name="true-native-mode">
+ </path>
+
+ <path name="line">
+ <path name="headphones" />
+ </path>
+
+ <path name="headset-mic">
+ <ctl name="TX_DEC0 Volume" value="84" />
+ <path name="amic2" />
+ </path>
+
+ <path name="headset-mic-liquid">
+ <path name="amic2" />
+ </path>
+ <path name="voice-handset">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-tmus">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-hac">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-hdk">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-tmus-hdk">
+ <path name="handset" />
+ </path>
+ <path name="voice-speaker">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-stereo">
+ <path name="speaker" />
+ </path>
+
+ <path name="voice-speaker-2">
+ <path name="speaker-mono-2" />
+ </path>
+
+ <path name="voice-speaker-hdk">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-fluid">
+ <path name="speaker-fluid" />
+ </path>
+
+ <path name="voice-speaker-vbat">
+ <path name="speaker-mono-vbat" />
+ </path>
+
+ <path name="voice-speaker-stereo-vbat">
+ <path name="speaker-vbat" />
+ </path>
+
+ <path name="voice-speaker-2-vbat">
+ <path name="speaker-mono-2-vbat" />
+ </path>
+
+ <path name="voice-speaker-hdk-vbat">
+ <path name="speaker-mono-vbat" />
+ </path>
+
+ <path name="voice-speaker-fluid-vbat">
+ <path name="speaker-fluid-vbat" />
+ </path>
+
+ <path name="voice-speaker-mic">
+ <path name="speaker-mic" />
+ </path>
+
+ <path name="voice-headphones">
+ <path name="headphones" />
+ </path>
+
+ <path name="voice-headset">
+ <path name="headphones" />
+ </path>
+
+ <path name="voice-line">
+ <path name="voice-headphones" />
+ </path>
+
+ <path name="voice-headset-mic">
+ <path name="headset-mic" />
+ </path>
+
+ <path name="speaker-and-headphones">
+ <path name="headphones" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-and-headphones-hifi-filter">
+ <path name="headphones-hifi-filter" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-safe-and-headphones">
+ <path name="headphones" />
+ <path name="speaker-safe" />
+ </path>
+
+ <path name="speaker-and-line">
+ <path name="speaker-and-headphones" />
+ </path>
+
+ <path name="speaker-and-headphones-liquid">
+ <path name="headphones" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-and-line-liquid">
+ <path name="speaker-and-headphones-liquid" />
+ </path>
+
+ <path name="usb-headphones">
+ </path>
+
+ <path name="usb-headset">
+ </path>
+
+ <path name="afe-proxy">
+ </path>
+
+ <path name="echo-ref-record">
+ </path>
+
+ <path name="display-port">
+ </path>
+
+ <path name="display-port1">
+ </path>
+
+ <path name="speaker-and-usb-headphones">
+ <path name="speaker" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="speaker-safe-and-usb-headphones">
+ <path name="speaker-safe" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="speaker-and-display-port">
+ <path name="speaker" />
+ <path name="display-port" />
+ </path>
+
+ <path name="speaker-and-display-port1">
+ <path name="speaker" />
+ <path name="display-port1" />
+ </path>
+
+ <path name="voice-rec-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="bt-sco">
+ </path>
+
+ <path name="bt-sco-mic">
+ </path>
+
+ <path name="bt-sco-wb">
+ </path>
+
+ <path name="bt-sco-mic-wb">
+ </path>
+
+ <path name="bt-sco-swb">
+ </path>
+
+ <path name="bt-sco-mic-swb">
+ </path>
+
+ <path name="bt-a2dp">
+ </path>
+
+ <path name="bt-a2dp-mic">
+ </path>
+
+ <path name="bt-ble">
+ </path>
+
+ <path name="bt-ble-mic">
+ </path>
+
+ <path name="usb-headset-mic">
+ </path>
+
+ <path name="capture-fm">
+ </path>
+
+ <!-- The below mixer-control setup for ext_ec_ref_tx is for CODEC_DMA internal testing purpose only, needs to be empty if TDM/MI2S -->
+ <path name="ext_ec_ref_tx">
+ <ctl name="WSA RX_MIX EC0_MUX" value="RX_MIX_TX0" />
+ <ctl name="WSA RX_MIX EC1_MUX" value="RX_MIX_TX1" />
+ </path>
+
+ <path name="va-mic-mono">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC9" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC4 MUX" value="CH4_AMIC5" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC4 Volume" value="10" />
+ <ctl name="VA_AMIC5_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-dmic">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="TX2 MODE" value="ADC_LP" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC9" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC4" />
+ <ctl name="ADC4 MUX" value="CH4_AMIC5" />
+ <ctl name="ADC1 MUX" value="CH1_AMIC1" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC1 Volume" value="10" />
+ <ctl name="ADC4 Volume" value="10" />
+ <ctl name="VA_AMIC5_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC1_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-tmic">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC2 MUX" value="SWR_MIC" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC2 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC9" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC4" />
+ <ctl name="VA SMIC MUX2" value="SWR_MIC5" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="TX2 MODE" value="ADC_LP" />
+ <ctl name="ADC2_BCS Disable" value="1" />
+ <ctl name="ADC4 MUX" value="CH4_AMIC5" />
+ <ctl name="ADC1 MUX" value="CH1_AMIC1" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC4" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="ADC1 Volume" value="10" />
+ <ctl name="ADC2 Volume" value="10" />
+ <ctl name="ADC4 Volume" value="10" />
+ <ctl name="VA_AMIC5_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC1_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC4_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-qmic">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC3 MUX" value="SWR_MIC" />
+ <ctl name="VA_DEC2 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC3 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA DEC2 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC9" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC4" />
+ <ctl name="VA SMIC MUX3" value="SWR_MIC8" />
+ <ctl name="VA SMIC MUX2" value="SWR_MIC5" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="TX2 MODE" value="ADC_LP" />
+ <ctl name="TX3 MODE" value="ADC_LP" />
+ <ctl name="ADC2_BCS Disable" value="1" />
+ <ctl name="ADC4 MUX" value="CH4_AMIC5" />
+ <ctl name="ADC1 MUX" value="CH1_AMIC1" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC4" />
+ <ctl name="ADC3 MUX" value="CH3_AMIC3" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="ADC3_MIXER Switch" value="1" />
+ <ctl name="ADC1 Volume" value="10" />
+ <ctl name="ADC2 Volume" value="10" />
+ <ctl name="ADC3 Volume" value="10" />
+ <ctl name="ADC4 Volume" value="10" />
+ <ctl name="VA_AMIC5_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC1_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC3_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC4_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic">
+ <path name="va-mic-mono" />
+ </path>
+
+ <path name="va-mic-mono-lpi">
+ <ctl name="VA_DEC0 Volume" value="96" />
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC4" />
+ <ctl name="ADC1 MUX" value="CH1_AMIC1" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC1_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-dmic-lpi">
+ <ctl name="VA_DEC0 Volume" value="96" />
+ <ctl name="VA_DEC1 Volume" value="96" />
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="TX2 MODE" value="ADC_LP" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC4" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC9" />
+ <ctl name="ADC1 MUX" value="CH1_AMIC1" />
+ <ctl name="ADC4 MUX" value="CH4_AMIC5" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC1_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC5_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-tmic-lpi">
+ <ctl name="VA_DEC0 Volume" value="96" />
+ <ctl name="VA_DEC1 Volume" value="96" />
+ <ctl name="VA_DEC2 Volume" value="96" />
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC2 MUX" value="SWR_MIC" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC2 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC4" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC9" />
+ <ctl name="VA SMIC MUX2" value="SWR_MIC8" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="TX2 MODE" value="ADC_LP" />
+ <ctl name="ADC1 MUX" value="CH1_AMIC1" />
+ <ctl name="ADC4 MUX" value="CH4_AMIC5" />
+ <ctl name="ADC3 MUX" value="CH3_AMIC3" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC3_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC1_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC5_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC3_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-qmic-lpi">
+ <ctl name="VA_DEC0 Volume" value="96" />
+ <ctl name="VA_DEC1 Volume" value="96" />
+ <ctl name="VA_DEC2 Volume" value="96" />
+ <ctl name="VA_DEC3 Volume" value="96" />
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC3 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC2 MUX" value="SWR_MIC" />
+ <ctl name="VA_DEC2 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC3 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC4" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC9" />
+ <ctl name="VA SMIC MUX3" value="SWR_MIC5" />
+ <ctl name="VA SMIC MUX2" value="SWR_MIC8" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="TX2 MODE" value="ADC_LP" />
+ <ctl name="TX3 MODE" value="ADC_LP" />
+ <ctl name="ADC2_BCS Disable" value="1" />
+ <ctl name="ADC1 MUX" value="CH1_AMIC1" />
+ <ctl name="ADC4 MUX" value="CH4_AMIC5" />
+ <ctl name="ADC3 MUX" value="CH3_AMIC3" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC4" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC3_MIXER Switch" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC1_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC5_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC4_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC3_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-lpi">
+ <path name="va-mic-mono-lpi" />
+ </path>
+
+ <path name="headset-va-mic-lpi">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC5" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC2" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC2_BCS Disable" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="headset-va-mic">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC5" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC2" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC2_BCS Disable" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="lpi-pcm-logging">
+ <ctl name="LPI PCM Logging Enable" value="1" />
+ </path>
+
+ <!-- Dual MIC devices -->
+ <path name="handset-dmic-endfire">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DEC2 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC3 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX2" value="SWR_MIC4" />
+ <ctl name="TX SMIC MUX3" value="SWR_MIC5" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="TX3 MODE" value="ADC_LP" />
+ <ctl name="ADC1 MUX" value="CH1_AMIC1" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC4" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="AMIC1_MIXER Switch" value="1" />
+ <ctl name="AMIC4_MIXER Switch" value="1" />
+ </path>
+
+ <path name="speaker-dmic-endfire">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DEC2 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC3 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX2" value="SWR_MIC9" />
+ <ctl name="TX SMIC MUX3" value="SWR_MIC4" />
+ <ctl name="ADC1 MUX" value="CH1_AMIC1" />
+ <ctl name="ADC4 MUX" value="CH4_AMIC5" />
+ <ctl name="TX2 MODE" value="ADC_LP" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="AMIC5_MIXER Switch" value="1" />
+ <ctl name="AMIC1_MIXER Switch" value="1" />
+ <ctl name="TX_DEC2 Volume" value="98" />
+ <ctl name="TX_DEC3 Volume" value="88" />
+ </path>
+
+ <path name="dmic-endfire">
+ <path name="handset-dmic-endfire" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ </path>
+
+ <path name="dmic-endfire-liquid">
+ <path name="handset-dmic-endfire" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ </path>
+
+ <path name="handset-stereo-dmic-ef">
+ <path name="handset-dmic-endfire" />
+ </path>
+
+ <path name="speaker-stereo-dmic-ef">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef-tmus">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-speaker-dmic-ef">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-rec-dmic-ef">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-fluence">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="hearing-aid-mic">
+ <path name="voice-speaker-mic"/>
+ </path>
+
+ <path name="handset-stereo-dmic-ef-liquid">
+ <path name="handset-dmic-endfire" />
+ </path>
+
+ <path name="speaker-stereo-dmic-ef-liquid">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef-liquid-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-speaker-dmic-ef-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-fluence-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="speaker-dmic-broadside">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DEC1 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC2 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC9" />
+ <ctl name="TX SMIC MUX2" value="SWR_MIC4" />
+ <ctl name="ADC1 MUX" value="CH1_AMIC1" />
+ <ctl name="ADC4 MUX" value="CH4_AMIC5" />
+ <ctl name="TX2 MODE" value="ADC_LP" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="AMIC5_MIXER Switch" value="1" />
+ <ctl name="AMIC1_MIXER Switch" value="1" />
+ </path>
+
+ <path name="dmic-broadside">
+ <path name="speaker-dmic-broadside" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ </path>
+
+ <path name="voice-speaker-dmic-broadside">
+ <path name="dmic-broadside" />
+ </path>
+
+ <!-- Tri MIC devices -->
+ <path name="three-mic">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DEC1 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC2 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC3 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC4" />
+ <ctl name="TX SMIC MUX2" value="SWR_MIC5" />
+ <ctl name="TX SMIC MUX3" value="SWR_MIC9" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="TX3 MODE" value="ADC_LP" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="ADC1 MUX" value="CH1_AMIC1" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC4" />
+ <ctl name="ADC4 MUX" value="CH4_AMIC5" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="AMIC1_MIXER Switch" value="1" />
+ <ctl name="AMIC4_MIXER Switch" value="1" />
+ <ctl name="AMIC5_MIXER Switch" value="1" />
+ </path>
+
+ <path name="speaker-tmic">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DEC1 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC2 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC3 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC9" />
+ <ctl name="TX SMIC MUX2" value="SWR_MIC4" />
+ <ctl name="TX SMIC MUX3" value="SWR_MIC5" />
+ <ctl name="ADC1 MUX" value="CH1_AMIC1" />
+ <ctl name="ADC4 MUX" value="CH4_AMIC5" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC4" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="TX3 MODE" value="ADC_LP" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="AMIC4_MIXER Switch" value="1" />
+ <ctl name="AMIC1_MIXER Switch" value="1" />
+ <ctl name="AMIC5_MIXER Switch" value="1" />
+ <ctl name="TX_DEC1 Volume" value="98" />
+ <ctl name="TX_DEC2 Volume" value="88" />
+ <ctl name="TX_DEC3 Volume" value="98" />
+ </path>
+
+ <path name="voice-speaker-tmic">
+ <path name="speaker-tmic" />
+ </path>
+
+ <!-- Quad MIC devices -->
+ <path name="speaker-qmic">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="1" />
+ <ctl name="TX DEC1 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC2 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC3 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC4 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC9" />
+ <ctl name="TX SMIC MUX2" value="SWR_MIC4" />
+ <ctl name="TX SMIC MUX3" value="SWR_MIC5" />
+ <ctl name="TX SMIC MUX4" value="SWR_MIC8" />
+ <ctl name="ADC1 MUX" value="CH1_AMIC1" />
+ <ctl name="ADC4 MUX" value="CH4_AMIC5" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC4" />
+ <ctl name="ADC3 MUX" value="CH3_AMIC3" />
+ <ctl name="ADC2_BCS Disable" value="1" />
+ <ctl name="TX2 MODE" value="ADC_LP" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="TX3 MODE" value="ADC_LP" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="ADC3_MIXER Switch" value="1" />
+ <ctl name="AMIC5_MIXER Switch" value="1" />
+ <ctl name="AMIC1_MIXER Switch" value="1" />
+ <ctl name="AMIC3_MIXER Switch" value="1" />
+ <ctl name="AMIC4_MIXER Switch" value="1" />
+ <ctl name="TX_DEC1 Volume" value="98" />
+ <ctl name="TX_DEC2 Volume" value="88" />
+ <ctl name="TX_DEC3 Volume" value="98" />
+ <ctl name="TX_DEC4 Volume" value="84" />
+ </path>
+
+ <path name="speaker-qmic-liquid">
+ </path>
+
+ <path name="voice-speaker-qmic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <path name="quad-mic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <path name="voice-speaker-qmic-liquid">
+ <path name="speaker-qmic-liquid" />
+ </path>
+
+ <path name="quad-mic-liquid">
+ <path name="speaker-qmic-liquid" />
+ </path>
+
+ <path name="handset-dual-amic-quad-adc-hdr">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1"/>
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1"/>
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1"/>
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="1"/>
+ <ctl name="TX DEC1 MUX" value="SWR_MIC"/>
+ <ctl name="TX DEC2 MUX" value="SWR_MIC"/>
+ <ctl name="TX DEC3 MUX" value="SWR_MIC"/>
+ <ctl name="TX DEC4 MUX" value="SWR_MIC"/>
+ <ctl name="ADC1 MUX" value="CH1_AMIC1" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC1" />
+ <ctl name="ADC3 MUX" value="CH3_AMIC5" />
+ <ctl name="ADC4 MUX" value="CH4_AMIC5" />
+ <ctl name="TX2 MODE" value="ADC_HIFI"/>
+ <ctl name="TX0 MODE" value="ADC_HIFI"/>
+ <ctl name="TX3 MODE" value="ADC_HIFI"/>
+ <ctl name="TX1 MODE" value="ADC_HIFI"/>
+ <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1"/>
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1"/>
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2"/>
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2"/>
+ <ctl name="ADC3_MIXER Switch" value="1"/>
+ <ctl name="ADC1_MIXER Switch" value="1"/>
+ <ctl name="ADC4_MIXER Switch" value="1"/>
+ <ctl name="ADC2_MIXER Switch" value="1"/>
+ <ctl name="AMIC1_MIXER Switch" value="1"/>
+ <ctl name="AMIC5_MIXER Switch" value="1"/>
+ <ctl name="TX_DEC1 Volume" value="84"/>
+ <ctl name="TX_DEC2 Volume" value="84"/>
+ <ctl name="TX_DEC3 Volume" value="84"/>
+ <ctl name="TX_DEC4 Volume" value="84"/>
+ <ctl name="ADC1 Volume" value="16"/>
+ <ctl name="ADC2 Volume" value="0"/>
+ <ctl name="ADC3 Volume" value="0"/>
+ <ctl name="ADC4 Volume" value="16"/>
+ </path>
+
+ <path name="unprocessed-hdr-mic-landscape">
+ <path name="handset-dual-amic-quad-adc-hdr" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC9"/>
+ <ctl name="TX SMIC MUX2" value="SWR_MIC8"/>
+ <ctl name="TX SMIC MUX3" value="SWR_MIC4"/>
+ <ctl name="TX SMIC MUX4" value="SWR_MIC5"/>
+ </path>
+
+ <path name="unprocessed-hdr-mic-inverted-landscape">
+ <path name="handset-dual-amic-quad-adc-hdr" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC4"/>
+ <ctl name="TX SMIC MUX2" value="SWR_MIC5"/>
+ <ctl name="TX SMIC MUX3" value="SWR_MIC9"/>
+ <ctl name="TX SMIC MUX4" value="SWR_MIC8"/>
+ </path>
+
+ <path name="handset-single-amic-quad-adc">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1"/>
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1"/>
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1"/>
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="1"/>
+ <ctl name="TX DEC1 MUX" value="SWR_MIC"/>
+ <ctl name="TX DEC2 MUX" value="SWR_MIC"/>
+ <ctl name="TX DEC3 MUX" value="SWR_MIC"/>
+ <ctl name="TX DEC4 MUX" value="SWR_MIC"/>
+ <ctl name="TX SMIC MUX1" value="SWR_MIC9"/>
+ <ctl name="TX SMIC MUX2" value="SWR_MIC8"/>
+ <ctl name="TX SMIC MUX3" value="SWR_MIC9"/>
+ <ctl name="TX SMIC MUX4" value="SWR_MIC8"/>
+ <ctl name="ADC3 MUX" value="CH3_AMIC5"/>
+ <ctl name="ADC4 MUX" value="CH4_AMIC5"/>
+ <ctl name="TX2 MODE" value="ADC_HIFI"/>
+ <ctl name="TX3 MODE" value="ADC_HIFI"/>
+ <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1"/>
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2"/>
+ <ctl name="ADC3_MIXER Switch" value="1"/>
+ <ctl name="ADC4_MIXER Switch" value="1"/>
+ <ctl name="AMIC5_MIXER Switch" value="1"/>
+ <ctl name="TX_DEC1 Volume" value="84"/>
+ <ctl name="TX_DEC2 Volume" value="84"/>
+ <ctl name="TX_DEC3 Volume" value="84"/>
+ <ctl name="TX_DEC4 Volume" value="84"/>
+ <ctl name="ADC3 Volume" value="0"/>
+ <ctl name="ADC4 Volume" value="16"/>
+ </path>
+
+ <path name="camcorder-main-mic">
+ <path name="speaker-mic" />
+ </path>
+
+ <path name="camcorder-dual-mic">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="camcorder-quad-mic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <!-- TTY devices -->
+
+ <path name="tty-headphones">
+ <ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="1" />
+ <ctl name="HPHL_COMP" value="1" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ </path>
+
+ <path name="voice-tty-full-headphones">
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-full-headset">
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-vco-headphones">
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-vco-headset">
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-hco-handset">
+ <path name="handset" />
+ </path>
+
+
+ <path name="voice-tty-hco-handset-hdk">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-tty-full-headset-mic">
+ <path name="amic2" />
+ <ctl name="ADC2 Volume" value="0" />
+ <ctl name="TX_DEC5 Volume" value="84" />
+ </path>
+
+ <path name="voice-tty-hco-headset-mic">
+ <ctl name="TX DEC6 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX6" value="SWR_MIC5" />
+ <ctl name="TX_AIF1_CAP Mixer DEC6" value="1" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC2" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="MBHC ChMap" value="SWRM_TX3_CH3" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="BCS Channel" value="CH10" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="AMIC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="voice-tty-vco-handset-mic">
+ <path name="dmic4" />
+ </path>
+
+ <path name="unprocessed-handset-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="unprocessed-mic">
+ <path name="unprocessed-handset-mic" />
+ </path>
+
+ <path name="unprocessed-stereo-mic">
+ <path name="voice-rec-dmic-ef" />
+ </path>
+
+ <path name="unprocessed-three-mic">
+ <path name="three-mic" />
+ </path>
+
+ <path name="unprocessed-quad-mic">
+ <path name="quad-mic" />
+ </path>
+
+ <path name="unprocessed-headset-mic">
+ <path name="headset-mic" />
+ </path>
+
+</mixer>
diff --git a/configs/crow/mixer_paths_crow_idp_wcd9395_dmic.xml b/configs/crow/mixer_paths_crow_idp_wcd9395_dmic.xml
new file mode 100644
index 0000000..12badea
--- /dev/null
+++ b/configs/crow/mixer_paths_crow_idp_wcd9395_dmic.xml
@@ -0,0 +1,1274 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Copyright (c) 2015-2021, 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.
+
+* Changes from Qualcomm Innovation Center are provided under the following license:
+*
+* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted (subject to the limitations in the
+* disclaimer below) 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 Qualcomm Innovation Center, Inc. nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+* IN NO EVENT SHALL THE COPYRIGHT HOLDER 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="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="0" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="0" />
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_1" value="0" />
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_2" value="0" />
+
+ <!-- Codec controls -->
+ <!-- WSA controls -->
+ <ctl name="WSA RX0 MUX" value="ZERO" />
+ <ctl name="WSA RX1 MUX" value="ZERO" />
+ <ctl name="WSA_RX0 INP0" value="ZERO" />
+ <ctl name="WSA_RX1 INP0" value="ZERO" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="0" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="0" />
+ <ctl name="WSA SPKRRECV" value="0" />
+ <ctl name="WSA PBR Enable" value="0" />
+ <ctl name="Idle Detect" value="0" />
+ <ctl name="SpkrLeft COMP Switch" value="0" />
+ <ctl name="SpkrRight COMP Switch" value="0" />
+ <ctl name="SpkrLeft VISENSE Switch" value="0" />
+ <ctl name="SpkrRight VISENSE Switch" value="0" />
+ <ctl name="SpkrLeft CPS Switch" value="0" />
+ <ctl name="SpkrRight CPS Switch" value="0" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="0" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="0" />
+ <ctl name="SpkrLeft PBR Switch" value="0" />
+ <ctl name="SpkrRight PBR Switch" value="0" />
+ <ctl name="SpkrLeft WSA MODE" value="0" />
+ <ctl name="SpkrRight WSA MODE" value="0" />
+
+ <!-- RX Controls -->
+ <ctl name="RX_MACRO RX0 MUX" value="ZERO" />
+ <ctl name="RX_MACRO RX1 MUX" value="ZERO" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT0_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT0_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX INT0 DEM MUX" value="NORMAL_DSM_OUT" />
+ <ctl name="RX INT1 DEM MUX" value="NORMAL_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="0" />
+ <ctl name="RX_COMP2 Switch" value="0" />
+ <ctl name="HPHL_COMP Switch" value="0" />
+ <ctl name="HPHR_COMP Switch" value="0" />
+ <ctl name="EAR_RDAC Switch" value="0" />
+ <ctl name="HPHL_RDAC Switch" value="0" />
+ <ctl name="HPHR_RDAC Switch" value="0" />
+ <ctl name="RX_FIR Filter" value="OFF" />
+ <ctl name="RX_EAR Mode" value="OFF" />
+ <!-- WCD939x enable PCM path by default -->
+ <ctl name="PM_QOS Vote" value="Disable" />
+
+ <!-- TX Controls -->
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="0" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="0" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="0" />
+ <ctl name="VA_AIF1_CAP Mixer DEC3" value="0" />
+ <ctl name="VA DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC2 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC3 MUX" value="MSM_DMIC" />
+ <ctl name="VA DMIC MUX0" value="ZERO" />
+ <ctl name="VA DMIC MUX1" value="ZERO" />
+ <ctl name="VA DMIC MUX2" value="ZERO" />
+ <ctl name="VA DMIC MUX3" value="ZERO" />
+ <ctl name="VA SMIC MUX0" value="ZERO" />
+ <ctl name="VA SMIC MUX1" value="ZERO" />
+ <ctl name="VA SMIC MUX2" value="ZERO" />
+ <ctl name="VA SMIC MUX3" value="ZERO" />
+ <ctl name="VA_DEC0 MODE" value="ADC_DEFAULT" />
+ <ctl name="ADC2_BCS Disable" value="0" />
+ <ctl name="ADC1_MIXER Switch" value="0" />
+ <ctl name="ADC2_MIXER Switch" value="0" />
+ <ctl name="ADC3_MIXER Switch" value="0" />
+ <ctl name="ADC4_MIXER Switch" value="0" />
+ <ctl name="DEC0_BCS Switch" value="0" />
+ <ctl name="ADC2_BCS Disable" value="0" />
+ <ctl name="ADC1 MUX" value="CH1_AMIC_DISABLE" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC_DISABLE" />
+ <ctl name="ADC3 MUX" value="CH3_AMIC_DISABLE" />
+ <ctl name="ADC4 MUX" value="CH4_AMIC_DISABLE" />
+ <ctl name="VA_AMIC1_MIXER Switch" value="0" />
+ <ctl name="VA_AMIC2_MIXER Switch" value="0" />
+ <ctl name="VA_AMIC3_MIXER Switch" value="0" />
+ <ctl name="VA_AMIC4_MIXER Switch" value="0" />
+ <ctl name="VA_AMIC5_MIXER Switch" value="0" />
+ <ctl name="AMIC1_MIXER Switch" value="0" />
+ <ctl name="AMIC2_MIXER Switch" value="0" />
+ <ctl name="AMIC3_MIXER Switch" value="0" />
+ <ctl name="AMIC4_MIXER Switch" value="0" />
+ <ctl name="AMIC5_MIXER Switch" value="0" />
+
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC5" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC6" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC7" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC0" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC1" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC2" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC3" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC4" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC5" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC6" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC7" value="0" />
+ <ctl name="TX DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX0" value="ZERO" />
+ <ctl name="TX SMIC MUX0" value="ZERO" />
+ <ctl name="TX DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX1" value="ZERO" />
+ <ctl name="TX SMIC MUX1" value="ZERO" />
+ <ctl name="TX DEC2 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX2" value="ZERO" />
+ <ctl name="TX SMIC MUX2" value="ZERO" />
+ <ctl name="TX DEC3 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX3" value="ZERO" />
+ <ctl name="TX SMIC MUX3" value="ZERO" />
+ <ctl name="TX DEC4 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX4" value="ZERO" />
+ <ctl name="TX SMIC MUX4" value="ZERO" />
+ <ctl name="TX DEC5 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX5" value="ZERO" />
+ <ctl name="TX SMIC MUX5" value="ZERO" />
+ <ctl name="TX DEC6 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX6" value="ZERO" />
+ <ctl name="TX SMIC MUX6" value="ZERO" />
+ <ctl name="TX DEC7 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX7" value="ZERO" />
+ <ctl name="TX SMIC MUX7" value="ZERO" />
+ <ctl name="ADC1 ChMap" value="ZERO" />
+ <ctl name="ADC2 ChMap" value="ZERO" />
+ <ctl name="ADC3 ChMap" value="ZERO" />
+ <ctl name="ADC4 ChMap" value="ZERO" />
+ <ctl name="TX0 MODE" value="ADC_NORMAL" />
+ <ctl name="TX1 MODE" value="ADC_NORMAL" />
+ <ctl name="TX2 MODE" value="ADC_NORMAL" />
+ <ctl name="TX3 MODE" value="ADC_NORMAL" />
+
+ <!-- Volume controls -->
+ <ctl name="WSA_RX0 Digital Volume" value="84" />
+ <ctl name="WSA_RX1 Digital Volume" value="84" />
+ <ctl name="RX_RX0 Digital Volume" value="84" />
+ <ctl name="RX_RX1 Digital Volume" value="84" />
+ <ctl name="RX_RX2 Digital Volume" value="84" />
+ <ctl name="HPHL Volume" value="20" />
+ <ctl name="HPHR Volume" value="20" />
+
+ <ctl name="TX_DEC0 Volume" value="102" />
+ <ctl name="TX_DEC1 Volume" value="114" />
+ <ctl name="TX_DEC2 Volume" value="114" />
+ <ctl name="TX_DEC3 Volume" value="114" />
+ <ctl name="TX_DEC4 Volume" value="144" />
+ <ctl name="TX_DEC5 Volume" value="84" />
+ <ctl name="TX_DEC6 Volume" value="84" />
+ <ctl name="TX_DEC7 Volume" value="84" />
+
+ <ctl name="ADC1 Volume" value="12" />
+ <ctl name="ADC2 Volume" value="12" />
+ <ctl name="ADC3 Volume" value="12" />
+ <ctl name="ADC4 Volume" value="12" />
+
+ <ctl name="VA_DEC0 Volume" value="84" />
+ <ctl name="VA_DEC1 Volume" value="84" />
+ <ctl name="VA_DEC2 Volume" value="84" />
+ <ctl name="VA_DEC3 Volume" value="84" />
+
+ <!-- Compander controls -->
+ <ctl name="WSA_COMP1 Switch" value="0" />
+ <ctl name="WSA_COMP2 Switch" value="0" />
+
+ <!-- Headphone class-H mode -->
+ <ctl name="RX_HPH_PWR_MODE" value="ULP" />
+ <ctl name="RX HPH Mode" value="CLS_H_ULP" />
+
+ <!-- IIR/voice anc -->
+ <ctl name="IIR0 Band1" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Band2" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Band3" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Band4" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Band5" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Enable Band1" value="0" />
+ <ctl name="IIR0 Enable Band2" value="0" />
+ <ctl name="IIR0 Enable Band3" value="0" />
+ <ctl name="IIR0 Enable Band4" value="0" />
+ <ctl name="IIR0 Enable Band5" value="0" />
+ <ctl name="IIR0 INP0 Volume" value="54" />
+ <ctl name="IIR0 INP0 MUX" value="ZERO" />
+ <ctl name="IIR0 INP1 MUX" value="ZERO" />
+ <ctl name="IIR0 INP2 MUX" value="ZERO" />
+ <ctl name="IIR0 INP3 MUX" value="ZERO" />
+
+ <!-- vbat related data -->
+ <ctl name="GSM mode Enable" value="OFF" />
+ <ctl name="WSA_Softclip0 Enable" value="0" />
+ <ctl name="WSA_Softclip1 Enable" value="0" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="0" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="0" />
+
+ <!-- Codec controls end -->
+
+ <!-- defaults for mmap record -->
+
+ <!-- HIFI Filter coefficients for headphones path -->
+ <path name="hifi-filter-coefficients">
+ <ctl name="RX0 FIR Coeff Num" value="8" />
+ <ctl name="RX0 FIR Coeff Group0" value="08 00 00 00 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
+ <ctl name="RX0 FIR Coeff Group1" value="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
+ <ctl name="RX1 FIR Coeff Num" value="8" />
+ <ctl name="RX1 FIR Coeff Group0" value="08 00 00 00 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
+ <ctl name="RX1 FIR Coeff Group1" value="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
+ </path>
+
+ <!-- These are audio route (FE to BE) specific mixer settings -->
+ <path name="gsm-mode">
+ <ctl name="GSM mode Enable" value="ON" />
+ </path>
+
+
+ <!-- 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="SWR_MIC5" />
+ <ctl name="DEC0_BCS Switch" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC2" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="MBHC ChMap" value="SWRM_TX1_CH3" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="BCS Channel" value="CH2" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="AMIC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="dmic1">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC0" />
+ </path>
+
+ <path name="dmic2">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC1" />
+ </path>
+
+ <path name="dmic3">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC2" />
+ </path>
+
+ <path name="dmic4">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC3" />
+ </path>
+
+ <path name="speaker">
+ <ctl name="WSA RX0 MUX" value="AIF1_PB" />
+ <ctl name="WSA RX1 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX0 INP0" value="RX0" />
+ <ctl name="WSA_RX1 INP0" value="RX1" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="WSA_COMP2 Switch" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft CPS Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrRight COMP Switch" value="1" />
+ <ctl name="SpkrRight VISENSE Switch" value="1" />
+ <ctl name="SpkrRight CPS Switch" value="1" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrLeft PBR Switch" value="1" />
+ <ctl name="SpkrRight PBR Switch" value="1" />
+ <ctl name="WSA PBR Enable" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ </path>
+
+ <path name="haptics-dev">
+ <ctl name="SWR DAC_Port Switch" value="1" />
+ </path>
+
+ <path name="speaker-mono">
+ <ctl name="WSA RX0 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX0 INP0" value="RX0" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft CPS Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrLeft PBR Switch" value="1" />
+ <ctl name="WSA PBR Enable" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ </path>
+
+ <path name="speaker-mono-2">
+ <ctl name="WSA RX1 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX1 INP0" value="RX1" />
+ <ctl name="WSA_COMP2 Switch" value="1" />
+ <ctl name="SpkrRight COMP Switch" value="1" />
+ <ctl name="SpkrRight VISENSE Switch" value="1" />
+ <ctl name="SpkrRight CPS Switch" value="1" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrRight PBR Switch" value="1" />
+ <ctl name="WSA PBR Enable" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ </path>
+
+ <path name="speaker-mono-vbat">
+ <path name="speaker-mono" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="speaker-mono-2-vbat">
+ <path name="speaker-mono-2" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="speaker-vbat">
+ <path name="speaker" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="speaker-hdk">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="speaker-fluid">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="speaker-liquid">
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-safe">
+ <path name="speaker-mono"/>
+ </path>
+
+ <path name="speaker-hdk-vbat">
+ <path name="speaker-mono-vbat" />
+ </path>
+
+ <path name="speaker-fluid-vbat">
+ <path name="speaker-mono-vbat" />
+ </path>
+
+ <path name="speaker-liquid-vbat">
+ <path name="speaker-vbat" />
+ </path>
+
+ <path name="speaker-safe-vbat">
+ <path name="speaker-mono-vbat"/>
+ </path>
+
+ <path name="sidetone-iir">
+ <ctl name="IIR0 Enable Band1" value="1" />
+ <ctl name="IIR0 Enable Band2" value="1" />
+ <ctl name="IIR0 Enable Band3" value="1" />
+ <ctl name="IIR0 Enable Band4" value="1" />
+ <ctl name="IIR0 Enable Band5" value="1" />
+ </path>
+
+ <path name="sidetone-headphones">
+ <path name="sidetone-iir" />
+ <ctl name="IIR0 INP0 Volume" value="54" />
+ <ctl name="IIR0 INP0 MUX" value="DEC0" />
+ <ctl name="RX INT0 MIX2 INP" value="SRC0" />
+ <ctl name="RX INT1 MIX2 INP" value="SRC0" />
+ </path>
+
+ <path name="sidetone-handset">
+ <path name="sidetone-iir" />
+ <ctl name="IIR0 INP0 Volume" value="0" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ <ctl name="RX INT2 MIX2 INP" value="SRC0" />
+ <ctl name="WSA_RX0 INT0 SIDETONE MIX" value="SRC0" />
+ </path>
+
+ <path name="sidetone-heaphone-handset-mic">
+ <path name="sidetone-iir" />
+ <ctl name="IIR0 INP0 Volume" value="0" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ <ctl name="RX INT0 MIX2 INP" value="SRC0" />
+ <ctl name="RX INT1 MIX2 INP" value="SRC0" />
+ </path>
+
+ <path name="afe-sidetone">
+ </path>
+
+ <path name="play-fm">
+ </path>
+
+ <path name="speaker-mic">
+ <path name="dmic1" />
+ </path>
+
+ <path name="speaker-mic-liquid">
+ <path name="dmic1" />
+ </path>
+
+ <path name="speaker-mic-sbc">
+ </path>
+
+ <path name="speaker-protected">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ <path name="speaker" />
+ </path>
+
+ <path name="voice-speaker-protected">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-2-protected">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ <path name="speaker-mono-2" />
+ </path>
+
+ <path name="voice-speaker-stereo-protected">
+ <path name="speaker-protected" />
+ </path>
+
+ <path name="speaker-protected-vbat">
+ <path name="speaker-protected" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="voice-speaker-protected-vbat">
+ <path name="voice-speaker-protected" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="voice-speaker-2-protected-vbat">
+ <path name="voice-speaker-2-protected" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="voice-speaker-stereo-protected-vbat">
+ <path name="speaker-protected-vbat" />
+ </path>
+
+ <path name="vi-feedback">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ </path>
+
+ <path name="vi-feedback-mono-1">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ </path>
+
+ <path name="vi-feedback-mono-2">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ </path>
+
+ <path name="cps-feedback">
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_1" value="1" />
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_2" value="1" />
+ </path>
+
+ <path name="cps-feedback-mono-1">
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_1" value="1" />
+ </path>
+
+ <path name="cps-feedback-mono-2">
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_2" value="1" />
+ </path>
+
+ <path name="handset">
+ <ctl name="WSA RX0 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX0 INP0" value="RX0" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft CPS Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="WSA_RX0 Digital Volume" value="70" />
+ </path>
+
+ <path name="handset-vbat">
+ <path name="handset" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="handset-mic">
+ <path name="dmic2" />
+ </path>
+
+ <path name="handset-mic-unprocessed">
+ <path name="dmic2" />
+ <ctl name="TX_DEC2 Volume" value="102" />
+ </path>
+
+ <path name="ultrasound-handset">
+ <ctl name="WSA RX_MIX0 MUX" value="AIF_MIX1_PB" />
+ <ctl name="WSA_RX0 MIX INP" value="RX_MIX0" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="WSA PBR Enable" value="1" />
+ <ctl name="WSA_RX0 Digital Volume" value="50" />
+ </path>
+
+ <path name="ultrasound-handset-vbat">
+ <path name="ultrasound-handset" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="ultrasound-mic">
+ <ctl name="TX_AIF2_CAP Mixer DEC4" value="1" />
+ <ctl name="TX DMIC MUX4" value="DMIC2" />
+ </path>
+
+ <path name="headphones">
+ <ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
+ <ctl name="RX_MACRO RX1 MUX" value="AIF1_PB" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="RX1" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="1" />
+ <ctl name="RX_COMP2 Switch" value="1" />
+ <ctl name="HPHL_COMP" value="1" />
+ <ctl name="HPHR_COMP" value="1" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ <ctl name="HPHR_RDAC Switch" value="1" />
+ </path>
+
+ <path name="headphones-and-haptics">
+ <ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
+ <ctl name="RX_MACRO RX1 MUX" value="AIF1_PB" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="RX1" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="1" />
+ <ctl name="RX_COMP2 Switch" value="1" />
+ <ctl name="HPHL_COMP" value="1" />
+ <ctl name="HPHR_COMP" value="1" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ <ctl name="HPHR_RDAC Switch" value="1" />
+ <ctl name="SWR DAC_Port Switch" value="1" />
+ </path>
+
+ <path name="headphones-44.1">
+ <path name="headphones" />
+ </path>
+
+ <path name="headphones-hifi-filter">
+ <ctl name="RX_FIR Filter" value="ON" />
+ <path name="headphones" />
+ </path>
+
+ <path name="hph-highquality-mode">
+ </path>
+
+ <path name="hph-lowpower-mode">
+ </path>
+
+ <path name="true-native-mode">
+ </path>
+
+ <path name="line">
+ <path name="headphones" />
+ </path>
+
+ <path name="headset-mic">
+ <ctl name="TX_DEC0 Volume" value="84" />
+ <path name="amic2" />
+ </path>
+
+ <path name="headset-mic-liquid">
+ <path name="amic2" />
+ </path>
+ <path name="voice-handset">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-tmus">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-hac">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-hdk">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-tmus-hdk">
+ <path name="handset" />
+ </path>
+ <path name="voice-speaker">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-stereo">
+ <path name="speaker" />
+ </path>
+
+ <path name="voice-speaker-2">
+ <path name="speaker-mono-2" />
+ </path>
+
+ <path name="voice-speaker-hdk">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-fluid">
+ <path name="speaker-fluid" />
+ </path>
+
+ <path name="voice-speaker-vbat">
+ <path name="speaker-mono-vbat" />
+ </path>
+
+ <path name="voice-speaker-stereo-vbat">
+ <path name="speaker-vbat" />
+ </path>
+
+ <path name="voice-speaker-2-vbat">
+ <path name="speaker-mono-2-vbat" />
+ </path>
+
+ <path name="voice-speaker-hdk-vbat">
+ <path name="speaker-mono-vbat" />
+ </path>
+
+ <path name="voice-speaker-fluid-vbat">
+ <path name="speaker-fluid-vbat" />
+ </path>
+
+ <path name="voice-speaker-mic">
+ <path name="speaker-mic" />
+ </path>
+
+ <path name="voice-headphones">
+ <path name="headphones" />
+ </path>
+
+ <path name="voice-headset">
+ <path name="headphones" />
+ </path>
+
+ <path name="voice-line">
+ <path name="voice-headphones" />
+ </path>
+
+ <path name="voice-headset-mic">
+ <path name="headset-mic" />
+ </path>
+
+ <path name="speaker-and-headphones">
+ <path name="headphones" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-and-headphones-hifi-filter">
+ <path name="headphones-hifi-filter" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-safe-and-headphones">
+ <path name="headphones" />
+ <path name="speaker-safe" />
+ </path>
+
+ <path name="speaker-and-line">
+ <path name="speaker-and-headphones" />
+ </path>
+
+ <path name="speaker-and-headphones-liquid">
+ <path name="headphones" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-and-line-liquid">
+ <path name="speaker-and-headphones-liquid" />
+ </path>
+
+ <path name="usb-headphones">
+ </path>
+
+ <path name="usb-headset">
+ </path>
+
+ <path name="afe-proxy">
+ </path>
+
+ <path name="echo-ref-record">
+ </path>
+
+ <path name="display-port">
+ </path>
+
+ <path name="display-port1">
+ </path>
+
+ <path name="speaker-and-usb-headphones">
+ <path name="speaker" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="speaker-safe-and-usb-headphones">
+ <path name="speaker-safe" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="speaker-and-display-port">
+ <path name="speaker" />
+ <path name="display-port" />
+ </path>
+
+ <path name="speaker-and-display-port1">
+ <path name="speaker" />
+ <path name="display-port1" />
+ </path>
+
+ <path name="voice-rec-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="bt-sco">
+ </path>
+
+ <path name="bt-sco-mic">
+ </path>
+
+ <path name="bt-sco-wb">
+ </path>
+
+ <path name="bt-sco-mic-wb">
+ </path>
+
+ <path name="bt-sco-swb">
+ </path>
+
+ <path name="bt-sco-mic-swb">
+ </path>
+
+ <path name="bt-a2dp">
+ </path>
+
+ <path name="bt-a2dp-mic">
+ </path>
+
+ <path name="bt-ble">
+ </path>
+
+ <path name="bt-ble-mic">
+ </path>
+
+ <path name="usb-headset-mic">
+ </path>
+
+ <path name="capture-fm">
+ </path>
+
+ <!-- The below mixer-control setup for ext_ec_ref_tx is for CODEC_DMA internal testing purpose only, needs to be empty if TDM/MI2S -->
+ <path name="ext_ec_ref_tx">
+ <ctl name="WSA RX_MIX EC0_MUX" value="RX_MIX_TX0" />
+ <ctl name="WSA RX_MIX EC1_MUX" value="RX_MIX_TX1" />
+ </path>
+
+ <path name="va-mic-mono">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="VA DMIC MUX0" value="DMIC0" />
+ </path>
+
+ <path name="va-mic-dmic">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="VA DMIC MUX0" value="DMIC0" />
+ <ctl name="VA DMIC MUX1" value="DMIC1" />
+ </path>
+
+ <path name="va-mic-tmic">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC2 MUX" value="MSM_DMIC" />
+ <ctl name="VA DMIC MUX0" value="DMIC0" />
+ <ctl name="VA DMIC MUX1" value="DMIC1" />
+ <ctl name="VA DMIC MUX2" value="DMIC3" />
+ </path>
+
+ <path name="va-mic-qmic">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="VA DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC2 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC3 MUX" value="MSM_DMIC" />
+ <ctl name="VA DMIC MUX0" value="DMIC0" />
+ <ctl name="VA DMIC MUX1" value="DMIC1" />
+ <ctl name="VA DMIC MUX2" value="DMIC3" />
+ <ctl name="VA DMIC MUX3" value="DMIC2" />
+ </path>
+
+ <path name="va-mic">
+ <path name="va-mic-mono" />
+ </path>
+
+ <path name="va-mic-mono-lpi">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="VA DMIC MUX0" value="DMIC1" />
+ </path>
+
+ <path name="va-mic-dmic-lpi">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="VA DMIC MUX0" value="DMIC1" />
+ <ctl name="VA DMIC MUX1" value="DMIC0" />
+ </path>
+
+ <path name="va-mic-tmic-lpi">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC2 MUX" value="MSM_DMIC" />
+ <ctl name="VA DMIC MUX0" value="DMIC1" />
+ <ctl name="VA DMIC MUX1" value="DMIC0" />
+ <ctl name="VA DMIC MUX2" value="DMIC2" />
+ </path>
+
+ <path name="va-mic-qmic-lpi">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="VA DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC2 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC3 MUX" value="MSM_DMIC" />
+ <ctl name="VA DMIC MUX0" value="DMIC1" />
+ <ctl name="VA DMIC MUX1" value="DMIC0" />
+ <ctl name="VA DMIC MUX2" value="DMIC2" />
+ <ctl name="VA DMIC MUX3" value="DMIC3" />
+ </path>
+
+ <path name="va-mic-lpi">
+ <path name="va-mic-mono-lpi" />
+ </path>
+
+ <path name="headset-va-mic-lpi">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC5" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC2" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC2_BCS Disable" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="headset-va-mic">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC5" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC2" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC2_BCS Disable" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="lpi-pcm-logging">
+ <ctl name="LPI PCM Logging Enable" value="1" />
+ </path>
+
+ <path name="PM_QOS_Vote">
+ <ctl name="PM_QOS Vote" value="Enable" />
+ </path>
+
+ <!-- Dual MIC devices -->
+ <path name="handset-dmic-endfire">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC3" />
+ </path>
+
+ <path name="speaker-dmic-endfire">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC1" />
+ </path>
+
+ <path name="dmic-endfire">
+ <path name="handset-dmic-endfire" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ </path>
+
+ <path name="dmic-endfire-liquid">
+ <path name="handset-dmic-endfire" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ </path>
+
+ <path name="handset-stereo-dmic-ef">
+ <path name="handset-dmic-endfire" />
+ </path>
+
+ <path name="speaker-stereo-dmic-ef">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef-tmus">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-speaker-dmic-ef">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-rec-dmic-ef">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-fluence">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="hearing-aid-mic">
+ <path name="voice-speaker-mic"/>
+ </path>
+
+ <path name="handset-stereo-dmic-ef-liquid">
+ <path name="handset-dmic-endfire" />
+ </path>
+
+ <path name="speaker-stereo-dmic-ef-liquid">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef-liquid-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-speaker-dmic-ef-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-fluence-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="speaker-dmic-broadside">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC1" />
+ </path>
+
+ <path name="dmic-broadside">
+ <path name="speaker-dmic-broadside" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ </path>
+
+ <path name="voice-speaker-dmic-broadside">
+ <path name="dmic-broadside" />
+ </path>
+
+ <!-- Tri MIC devices -->
+
+ <path name="three-mic">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DMIC MUX3" value="DMIC3" />
+ </path>
+
+ <path name="speaker-tmic">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DMIC MUX3" value="DMIC3" />
+ </path>
+
+ <path name="voice-speaker-tmic">
+ <path name="speaker-tmic" />
+ </path>
+
+ <!-- Quad MIC devices -->
+
+ <path name="speaker-qmic">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DMIC MUX3" value="DMIC3" />
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="1" />
+ <ctl name="TX DMIC MUX4" value="DMIC2" />
+ </path>
+
+ <path name="speaker-qmic-liquid">
+ </path>
+
+ <path name="voice-speaker-qmic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <path name="quad-mic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <path name="voice-speaker-qmic-liquid">
+ <path name="speaker-qmic-liquid" />
+ </path>
+
+ <path name="quad-mic-liquid">
+ <path name="speaker-qmic-liquid" />
+ </path>
+
+ <path name="handset-dual-dmic-quad-dec">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DMIC MUX3" value="DMIC1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="1" />
+ <ctl name="TX DMIC MUX4" value="DMIC1" />
+ </path>
+
+ <path name="handset-dual-dmic-quad-dec-reverse">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DMIC MUX3" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="1" />
+ <ctl name="TX DMIC MUX4" value="DMIC0" />
+ </path>
+
+ <path name="unprocessed-hdr-mic-landscape">
+ <path name="handset-dual-dmic-quad-dec" />
+ <ctl name="TX_DEC1 Volume" value="108" />
+ <ctl name="TX_DEC2 Volume" value="84" />
+ <ctl name="TX_DEC3 Volume" value="108" />
+ <ctl name="TX_DEC4 Volume" value="84" />
+ </path>
+
+ <path name="unprocessed-hdr-mic-inverted-landscape">
+ <path name="handset-dual-dmic-quad-dec-reverse" />
+ <ctl name="TX_DEC1 Volume" value="108" />
+ <ctl name="TX_DEC2 Volume" value="84" />
+ <ctl name="TX_DEC3 Volume" value="108" />
+ <ctl name="TX_DEC4 Volume" value="84" />
+ </path>
+
+ <path name="handset-single-dmic-quad-dec">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DMIC MUX3" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="1" />
+ <ctl name="TX DMIC MUX4" value="DMIC0" />
+ </path>
+
+ <path name="unprocessed-hdr-mic-portrait">
+ <path name="handset-single-dmic-quad-dec" />
+ <ctl name="TX_DEC1 Volume" value="108" />
+ <ctl name="TX_DEC2 Volume" value="84" />
+ <ctl name="TX_DEC3 Volume" value="108" />
+ <ctl name="TX_DEC4 Volume" value="84" />
+ </path>
+
+ <path name="unprocessed-hdr-mic-inverted-portrait">
+ <path name="handset-single-dmic-quad-dec" />
+ <ctl name="TX_DEC1 Volume" value="108" />
+ <ctl name="TX_DEC2 Volume" value="84" />
+ <ctl name="TX_DEC3 Volume" value="108" />
+ <ctl name="TX_DEC4 Volume" value="84" />
+ </path>
+
+ <path name="camcorder-main-mic">
+ <path name="speaker-mic" />
+ </path>
+
+ <path name="camcorder-dual-mic">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="camcorder-quad-mic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <!-- TTY devices -->
+
+ <path name="tty-headphones">
+ <ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="1" />
+ <ctl name="HPHL_COMP" value="1" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ </path>
+
+ <path name="voice-tty-full-headphones">
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-full-headset">
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-vco-headphones">
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-vco-headset">
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-hco-handset">
+ <path name="handset" />
+ </path>
+
+
+ <path name="voice-tty-hco-handset-hdk">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-tty-full-headset-mic">
+ <path name="amic2" />
+ <ctl name="ADC2 Volume" value="0" />
+ <ctl name="TX_DEC0 Volume" value="84" />
+ </path>
+
+ <path name="voice-tty-hco-headset-mic">
+ <ctl name="TX DEC6 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX6" value="SWR_MIC5" />
+ <ctl name="TX_AIF1_CAP Mixer DEC6" value="1" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC2" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="MBHC ChMap" value="SWRM_TX3_CH3" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="BCS Channel" value="CH10" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="AMIC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="voice-tty-vco-handset-mic">
+ <path name="dmic4" />
+ </path>
+
+ <path name="unprocessed-handset-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="unprocessed-mic">
+ <path name="unprocessed-handset-mic" />
+ </path>
+
+ <path name="unprocessed-stereo-mic">
+ <path name="voice-rec-dmic-ef" />
+ </path>
+
+ <path name="unprocessed-three-mic">
+ <path name="three-mic" />
+ </path>
+
+ <path name="unprocessed-quad-mic">
+ <path name="quad-mic" />
+ </path>
+
+ <path name="unprocessed-headset-mic">
+ <path name="headset-mic" />
+ </path>
+
+</mixer>
diff --git a/configs/crow/mixer_paths_crow_idp_wcd9395_wcd_dmic.xml b/configs/crow/mixer_paths_crow_idp_wcd9395_wcd_dmic.xml
new file mode 100644
index 0000000..95c4df0
--- /dev/null
+++ b/configs/crow/mixer_paths_crow_idp_wcd9395_wcd_dmic.xml
@@ -0,0 +1,1400 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Copyright (c) 2015-2021, 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.
+
+* Changes from Qualcomm Innovation Center are provided under the following license:
+*
+* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted (subject to the limitations in the
+* disclaimer below) 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 Qualcomm Innovation Center, Inc. nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+* IN NO EVENT SHALL THE COPYRIGHT HOLDER 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="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="0" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="0" />
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_1" value="0" />
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_2" value="0" />
+
+ <!-- Codec controls -->
+ <!-- WSA controls -->
+ <ctl name="WSA RX0 MUX" value="ZERO" />
+ <ctl name="WSA RX1 MUX" value="ZERO" />
+ <ctl name="WSA_RX0 INP0" value="ZERO" />
+ <ctl name="WSA_RX1 INP0" value="ZERO" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="0" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="0" />
+ <ctl name="WSA SPKRRECV" value="0" />
+ <ctl name="WSA PBR Enable" value="0" />
+ <ctl name="Idle Detect" value="0" />
+ <ctl name="SpkrLeft COMP Switch" value="0" />
+ <ctl name="SpkrRight COMP Switch" value="0" />
+ <ctl name="SpkrLeft VISENSE Switch" value="0" />
+ <ctl name="SpkrRight VISENSE Switch" value="0" />
+ <ctl name="SpkrLeft CPS Switch" value="0" />
+ <ctl name="SpkrRight CPS Switch" value="0" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="0" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="0" />
+ <ctl name="SpkrLeft PBR Switch" value="0" />
+ <ctl name="SpkrRight PBR Switch" value="0" />
+ <ctl name="SpkrLeft WSA MODE" value="0" />
+ <ctl name="SpkrRight WSA MODE" value="0" />
+
+ <!-- RX Controls -->
+ <ctl name="RX_MACRO RX0 MUX" value="ZERO" />
+ <ctl name="RX_MACRO RX1 MUX" value="ZERO" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT0_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT0_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX INT0 DEM MUX" value="NORMAL_DSM_OUT" />
+ <ctl name="RX INT1 DEM MUX" value="NORMAL_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="0" />
+ <ctl name="RX_COMP2 Switch" value="0" />
+ <ctl name="HPHL_COMP Switch" value="0" />
+ <ctl name="HPHR_COMP Switch" value="0" />
+ <ctl name="EAR_RDAC Switch" value="0" />
+ <ctl name="HPHL_RDAC Switch" value="0" />
+ <ctl name="HPHR_RDAC Switch" value="0" />
+ <ctl name="AUX_RDAC Switch" value="0" />
+ <ctl name="RX_FIR Filter" value="OFF" />
+ <ctl name="RX_EAR Mode" value="OFF" />
+
+ <!-- TX Controls -->
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="0" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="0" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="0" />
+ <ctl name="VA_AIF1_CAP Mixer DEC3" value="0" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC2 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC3 MUX" value="SWR_MIC" />
+ <ctl name="VA DMIC MUX0" value="ZERO" />
+ <ctl name="VA DMIC MUX1" value="ZERO" />
+ <ctl name="VA DMIC MUX2" value="ZERO" />
+ <ctl name="VA DMIC MUX3" value="ZERO" />
+ <ctl name="VA SMIC MUX0" value="ZERO" />
+ <ctl name="VA SMIC MUX1" value="ZERO" />
+ <ctl name="VA SMIC MUX2" value="ZERO" />
+ <ctl name="VA SMIC MUX3" value="ZERO" />
+ <ctl name="VA_DEC0 MODE" value="ADC_DEFAULT" />
+ <ctl name="ADC2_BCS Disable" value="0" />
+ <ctl name="ADC1_MIXER Switch" value="0" />
+ <ctl name="ADC2_MIXER Switch" value="0" />
+ <ctl name="ADC3_MIXER Switch" value="0" />
+ <ctl name="ADC4_MIXER Switch" value="0" />
+ <ctl name="ADC2 MUX" value="INP2" />
+ <ctl name="DEC0_BCS Switch" value="0" />
+ <ctl name="ADC2_BCS Disable" value="0" />
+ <ctl name="ADC3 MUX" value="INP4" />
+ <ctl name="ADC4 MUX" value="INP5" />
+ <ctl name="VA_AMIC1_MIXER Switch" value="0" />
+ <ctl name="VA_AMIC2_MIXER Switch" value="0" />
+ <ctl name="VA_AMIC3_MIXER Switch" value="0" />
+ <ctl name="VA_AMIC4_MIXER Switch" value="0" />
+ <ctl name="VA_AMIC5_MIXER Switch" value="0" />
+ <ctl name="AMIC1_MIXER Switch" value="0" />
+ <ctl name="AMIC2_MIXER Switch" value="0" />
+ <ctl name="AMIC3_MIXER Switch" value="0" />
+ <ctl name="AMIC4_MIXER Switch" value="0" />
+ <ctl name="AMIC5_MIXER Switch" value="0" />
+
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC5" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC6" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC7" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC0" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC1" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC2" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC3" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC4" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC5" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC6" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC7" value="0" />
+ <ctl name="TX DEC0 MUX" value="SWR_MIC" />
+ <ctl name="TX DMIC MUX0" value="ZERO" />
+ <ctl name="TX SMIC MUX0" value="ZERO" />
+ <ctl name="TX DEC1 MUX" value="SWR_MIC" />
+ <ctl name="TX DMIC MUX1" value="ZERO" />
+ <ctl name="TX SMIC MUX1" value="ZERO" />
+ <ctl name="TX DEC2 MUX" value="SWR_MIC" />
+ <ctl name="TX DMIC MUX2" value="ZERO" />
+ <ctl name="TX SMIC MUX2" value="ZERO" />
+ <ctl name="TX DEC3 MUX" value="SWR_MIC" />
+ <ctl name="TX DMIC MUX3" value="ZERO" />
+ <ctl name="TX SMIC MUX3" value="ZERO" />
+ <ctl name="TX DEC4 MUX" value="SWR_MIC" />
+ <ctl name="TX DMIC MUX4" value="ZERO" />
+ <ctl name="TX SMIC MUX4" value="ZERO" />
+ <ctl name="TX DEC5 MUX" value="SWR_MIC" />
+ <ctl name="TX DMIC MUX5" value="ZERO" />
+ <ctl name="TX SMIC MUX5" value="ZERO" />
+ <ctl name="TX DEC6 MUX" value="SWR_MIC" />
+ <ctl name="TX DMIC MUX6" value="ZERO" />
+ <ctl name="TX SMIC MUX6" value="ZERO" />
+ <ctl name="TX DEC7 MUX" value="SWR_MIC" />
+ <ctl name="TX DMIC MUX7" value="ZERO" />
+ <ctl name="TX SMIC MUX7" value="ZERO" />
+ <ctl name="ADC1 ChMap" value="ZERO" />
+ <ctl name="ADC2 ChMap" value="ZERO" />
+ <ctl name="ADC3 ChMap" value="ZERO" />
+ <ctl name="ADC4 ChMap" value="ZERO" />
+ <ctl name="TX0 MODE" value="ADC_NORMAL" />
+ <ctl name="TX1 MODE" value="ADC_NORMAL" />
+ <ctl name="TX2 MODE" value="ADC_NORMAL" />
+ <ctl name="TX3 MODE" value="ADC_NORMAL" />
+
+ <!-- Volume controls -->
+ <ctl name="WSA_RX0 Digital Volume" value="84" />
+ <ctl name="WSA_RX1 Digital Volume" value="84" />
+ <ctl name="RX_RX0 Digital Volume" value="84" />
+ <ctl name="RX_RX1 Digital Volume" value="84" />
+ <ctl name="RX_RX2 Digital Volume" value="84" />
+ <ctl name="HPHL Volume" value="20" />
+ <ctl name="HPHR Volume" value="20" />
+
+ <ctl name="TX_DEC0 Volume" value="102" />
+ <ctl name="TX_DEC1 Volume" value="114" />
+ <ctl name="TX_DEC2 Volume" value="114" />
+ <ctl name="TX_DEC3 Volume" value="114" />
+ <ctl name="TX_DEC4 Volume" value="144" />
+ <ctl name="TX_DEC5 Volume" value="84" />
+ <ctl name="TX_DEC6 Volume" value="84" />
+ <ctl name="TX_DEC7 Volume" value="84" />
+
+ <ctl name="ADC1 Volume" value="12" />
+ <ctl name="ADC2 Volume" value="12" />
+ <ctl name="ADC3 Volume" value="12" />
+
+ <ctl name="VA_DEC0 Volume" value="84" />
+ <ctl name="VA_DEC1 Volume" value="84" />
+ <ctl name="VA_DEC2 Volume" value="84" />
+ <ctl name="VA_DEC3 Volume" value="84" />
+
+ <!-- Compander controls -->
+ <ctl name="WSA_COMP1 Switch" value="0" />
+ <ctl name="WSA_COMP2 Switch" value="0" />
+
+ <!-- Headphone class-H mode -->
+ <ctl name="RX_HPH_PWR_MODE" value="ULP" />
+ <ctl name="RX HPH Mode" value="CLS_H_ULP" />
+
+ <!-- IIR/voice anc -->
+ <ctl name="IIR0 Band1" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Band2" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Band3" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Band4" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Band5" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Enable Band1" value="0" />
+ <ctl name="IIR0 Enable Band2" value="0" />
+ <ctl name="IIR0 Enable Band3" value="0" />
+ <ctl name="IIR0 Enable Band4" value="0" />
+ <ctl name="IIR0 Enable Band5" value="0" />
+ <ctl name="IIR0 INP0 Volume" value="54" />
+ <ctl name="IIR0 INP0 MUX" value="ZERO" />
+ <ctl name="IIR0 INP1 MUX" value="ZERO" />
+ <ctl name="IIR0 INP2 MUX" value="ZERO" />
+ <ctl name="IIR0 INP3 MUX" value="ZERO" />
+
+ <!-- vbat related data -->
+ <ctl name="GSM mode Enable" value="OFF" />
+ <ctl name="WSA_Softclip0 Enable" value="0" />
+ <ctl name="WSA_Softclip1 Enable" value="0" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="0" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="0" />
+
+ <!-- Codec controls end -->
+
+ <!-- defaults for mmap record -->
+
+ <!-- HIFI Filter coefficients for headphones path -->
+ <path name="hifi-filter-coefficients">
+ <ctl name="RX0 FIR Coeff Num" value="8" />
+ <ctl name="RX0 FIR Coeff Group0" value="08 00 00 00 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
+ <ctl name="RX0 FIR Coeff Group1" value="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
+ <ctl name="RX1 FIR Coeff Num" value="8" />
+ <ctl name="RX1 FIR Coeff Group0" value="08 00 00 00 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
+ <ctl name="RX1 FIR Coeff Group1" value="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
+ </path>
+
+ <!-- These are audio route (FE to BE) specific mixer settings -->
+ <path name="gsm-mode">
+ <ctl name="GSM mode Enable" value="ON" />
+ </path>
+
+
+ <!-- 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="SWR_MIC5" />
+ <ctl name="DEC0_BCS Switch" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC2" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="MBHC ChMap" value="SWRM_TX1_CH3" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="BCS Channel" value="CH2" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="AMIC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="dmic0">
+ <ctl name="TX DEC0 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX0" value="SWR_MIC8" />
+ <ctl name="DMIC0 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="DMIC0_MIXER Switch" value="1" />
+ </path>
+
+ <path name="dmic1">
+ <ctl name="TX DEC0 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX0" value="SWR_MIC8" />
+ <ctl name="DMIC1 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="DMIC1_MIXER Switch" value="1" />
+ </path>
+
+ <path name="dmic2">
+ <ctl name="TX DEC0 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX0" value="SWR_MIC8" />
+ <ctl name="DMIC2 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="DMIC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="dmic3">
+ <ctl name="TX DEC0 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX0" value="SWR_MIC0" />
+ <ctl name="DMIC3 ChMap" value="SWRM_TX1_CH1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="DMIC3_MIXER Switch" value="1" />
+ </path>
+
+ <path name="dmic4">
+ <ctl name="TX DEC0 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX0" value="SWR_MIC8" />
+ <ctl name="DMIC4 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="DMIC4_MIXER Switch" value="1" />
+ <ctl name="TX_DEC0 Volume" value="102" />
+ </path>
+
+
+
+ <path name="speaker">
+ <ctl name="WSA RX0 MUX" value="AIF1_PB" />
+ <ctl name="WSA RX1 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX0 INP0" value="RX0" />
+ <ctl name="WSA_RX1 INP0" value="RX1" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="WSA_COMP2 Switch" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft CPS Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrRight COMP Switch" value="1" />
+ <ctl name="SpkrRight VISENSE Switch" value="1" />
+ <ctl name="SpkrRight CPS Switch" value="1" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrLeft PBR Switch" value="1" />
+ <ctl name="SpkrRight PBR Switch" value="1" />
+ <ctl name="WSA PBR Enable" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ </path>
+
+ <path name="haptics-dev">
+ <ctl name="SWR DAC_Port Switch" value="1" />
+ </path>
+
+ <path name="speaker-mono">
+ <ctl name="WSA RX0 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX0 INP0" value="RX0" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft CPS Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrLeft PBR Switch" value="1" />
+ <ctl name="WSA PBR Enable" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ </path>
+
+ <path name="speaker-mono-2">
+ <ctl name="WSA RX1 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX1 INP0" value="RX1" />
+ <ctl name="WSA_COMP2 Switch" value="1" />
+ <ctl name="SpkrRight COMP Switch" value="1" />
+ <ctl name="SpkrRight VISENSE Switch" value="1" />
+ <ctl name="SpkrRight CPS Switch" value="1" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrRight PBR Switch" value="1" />
+ <ctl name="WSA PBR Enable" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ </path>
+
+ <path name="speaker-mono-vbat">
+ <path name="speaker-mono" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="speaker-mono-2-vbat">
+ <path name="speaker-mono-2" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="speaker-vbat">
+ <path name="speaker" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="speaker-hdk">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="speaker-fluid">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="speaker-liquid">
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-safe">
+ <path name="speaker-mono"/>
+ </path>
+
+ <path name="speaker-hdk-vbat">
+ <path name="speaker-mono-vbat" />
+ </path>
+
+ <path name="speaker-fluid-vbat">
+ <path name="speaker-mono-vbat" />
+ </path>
+
+ <path name="speaker-liquid-vbat">
+ <path name="speaker-vbat" />
+ </path>
+
+ <path name="speaker-safe-vbat">
+ <path name="speaker-mono-vbat"/>
+ </path>
+
+ <path name="sidetone-iir">
+ <ctl name="IIR0 Enable Band1" value="1" />
+ <ctl name="IIR0 Enable Band2" value="1" />
+ <ctl name="IIR0 Enable Band3" value="1" />
+ <ctl name="IIR0 Enable Band4" value="1" />
+ <ctl name="IIR0 Enable Band5" value="1" />
+ </path>
+
+ <path name="sidetone-headphones">
+ <path name="sidetone-iir" />
+ <ctl name="IIR0 INP0 Volume" value="54" />
+ <ctl name="IIR0 INP0 MUX" value="DEC0" />
+ <ctl name="RX INT0 MIX2 INP" value="SRC0" />
+ <ctl name="RX INT1 MIX2 INP" value="SRC0" />
+ </path>
+
+ <path name="sidetone-handset">
+ <path name="sidetone-iir" />
+ <ctl name="IIR0 INP0 Volume" value="0" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ <ctl name="RX INT2 MIX2 INP" value="SRC0" />
+ <ctl name="WSA_RX0 INT0 SIDETONE MIX" value="SRC0" />
+ </path>
+
+ <path name="sidetone-heaphone-handset-mic">
+ <path name="sidetone-iir" />
+ <ctl name="IIR0 INP0 Volume" value="0" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ <ctl name="RX INT0 MIX2 INP" value="SRC0" />
+ <ctl name="RX INT1 MIX2 INP" value="SRC0" />
+ </path>
+
+ <path name="afe-sidetone">
+ </path>
+
+ <path name="play-fm">
+ </path>
+
+ <path name="speaker-mic">
+ <path name="dmic0" />
+ </path>
+
+ <path name="speaker-mic-liquid">
+ <path name="dmic0" />
+ </path>
+
+ <path name="speaker-mic-sbc">
+ </path>
+
+ <path name="speaker-protected">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ <path name="speaker" />
+ </path>
+
+ <path name="voice-speaker-protected">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-2-protected">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ <path name="speaker-mono-2" />
+ </path>
+
+ <path name="voice-speaker-stereo-protected">
+ <path name="speaker-protected" />
+ </path>
+
+ <path name="speaker-protected-vbat">
+ <path name="speaker-protected" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="voice-speaker-protected-vbat">
+ <path name="voice-speaker-protected" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="voice-speaker-2-protected-vbat">
+ <path name="voice-speaker-2-protected" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="voice-speaker-stereo-protected-vbat">
+ <path name="speaker-protected-vbat" />
+ </path>
+
+ <path name="vi-feedback">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ </path>
+
+ <path name="vi-feedback-mono-1">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ </path>
+
+ <path name="vi-feedback-mono-2">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ </path>
+
+ <path name="cps-feedback">
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_1" value="1" />
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_2" value="1" />
+ </path>
+
+ <path name="cps-feedback-mono-1">
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_1" value="1" />
+ </path>
+
+ <path name="cps-feedback-mono-2">
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_2" value="1" />
+ </path>
+
+ <path name="handset">
+ <ctl name="WSA RX0 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX0 INP0" value="RX0" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft CPS Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="WSA_RX0 Digital Volume" value="70" />
+ </path>
+
+ <path name="handset-vbat">
+ <path name="handset" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="handset-mic">
+ <path name="dmic2" />
+ </path>
+
+ <path name="handset-mic-unprocessed">
+ <path name="dmic2" />
+ <ctl name="TX_DEC2 Volume" value="102" />
+ </path>
+
+ <path name="ultrasound-handset">
+ <ctl name="WSA RX_MIX0 MUX" value="AIF_MIX1_PB" />
+ <ctl name="WSA_RX0 MIX INP" value="RX_MIX0" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="WSA PBR Enable" value="1" />
+ <ctl name="WSA_RX0 Digital Volume" value="50" />
+ </path>
+
+ <path name="ultrasound-handset-vbat">
+ <path name="ultrasound-handset" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="ultrasound-mic">
+ <ctl name="TX_AIF2_CAP Mixer DEC4" value="1" />
+ <ctl name="TX DMIC MUX4" value="DMIC2" />
+ </path>
+
+ <path name="headphones">
+ <ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
+ <ctl name="RX_MACRO RX1 MUX" value="AIF1_PB" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="RX1" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="1" />
+ <ctl name="RX_COMP2 Switch" value="1" />
+ <ctl name="HPHL_COMP Switch" value="1" />
+ <ctl name="HPHR_COMP Switch" value="1" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ <ctl name="HPHR_RDAC Switch" value="1" />
+ </path>
+
+ <path name="headphones-and-haptics">
+ <ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
+ <ctl name="RX_MACRO RX1 MUX" value="AIF1_PB" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="RX1" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="1" />
+ <ctl name="RX_COMP2 Switch" value="1" />
+ <ctl name="HPHL_COMP Switch" value="1" />
+ <ctl name="HPHR_COMP Switch" value="1" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ <ctl name="HPHR_RDAC Switch" value="1" />
+ <ctl name="SWR DAC_Port Switch" value="1" />
+ </path>
+
+ <path name="headphones-44.1">
+ <path name="headphones" />
+ </path>
+
+ <path name="headphones-hifi-filter">
+ <ctl name="RX_FIR Filter" value="ON" />
+ <path name="headphones" />
+ </path>
+
+ <path name="hph-highquality-mode">
+ </path>
+
+ <path name="hph-lowpower-mode">
+ </path>
+
+ <path name="true-native-mode">
+ </path>
+
+ <path name="line">
+ <path name="headphones" />
+ </path>
+
+ <path name="headset-mic">
+ <ctl name="TX_DEC0 Volume" value="84" />
+ <path name="amic2" />
+ </path>
+
+ <path name="headset-mic-liquid">
+ <path name="amic2" />
+ </path>
+ <path name="voice-handset">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-tmus">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-hac">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-hdk">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-tmus-hdk">
+ <path name="handset" />
+ </path>
+ <path name="voice-speaker">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-stereo">
+ <path name="speaker" />
+ </path>
+
+ <path name="voice-speaker-2">
+ <path name="speaker-mono-2" />
+ </path>
+
+ <path name="voice-speaker-hdk">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-fluid">
+ <path name="speaker-fluid" />
+ </path>
+
+ <path name="voice-speaker-vbat">
+ <path name="speaker-mono-vbat" />
+ </path>
+
+ <path name="voice-speaker-stereo-vbat">
+ <path name="speaker-vbat" />
+ </path>
+
+ <path name="voice-speaker-2-vbat">
+ <path name="speaker-mono-2-vbat" />
+ </path>
+
+ <path name="voice-speaker-hdk-vbat">
+ <path name="speaker-mono-vbat" />
+ </path>
+
+ <path name="voice-speaker-fluid-vbat">
+ <path name="speaker-fluid-vbat" />
+ </path>
+
+ <path name="voice-speaker-mic">
+ <path name="speaker-mic" />
+ </path>
+
+ <path name="voice-headphones">
+ <path name="headphones" />
+ </path>
+
+ <path name="voice-headset">
+ <path name="headphones" />
+ </path>
+
+ <path name="voice-line">
+ <path name="voice-headphones" />
+ </path>
+
+ <path name="voice-headset-mic">
+ <path name="headset-mic" />
+ </path>
+
+ <path name="speaker-and-headphones">
+ <path name="headphones" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-and-headphones-hifi-filter">
+ <path name="headphones-hifi-filter" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-safe-and-headphones">
+ <path name="headphones" />
+ <path name="speaker-safe" />
+ </path>
+
+ <path name="speaker-and-line">
+ <path name="speaker-and-headphones" />
+ </path>
+
+ <path name="speaker-and-headphones-liquid">
+ <path name="headphones" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-and-line-liquid">
+ <path name="speaker-and-headphones-liquid" />
+ </path>
+
+ <path name="usb-headphones">
+ </path>
+
+ <path name="usb-headset">
+ </path>
+
+ <path name="afe-proxy">
+ </path>
+
+ <path name="echo-ref-record">
+ </path>
+
+ <path name="display-port">
+ </path>
+
+ <path name="display-port1">
+ </path>
+
+ <path name="speaker-and-usb-headphones">
+ <path name="speaker" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="speaker-safe-and-usb-headphones">
+ <path name="speaker-safe" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="speaker-and-display-port">
+ <path name="speaker" />
+ <path name="display-port" />
+ </path>
+
+ <path name="speaker-and-display-port1">
+ <path name="speaker" />
+ <path name="display-port1" />
+ </path>
+
+ <path name="voice-rec-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="bt-sco">
+ </path>
+
+ <path name="bt-sco-mic">
+ </path>
+
+ <path name="bt-sco-wb">
+ </path>
+
+ <path name="bt-sco-mic-wb">
+ </path>
+
+ <path name="bt-sco-swb">
+ </path>
+
+ <path name="bt-sco-mic-swb">
+ </path>
+
+ <path name="bt-a2dp">
+ </path>
+
+ <path name="bt-a2dp-mic">
+ </path>
+
+ <path name="bt-ble">
+ </path>
+
+ <path name="bt-ble-mic">
+ </path>
+
+ <path name="usb-headset-mic">
+ </path>
+
+ <path name="capture-fm">
+ </path>
+
+ <!-- The below mixer-control setup for ext_ec_ref_tx is for CODEC_DMA internal testing purpose only, needs to be empty if TDM/MI2S -->
+ <path name="ext_ec_ref_tx">
+ <ctl name="WSA RX_MIX EC0_MUX" value="RX_MIX_TX0" />
+ <ctl name="WSA RX_MIX EC1_MUX" value="RX_MIX_TX1" />
+ </path>
+
+ <path name="va-mic-mono">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC3" />
+ <ctl name="DMIC3 ChMap" value="SWRM_TX1_CH4" />
+ <ctl name="DMIC3_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-dmic">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC3" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC0" />
+ <ctl name="DMIC0 ChMap" value="SWRM_TX1_CH2" />
+ <ctl name="DMIC3 ChMap" value="SWRM_TX1_CH1" />
+ <ctl name="DMIC0_MIXER Switch" value="1" />
+ <ctl name="DMIC3_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-tmic">
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC2 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX2" value="SWR_MIC7" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC8" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC10" />
+ <ctl name="DMIC0 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="DMIC2 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="DMIC3 ChMap" value="SWRM_TX3_CH3" />
+ <ctl name="DMIC0_MIXER Switch" value="1" />
+ <ctl name="DMIC2_MIXER Switch" value="1" />
+ <ctl name="DMIC3_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-qmic">
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC2 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC3 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC8" />
+ <ctl name="VA SMIC MUX2" value="SWR_MIC7" />
+ <ctl name="VA SMIC MUX3" value="SWR_MIC9" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC11" />
+ <ctl name="DMIC2 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="DMIC4 ChMap" value="SWRM_TX2_CH4" />
+ <ctl name="DMIC1 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="DMIC3 ChMap" value="SWRM_TX3_CH4" />
+ <ctl name="DMIC2_MIXER Switch" value="1" />
+ <ctl name="DMIC4_MIXER Switch" value="1" />
+ <ctl name="DMIC1_MIXER Switch" value="1" />
+ <ctl name="DMIC3_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic">
+ <path name="va-mic-mono" />
+ </path>
+
+ <path name="va-mic-mono-lpi">
+ <ctl name="LPI Enable" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC3" />
+ <ctl name="DMIC3 ChMap" value="SWRM_TX1_CH4" />
+ <ctl name="DMIC3_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-dmic-lpi">
+ <ctl name="LPI Enable" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC3" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC0" />
+ <ctl name="DMIC0 ChMap" value="SWRM_TX1_CH2" />
+ <ctl name="DMIC3 ChMap" value="SWRM_TX1_CH1" />
+ <ctl name="DMIC0_MIXER Switch" value="1" />
+ <ctl name="DMIC3_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-tmic-lpi">
+ <ctl name="LPI Enable" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC2 MUX" value="SWR_MIC" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC2 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC4" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC8" />
+ <ctl name="VA SMIC MUX2" value="SWR_MIC5" />
+ <ctl name="DMIC2 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="DMIC0 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="DMIC3 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="DMIC2_MIXER Switch" value="1" />
+ <ctl name="DMIC0_MIXER Switch" value="1" />
+ <ctl name="DMIC3_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-qmic-lpi">
+ <ctl name="LPI Enable" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC3 MUX" value="SWR_MIC" />
+ <ctl name="VA_DEC2 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC3 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA DEC2 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC4" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC8" />
+ <ctl name="VA SMIC MUX3" value="SWR_MIC5" />
+ <ctl name="VA SMIC MUX2" value="SWR_MIC9" />
+ <ctl name="DMIC2 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="DMIC0 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="DMIC4 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="DMIC3 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="DMIC2_MIXER Switch" value="1" />
+ <ctl name="DMIC0_MIXER Switch" value="1" />
+ <ctl name="DMIC4_MIXER Switch" value="1" />
+ <ctl name="DMIC3_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-lpi">
+ <path name="va-mic-mono-lpi" />
+ </path>
+
+ <path name="headset-va-mic-lpi">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC5" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC2" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC2_BCS Disable" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="headset-va-mic">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC5" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="ADC2 MUX" value="CH2_AMIC2" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC2_BCS Disable" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="lpi-pcm-logging">
+ <ctl name="LPI PCM Logging Enable" value="1" />
+ </path>
+
+ <!-- Dual MIC devices -->
+ <path name="handset-dmic-endfire">
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DEC0 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC1 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX0" value="SWR_MIC3" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC0" />
+ <ctl name="DMIC0 ChMap" value="SWRM_TX1_CH2" />
+ <ctl name="DMIC3 ChMap" value="SWRM_TX1_CH1" />
+ <ctl name="DMIC0_MIXER Switch" value="1" />
+ <ctl name="DMIC3_MIXER Switch" value="1" />
+ <ctl name="TX_DEC0 Volume" value="102" />
+ <ctl name="TX_DEC1 Volume" value="102" />
+ </path>
+
+ <path name="speaker-dmic-endfire">
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DEC0 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC1 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX0" value="SWR_MIC3" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC0" />
+ <ctl name="DMIC0 ChMap" value="SWRM_TX1_CH2" />
+ <ctl name="DMIC3 ChMap" value="SWRM_TX1_CH1" />
+ <ctl name="DMIC0_MIXER Switch" value="1" />
+ <ctl name="DMIC3_MIXER Switch" value="1" />
+ <ctl name="TX_DEC0 Volume" value="102" />
+ <ctl name="TX_DEC1 Volume" value="102" />
+ </path>
+
+ <path name="dmic-endfire">
+ <path name="handset-dmic-endfire" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ </path>
+
+ <path name="dmic-endfire-liquid">
+ <path name="handset-dmic-endfire" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ </path>
+
+ <path name="handset-stereo-dmic-ef">
+ <path name="handset-dmic-endfire" />
+ </path>
+
+ <path name="speaker-stereo-dmic-ef">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef-tmus">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-speaker-dmic-ef">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-rec-dmic-ef">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-fluence">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="hearing-aid-mic">
+ <path name="voice-speaker-mic"/>
+ </path>
+
+ <path name="handset-stereo-dmic-ef-liquid">
+ <path name="handset-dmic-endfire" />
+ </path>
+
+ <path name="speaker-stereo-dmic-ef-liquid">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef-liquid-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-speaker-dmic-ef-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-fluence-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="speaker-dmic-broadside">
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DEC0 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC1 MUX" value="SWR_MIC" />
+ <ctl name="TX_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="TX_DEC1 MODE" value="ADC_LOW_PWR" />
+ <ctl name="TX SMIC MUX0" value="SWR_MIC4" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC8" />
+ <ctl name="DMIC0 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="DMIC3 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="TX_DMIC0_MIXER Switch" value="1" />
+ <ctl name="TX_DMIC4_MIXER Switch" value="1" />
+ </path>
+
+ <path name="dmic-broadside">
+ <path name="speaker-dmic-broadside" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ </path>
+
+ <path name="voice-speaker-dmic-broadside">
+ <path name="dmic-broadside" />
+ </path>
+
+ <!-- Tri MIC devices -->
+
+ <path name="three-mic">
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC2 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX2" value="SWR_MIC7" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC8" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC10" />
+ <ctl name="DMIC0 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="DMIC2 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="DMIC3 ChMap" value="SWRM_TX3_CH3" />
+ <ctl name="DMIC0_MIXER Switch" value="1" />
+ <ctl name="DMIC2_MIXER Switch" value="1" />
+ <ctl name="DMIC3_MIXER Switch" value="1" />
+ </path>
+
+ <path name="speaker-tmic">
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC2 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX2" value="SWR_MIC7" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC8" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC10" />
+ <ctl name="DMIC0 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="DMIC2 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="DMIC3 ChMap" value="SWRM_TX3_CH3" />
+ <ctl name="DMIC0_MIXER Switch" value="1" />
+ <ctl name="DMIC2_MIXER Switch" value="1" />
+ <ctl name="DMIC3_MIXER Switch" value="1" />
+ </path>
+
+ <path name="voice-speaker-tmic">
+ <path name="speaker-tmic" />
+ </path>
+
+ <!-- Quad MIC devices -->
+
+ <path name="speaker-qmic">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="TX DEC1 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC2 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC3 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC0 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC8" />
+ <ctl name="TX SMIC MUX2" value="SWR_MIC7" />
+ <ctl name="TX SMIC MUX3" value="SWR_MIC9" />
+ <ctl name="TX SMIC MUX0" value="SWR_MIC11" />
+ <ctl name="DMIC2 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="DMIC4 ChMap" value="SWRM_TX2_CH4" />
+ <ctl name="DMIC1 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="DMIC3 ChMap" value="SWRM_TX3_CH4" />
+ <ctl name="DMIC2_MIXER Switch" value="1" />
+ <ctl name="DMIC4_MIXER Switch" value="1" />
+ <ctl name="DMIC1_MIXER Switch" value="1" />
+ <ctl name="DMIC3_MIXER Switch" value="1" />
+ <ctl name="TX_DEC0 Volume" value="102" />
+ <ctl name="TX_DEC1 Volume" value="102" />
+ <ctl name="TX_DEC2 Volume" value="102" />
+ <ctl name="TX_DEC3 Volume" value="102" />
+ </path>
+
+ <path name="speaker-qmic-liquid">
+ </path>
+
+ <path name="voice-speaker-qmic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <path name="quad-mic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <path name="voice-speaker-qmic-liquid">
+ <path name="speaker-qmic-liquid" />
+ </path>
+
+ <path name="quad-mic-liquid">
+ <path name="speaker-qmic-liquid" />
+ </path>
+
+ <path name="handset-dual-dmic-quad-dec">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DMIC MUX3" value="DMIC2" />
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="1" />
+ <ctl name="TX DMIC MUX4" value="DMIC2" />
+ </path>
+
+ <path name="handset-dual-dmic-quad-dec-reverse">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DMIC MUX3" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="1" />
+ <ctl name="TX DMIC MUX4" value="DMIC0" />
+ </path>
+
+ <path name="unprocessed-hdr-mic-landscape">
+ <path name="handset-dual-dmic-quad-dec" />
+ <ctl name="TX_DEC1 Volume" value="108" />
+ <ctl name="TX_DEC2 Volume" value="84" />
+ <ctl name="TX_DEC3 Volume" value="108" />
+ <ctl name="TX_DEC4 Volume" value="84" />
+ </path>
+
+ <path name="unprocessed-hdr-mic-inverted-landscape">
+ <path name="handset-dual-dmic-quad-dec-reverse" />
+ <ctl name="TX_DEC1 Volume" value="108" />
+ <ctl name="TX_DEC2 Volume" value="84" />
+ <ctl name="TX_DEC3 Volume" value="108" />
+ <ctl name="TX_DEC4 Volume" value="84" />
+ </path>
+
+ <path name="handset-single-dmic-quad-dec">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX DMIC MUX1" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DMIC MUX3" value="DMIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="1" />
+ <ctl name="TX DMIC MUX4" value="DMIC0" />
+ </path>
+
+ <path name="unprocessed-hdr-mic-portrait">
+ <path name="handset-single-dmic-quad-dec" />
+ <ctl name="TX_DEC1 Volume" value="108" />
+ <ctl name="TX_DEC2 Volume" value="84" />
+ <ctl name="TX_DEC3 Volume" value="108" />
+ <ctl name="TX_DEC4 Volume" value="84" />
+ </path>
+
+ <path name="unprocessed-hdr-mic-inverted-portrait">
+ <path name="handset-single-dmic-quad-dec" />
+ <ctl name="TX_DEC1 Volume" value="108" />
+ <ctl name="TX_DEC2 Volume" value="84" />
+ <ctl name="TX_DEC3 Volume" value="108" />
+ <ctl name="TX_DEC4 Volume" value="84" />
+ </path>
+
+ <path name="camcorder-main-mic">
+ <path name="speaker-mic" />
+ </path>
+
+ <path name="camcorder-dual-mic">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="camcorder-quad-mic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <!-- TTY devices -->
+
+ <path name="tty-headphones">
+ <ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="1" />
+ <ctl name="HPHL_COMP Switch" value="1" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ </path>
+
+ <path name="voice-tty-full-headphones">
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-full-headset">
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-vco-headphones">
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-vco-headset">
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-hco-handset">
+ <path name="handset" />
+ </path>
+
+
+ <path name="voice-tty-hco-handset-hdk">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-tty-full-headset-mic">
+ <path name="amic2" />
+ <ctl name="ADC2 Volume" value="0" />
+ <ctl name="TX_DEC0 Volume" value="84" />
+ </path>
+
+ <path name="voice-tty-hco-headset-mic">
+ <ctl name="TX DEC6 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX6" value="SWR_MIC5" />
+ <ctl name="TX_AIF1_CAP Mixer DEC6" value="1" />
+ <ctl name="ADC2 MUX" value="INP2" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="MBHC ChMap" value="SWRM_TX3_CH3" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="BCS Channel" value="CH10" />
+ <ctl name="HDR12 MUX" value="NO_HDR12" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="AMIC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="voice-tty-vco-handset-mic">
+ <path name="dmic4" />
+ </path>
+
+ <path name="unprocessed-handset-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="unprocessed-mic">
+ <path name="unprocessed-handset-mic" />
+ </path>
+
+ <path name="unprocessed-stereo-mic">
+ <path name="voice-rec-dmic-ef" />
+ </path>
+
+ <path name="unprocessed-three-mic">
+ <path name="three-mic" />
+ </path>
+
+ <path name="unprocessed-quad-mic">
+ <path name="quad-mic" />
+ </path>
+
+ <path name="unprocessed-headset-mic">
+ <path name="headset-mic" />
+ </path>
+
+</mixer>
diff --git a/configs/crow/mixer_paths_crow_qrd.xml b/configs/crow/mixer_paths_crow_qrd.xml
new file mode 100644
index 0000000..d628c44
--- /dev/null
+++ b/configs/crow/mixer_paths_crow_qrd.xml
@@ -0,0 +1,1508 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Copyright (c) 2015-2021, 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.
+
+* Changes from Qualcomm Innovation Center are provided under the following license:
+*
+* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted (subject to the limitations in the
+* disclaimer below) 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 Qualcomm Innovation Center, Inc. nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+* IN NO EVENT SHALL THE COPYRIGHT HOLDER 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="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="0" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="0" />
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_1" value="0" />
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_2" value="0" />
+
+ <!-- WSA controls -->
+ <ctl name="WSA RX0 MUX" value="ZERO" />
+ <ctl name="WSA RX1 MUX" value="ZERO" />
+ <ctl name="WSA_RX0 INP0" value="ZERO" />
+ <ctl name="WSA_RX1 INP0" value="ZERO" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="0" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="0" />
+ <ctl name="WSA PBR Enable" value="0" />
+ <ctl name="Idle Detect" value="0" />
+ <ctl name="WSA SPKRRECV" value="0" />
+ <ctl name="SpkrLeft COMP Switch" value="0" />
+ <ctl name="SpkrRight COMP Switch" value="0" />
+ <ctl name="SpkrLeft VISENSE Switch" value="0" />
+ <ctl name="SpkrRight VISENSE Switch" value="0" />
+ <ctl name="SpkrLeft CPS Switch" value="0" />
+ <ctl name="SpkrRight CPS Switch" value="0" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="0" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="0" />
+ <ctl name="SpkrLeft PBR Switch" value="0" />
+ <ctl name="SpkrRight PBR Switch" value="0" />
+ <ctl name="SpkrLeft WSA MODE" value="0" />
+ <ctl name="SpkrRight WSA MODE" value="0" />
+
+ <!-- RX Controls -->
+ <ctl name="RX_MACRO RX0 MUX" value="ZERO" />
+ <ctl name="RX_MACRO RX1 MUX" value="ZERO" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT0_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT0_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP1" value="ZERO" />
+ <ctl name="RX INT1_1 MIX1 INP2" value="ZERO" />
+ <ctl name="RX INT0 DEM MUX" value="NORMAL_DSM_OUT" />
+ <ctl name="RX INT1 DEM MUX" value="NORMAL_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="0" />
+ <ctl name="RX_COMP2 Switch" value="0" />
+ <ctl name="HPHL_COMP Switch" value="0" />
+ <ctl name="HPHR_COMP Switch" value="0" />
+ <ctl name="EAR_RDAC Switch" value="0" />
+ <ctl name="HPHL_RDAC Switch" value="0" />
+ <ctl name="HPHR_RDAC Switch" value="0" />
+ <ctl name="AUX_RDAC Switch" value="0" />
+ <ctl name="RX_FIR Filter" value="OFF" />
+ <ctl name="RX_EAR Mode" value="OFF" />
+
+ <!-- TX Controls -->
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="0" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="0" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="0" />
+ <ctl name="VA_AIF1_CAP Mixer DEC3" value="0" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC2 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC3 MUX" value="SWR_MIC" />
+ <ctl name="VA DMIC MUX0" value="ZERO" />
+ <ctl name="VA DMIC MUX1" value="ZERO" />
+ <ctl name="VA DMIC MUX2" value="ZERO" />
+ <ctl name="VA DMIC MUX3" value="ZERO" />
+ <ctl name="VA SMIC MUX0" value="ZERO" />
+ <ctl name="VA SMIC MUX1" value="ZERO" />
+ <ctl name="VA SMIC MUX2" value="ZERO" />
+ <ctl name="VA SMIC MUX3" value="ZERO" />
+ <ctl name="VA_DEC0 MODE" value="ADC_DEFAULT" />
+ <ctl name="ADC2_BCS Disable" value="0" />
+ <ctl name="ADC1_MIXER Switch" value="0" />
+ <ctl name="ADC2_MIXER Switch" value="0" />
+ <ctl name="ADC3_MIXER Switch" value="0" />
+ <ctl name="ADC4_MIXER Switch" value="0" />
+ <ctl name="ADC2 MUX" value="INP2" />
+ <ctl name="DEC0_BCS Switch" value="0" />
+ <ctl name="ADC2_BCS Disable" value="0" />
+ <ctl name="ADC3 MUX" value="INP4" />
+ <ctl name="ADC4 MUX" value="INP5" />
+ <ctl name="VA_AMIC1_MIXER Switch" value="0" />
+ <ctl name="VA_AMIC2_MIXER Switch" value="0" />
+ <ctl name="VA_AMIC3_MIXER Switch" value="0" />
+ <ctl name="VA_AMIC4_MIXER Switch" value="0" />
+ <ctl name="VA_AMIC5_MIXER Switch" value="0" />
+ <ctl name="AMIC1_MIXER Switch" value="0" />
+ <ctl name="AMIC2_MIXER Switch" value="0" />
+ <ctl name="AMIC3_MIXER Switch" value="0" />
+ <ctl name="AMIC4_MIXER Switch" value="0" />
+ <ctl name="AMIC5_MIXER Switch" value="0" />
+
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC5" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC6" value="0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC7" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC0" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC1" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC2" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC3" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC4" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC5" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC6" value="0" />
+ <ctl name="TX_AIF2_CAP Mixer DEC7" value="0" />
+ <ctl name="TX DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX0" value="ZERO" />
+ <ctl name="TX SMIC MUX0" value="ZERO" />
+ <ctl name="TX DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX1" value="ZERO" />
+ <ctl name="TX SMIC MUX1" value="ZERO" />
+ <ctl name="TX DEC2 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX2" value="ZERO" />
+ <ctl name="TX SMIC MUX2" value="ZERO" />
+ <ctl name="TX DEC3 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX3" value="ZERO" />
+ <ctl name="TX SMIC MUX3" value="ZERO" />
+ <ctl name="TX DEC4 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX4" value="ZERO" />
+ <ctl name="TX SMIC MUX4" value="ZERO" />
+ <ctl name="TX DEC5 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX5" value="ZERO" />
+ <ctl name="TX SMIC MUX5" value="ZERO" />
+ <ctl name="TX DEC6 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX6" value="ZERO" />
+ <ctl name="TX SMIC MUX6" value="ZERO" />
+ <ctl name="TX DEC7 MUX" value="MSM_DMIC" />
+ <ctl name="TX DMIC MUX7" value="ZERO" />
+ <ctl name="TX SMIC MUX7" value="ZERO" />
+
+ <!-- Volume controls -->
+ <ctl name="WSA_RX0 Digital Volume" value="84" />
+ <ctl name="WSA_RX1 Digital Volume" value="84" />
+ <ctl name="RX_RX0 Digital Volume" value="84" />
+ <ctl name="RX_RX1 Digital Volume" value="84" />
+ <ctl name="RX_RX2 Digital Volume" value="84" />
+ <ctl name="HPHL Volume" value="20" />
+ <ctl name="HPHR Volume" value="20" />
+
+ <ctl name="TX_DEC0 Volume" value="84" />
+ <ctl name="TX_DEC1 Volume" value="84" />
+ <ctl name="TX_DEC2 Volume" value="84" />
+ <ctl name="TX_DEC3 Volume" value="84" />
+ <ctl name="TX_DEC4 Volume" value="84" />
+ <ctl name="TX_DEC5 Volume" value="84" />
+ <ctl name="TX_DEC6 Volume" value="84" />
+ <ctl name="TX_DEC7 Volume" value="84" />
+
+ <ctl name="ADC1 Volume" value="12" />
+ <ctl name="ADC2 Volume" value="12" />
+ <ctl name="ADC3 Volume" value="12" />
+ <ctl name="ADC4 Volume" value="12" />
+
+ <ctl name="VA_DEC0 Volume" value="84" />
+ <ctl name="VA_DEC1 Volume" value="84" />
+ <ctl name="VA_DEC2 Volume" value="84" />
+ <ctl name="VA_DEC3 Volume" value="84" />
+
+ <!-- Compander controls -->
+ <ctl name="WSA_COMP1 Switch" value="0" />
+ <ctl name="WSA_COMP2 Switch" value="0" />
+
+ <!-- Headphone class-H mode -->
+ <ctl name="RX_HPH_PWR_MODE" value="ULP" />
+ <ctl name="RX HPH Mode" value="CLS_H_ULP" />
+
+ <!-- IIR/voice anc -->
+ <ctl name="IIR0 Band1" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Band2" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Band3" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Band4" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Band5" value="00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" />
+ <ctl name="IIR0 Enable Band1" value="0" />
+ <ctl name="IIR0 Enable Band2" value="0" />
+ <ctl name="IIR0 Enable Band3" value="0" />
+ <ctl name="IIR0 Enable Band4" value="0" />
+ <ctl name="IIR0 Enable Band5" value="0" />
+ <ctl name="IIR0 INP0 Volume" value="40" />
+ <ctl name="IIR0 INP0 MUX" value="ZERO" />
+ <ctl name="IIR0 INP1 MUX" value="ZERO" />
+ <ctl name="IIR0 INP2 MUX" value="ZERO" />
+ <ctl name="IIR0 INP3 MUX" value="ZERO" />
+
+ <!-- vbat related data -->
+ <ctl name="GSM mode Enable" value="OFF" />
+ <ctl name="WSA_Softclip0 Enable" value="0" />
+ <ctl name="WSA_Softclip1 Enable" value="0" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="0" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="0" />
+
+ <!-- Codec controls end -->
+
+ <!-- defaults for mmap record -->
+
+ <!-- HIFI Filter coefficients for headphones path -->
+ <path name="hifi-filter-coefficients">
+ <ctl name="RX0 FIR Coeff Num" value="8" />
+ <ctl name="RX0 FIR Coeff Group0" value="08 00 00 00 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
+ <ctl name="RX0 FIR Coeff Group1" value="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
+ <ctl name="RX1 FIR Coeff Num" value="8" />
+ <ctl name="RX1 FIR Coeff Group0" value="08 00 00 00 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 00 00 00 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
+ <ctl name="RX1 FIR Coeff Group1" value="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0" />
+ </path>
+
+ <!-- These are audio route (FE to BE) specific mixer settings -->
+ <path name="gsm-mode">
+ <ctl name="GSM mode Enable" value="ON" />
+ </path>
+
+
+ <!-- These are actual sound device specific mixer settings -->
+ <path name="amic1">
+ <ctl name="TX DEC1 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC0" />
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX1_CH1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ </path>
+
+ <path name="amic2">
+ <ctl name="TX DEC0 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX0" value="SWR_MIC5" />
+ <ctl name="DEC0_BCS Switch" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="ADC2 MUX" value="INP2" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="MBHC ChMap" value="SWRM_TX1_CH3" />
+ <ctl name="BCS Channel" value="CH2" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="amic3">
+ <ctl name="TX DEC2 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX2" value="SWR_MIC5" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC2 MUX" value="INP3" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="amic4">
+ <ctl name="TX DEC5 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX5" value="SWR_MIC8" />
+ <ctl name="TX_AIF1_CAP Mixer DEC5" value="1" />
+ <ctl name="ADC2 MUX" value="INP3" />
+ <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="ADC3_MIXER Switch" value="1" />
+ </path>
+
+ <path name="amic5">
+ <ctl name="TX DEC3 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX3" value="SWR_MIC9" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC4 MUX" value="INP5" />
+ <ctl name="TX3 MODE" value="ADC_LP" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="AMIC5_MIXER Switch" value="1" />
+ </path>
+
+ <path name="amic6">
+ <ctl name="TX DEC4 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX4" value="SWR_MIC4" />
+ <ctl name="TX_AIF2_CAP Mixer DEC4" value="1" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="AMIC1_MIXER Switch" value="1" />
+ </path>
+
+ <path name="dmic1">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC0" />
+ </path>
+
+ <path name="dmic2">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC1" />
+ </path>
+
+ <path name="dmic3">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC2" />
+ </path>
+
+ <path name="dmic4">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC3" />
+ </path>
+
+ <path name="dmic5">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC4" />
+ </path>
+
+ <path name="dmic6">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DMIC MUX2" value="DMIC5" />
+ </path>
+
+ <path name="speaker">
+ <ctl name="WSA RX0 MUX" value="AIF1_PB" />
+ <ctl name="WSA RX1 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX0 INP0" value="RX0" />
+ <ctl name="WSA_RX1 INP0" value="RX1" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="WSA_COMP2 Switch" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="SpkrRight COMP Switch" value="1" />
+ <ctl name="SpkrRight VISENSE Switch" value="1" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
+ </path>
+
+ <path name="haptics-dev">
+ <ctl name="SWR DAC_Port Switch" value="1" />
+ </path>
+
+ <path name="speaker-mono">
+ <ctl name="WSA RX0 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX0 INP0" value="RX0" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ </path>
+
+ <path name="speaker-mono-2">
+ <ctl name="WSA RX1 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX1 INP0" value="RX1" />
+ <ctl name="WSA_COMP2 Switch" value="1" />
+ <ctl name="SpkrRight COMP Switch" value="1" />
+ <ctl name="SpkrRight VISENSE Switch" value="1" />
+ <ctl name="SpkrRight SWR DAC_Port Switch" value="1" />
+ </path>
+
+ <path name="speaker-mono-vbat">
+ <path name="speaker-mono" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="speaker-mono-2-vbat">
+ <path name="speaker-mono-2" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="speaker-vbat">
+ <path name="speaker" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="speaker-hdk">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="speaker-fluid">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="speaker-liquid">
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-safe">
+ <path name="speaker-mono"/>
+ </path>
+
+ <path name="speaker-hdk-vbat">
+ <path name="speaker-mono-vbat" />
+ </path>
+
+ <path name="speaker-fluid-vbat">
+ <path name="speaker-mono-vbat" />
+ </path>
+
+ <path name="speaker-liquid-vbat">
+ <path name="speaker-vbat" />
+ </path>
+
+ <path name="speaker-safe-vbat">
+ <path name="speaker-mono-vbat"/>
+ </path>
+
+ <path name="sidetone-iir">
+ <ctl name="IIR0 Enable Band1" value="1" />
+ <ctl name="IIR0 Enable Band2" value="1" />
+ <ctl name="IIR0 Enable Band3" value="1" />
+ <ctl name="IIR0 Enable Band4" value="1" />
+ <ctl name="IIR0 Enable Band5" value="1" />
+ </path>
+
+ <path name="sidetone-headphones">
+ <path name="sidetone-iir" />
+ <ctl name="IIR0 INP0 Volume" value="40" />
+ <ctl name="IIR0 INP0 MUX" value="DEC0" />
+ <ctl name="RX INT0 MIX2 INP" value="SRC0" />
+ <ctl name="RX INT1 MIX2 INP" value="SRC0" />
+ </path>
+
+ <path name="sidetone-handset">
+ <path name="sidetone-iir" />
+ <ctl name="IIR0 INP0 Volume" value="40" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ <ctl name="RX INT2 MIX2 INP" value="SRC0" />
+ <ctl name="WSA_RX0 INT0 SIDETONE MIX" value="SRC0" />
+ </path>
+
+ <path name="sidetone-heaphone-handset-mic">
+ <path name="sidetone-iir" />
+ <ctl name="IIR0 INP0 Volume" value="0" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ <ctl name="RX INT0 MIX2 INP" value="SRC0" />
+ <ctl name="RX INT1 MIX2 INP" value="SRC0" />
+ </path>
+
+ <path name="afe-sidetone">
+ <ctl name="Voice Sidetone Enable" value="1" />
+ </path>
+
+ <path name="play-fm">
+ </path>
+
+ <path name="speaker-mic">
+ <path name="amic3" />
+ </path>
+
+ <path name="speaker-mic-liquid">
+ <path name="amic3" />
+ </path>
+
+ <path name="speaker-mic-sbc">
+ </path>
+
+ <path name="speaker-protected">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ <path name="speaker" />
+ </path>
+
+ <path name="voice-speaker-protected">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-2-protected">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ <path name="speaker-mono-2" />
+ </path>
+
+ <path name="voice-speaker-stereo-protected">
+ <path name="speaker-protected" />
+ </path>
+
+ <path name="speaker-protected-vbat">
+ <path name="speaker-protected" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="voice-speaker-protected-vbat">
+ <path name="voice-speaker-protected" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="voice-speaker-2-protected-vbat">
+ <path name="voice-speaker-2-protected" />
+ <ctl name="WSA_RX INT1 VBAT WSA RX1 VBAT Enable" value="1" />
+ </path>
+
+ <path name="voice-speaker-stereo-protected-vbat">
+ <path name="speaker-protected-vbat" />
+ </path>
+
+ <path name="vi-feedback">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ </path>
+
+ <path name="vi-feedback-mono-1">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_1" value="1" />
+ </path>
+
+ <path name="vi-feedback-mono-2">
+ <ctl name="WSA_AIF_VI Mixer WSA_SPKR_VI_2" value="1" />
+ </path>
+
+ <path name="cps-feedback">
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_1" value="1" />
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_2" value="1" />
+ </path>
+
+ <path name="cps-feedback-mono-1">
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_1" value="1" />
+ </path>
+
+ <path name="cps-feedback-mono-2">
+ <ctl name="WSA_AIF_CPS Mixer WSA_SPKR_CPS_2" value="1" />
+ </path>
+
+ <path name="handset">
+ <ctl name="WSA RX0 MUX" value="AIF1_PB" />
+ <ctl name="WSA_RX0 INP0" value="RX0" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="WSA_RX0 Digital Volume" value="70" />
+ </path>
+
+ <path name="handset-vbat">
+ <path name="handset" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="handset-mic">
+ <path name="amic3" />
+ </path>
+
+ <path name="handset-mic-unprocessed">
+ <path name="amic3" />
+ <ctl name="TX_DEC2 Volume" value="102" />
+ </path>
+
+ <path name="ultrasound-handset">
+ <ctl name="WSA RX_MIX0 MUX" value="AIF_MIX1_PB" />
+ <ctl name="WSA_RX0 MIX INP" value="RX_MIX0" />
+ <ctl name="WSA_COMP1 Switch" value="1" />
+ <ctl name="Idle Detect" value="1" />
+ <ctl name="SpkrLeft COMP Switch" value="1" />
+ <ctl name="SpkrLeft VISENSE Switch" value="1" />
+ <ctl name="SpkrLeft SWR DAC_Port Switch" value="1" />
+ <ctl name="WSA PBR Enable" value="1" />
+ <ctl name="EAR SPKR PA Gain" value="G_6_DB" />
+ </path>
+
+ <path name="ultrasound-handset-vbat">
+ <path name="ultrasound-handset" />
+ <ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
+ </path>
+
+ <path name="ultrasound-mic">
+ <path name="amic6" />
+ </path>
+
+ <path name="headphones">
+ <ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
+ <ctl name="RX_MACRO RX1 MUX" value="AIF1_PB" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="RX1" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="1" />
+ <ctl name="RX_COMP2 Switch" value="1" />
+ <ctl name="HPHL_COMP Switch" value="1" />
+ <ctl name="HPHR_COMP Switch" value="1" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ <ctl name="HPHR_RDAC Switch" value="1" />
+ </path>
+
+ <path name="headphones-and-haptics">
+ <ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
+ <ctl name="RX_MACRO RX1 MUX" value="AIF1_PB" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT1_1 MIX1 INP0" value="RX1" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX INT1 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="1" />
+ <ctl name="RX_COMP2 Switch" value="1" />
+ <ctl name="HPHL_COMP Switch" value="1" />
+ <ctl name="HPHR_COMP Switch" value="1" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ <ctl name="HPHR_RDAC Switch" value="1" />
+ <ctl name="SWR DAC_Port Switch" value="1" />
+ </path>
+
+ <path name="headphones-44.1">
+ <path name="headphones" />
+ </path>
+
+ <path name="headphones-hifi-filter">
+ <ctl name="RX_FIR Filter" value="ON" />
+ <path name="headphones" />
+ </path>
+
+ <path name="hph-highquality-mode">
+ </path>
+
+ <path name="hph-lowpower-mode">
+ </path>
+
+ <path name="true-native-mode">
+ </path>
+
+ <path name="line">
+ <path name="headphones" />
+ </path>
+
+ <path name="headset-mic">
+ <ctl name="TX_DEC0 Volume" value="84" />
+ <path name="amic2" />
+ </path>
+
+ <path name="headset-mic-liquid">
+ <path name="amic2" />
+ </path>
+
+ <path name="voice-handset">
+ <ctl name="WSA_RX0 Digital Volume" value="60" />
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-tmus">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-hac">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-hdk">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-handset-tmus-hdk">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-speaker">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-stereo">
+ <ctl name="WSA_RX0 Digital Volume" value="60" />
+ <path name="speaker" />
+ </path>
+
+ <path name="voice-speaker-2">
+ <path name="speaker-mono-2" />
+ </path>
+
+ <path name="voice-speaker-hdk">
+ <path name="speaker-mono" />
+ </path>
+
+ <path name="voice-speaker-fluid">
+ <path name="speaker-fluid" />
+ </path>
+
+ <path name="voice-speaker-vbat">
+ <path name="speaker-mono-vbat" />
+ </path>
+
+ <path name="voice-speaker-stereo-vbat">
+ <ctl name="WSA_RX0 Digital Volume" value="60" />
+ <path name="speaker-vbat" />
+ </path>
+
+ <path name="voice-speaker-2-vbat">
+ <path name="speaker-mono-2-vbat" />
+ </path>
+
+ <path name="voice-speaker-hdk-vbat">
+ <path name="speaker-mono-vbat" />
+ </path>
+
+ <path name="voice-speaker-fluid-vbat">
+ <path name="speaker-fluid-vbat" />
+ </path>
+
+ <path name="voice-speaker-mic">
+ <path name="speaker-mic" />
+ </path>
+
+ <path name="voice-headphones">
+ <path name="headphones" />
+ </path>
+
+ <path name="voice-headset">
+ <path name="headphones" />
+ </path>
+
+ <path name="voice-line">
+ <path name="voice-headphones" />
+ </path>
+
+ <path name="voice-headset-mic">
+ <path name="headset-mic" />
+ </path>
+
+ <path name="speaker-and-headphones">
+ <path name="headphones" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-and-headphones-hifi-filter">
+ <path name="headphones-hifi-filter" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-safe-and-headphones">
+ <path name="headphones" />
+ <path name="speaker-safe" />
+ </path>
+
+ <path name="speaker-and-line">
+ <path name="speaker-and-headphones" />
+ </path>
+
+ <path name="speaker-and-headphones-liquid">
+ <path name="headphones" />
+ <path name="speaker" />
+ </path>
+
+ <path name="speaker-and-line-liquid">
+ <path name="speaker-and-headphones-liquid" />
+ </path>
+
+ <path name="usb-headphones">
+ </path>
+
+ <path name="usb-headset">
+ </path>
+
+ <path name="usb-headset-mic">
+ </path>
+
+ <path name="speaker-and-usb-headphones">
+ <path name="speaker" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="speaker-safe-and-usb-headphones">
+ <path name="speaker-safe" />
+ <path name="usb-headphones" />
+ </path>
+
+ <path name="bt-sco">
+ </path>
+
+ <path name="bt-sco-mic">
+ </path>
+
+ <path name="bt-sco-wb">
+ </path>
+
+ <path name="bt-sco-mic-wb">
+ </path>
+
+ <path name="bt-sco-swb">
+ </path>
+
+ <path name="bt-sco-mic-swb">
+ </path>
+
+ <path name="bt-a2dp">
+ </path>
+
+ <path name="bt-a2dp-mic">
+ </path>
+
+ <path name="bt-ble">
+ </path>
+
+ <path name="bt-ble-mic">
+ </path>
+
+ <path name="va-mic-mono">
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC0" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX1_CH1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-dmic">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
+ <ctl name="ADC2_BCS Disable" value="1" />
+ <ctl name="ADC2 MUX" value="INP3" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC0" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC5" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX1_CH1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-tmic">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC2 MUX" value="SWR_MIC" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC2 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC9" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC4" />
+ <ctl name="VA SMIC MUX2" value="SWR_MIC5" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="TX2 MODE" value="ADC_LP" />
+ <ctl name="ADC2_BCS Disable" value="1" />
+ <ctl name="ADC4 MUX" value="INP5" />
+ <ctl name="ADC2 MUX" value="INP3" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="ADC1 Volume" value="10" />
+ <ctl name="ADC2 Volume" value="10" />
+ <ctl name="ADC4 Volume" value="10" />
+ <ctl name="VA_AMIC5_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC1_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC3_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-qmic">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC3 MUX" value="SWR_MIC" />
+ <ctl name="VA_DEC2 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC3 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA DEC2 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC9" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC4" />
+ <ctl name="VA SMIC MUX3" value="SWR_MIC8" />
+ <ctl name="VA SMIC MUX2" value="SWR_MIC5" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="TX2 MODE" value="ADC_LP" />
+ <ctl name="TX3 MODE" value="ADC_LP" />
+ <ctl name="ADC2_BCS Disable" value="1" />
+ <ctl name="ADC4 MUX" value="INP5" />
+ <ctl name="ADC2 MUX" value="INP3" />
+ <ctl name="ADC3 MUX" value="INP4" />
+ <ctl name="HDR12 MUX" value="NO_HDR12" />
+ <ctl name="HDR34 MUX" value="NO_HDR34" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="ADC3_MIXER Switch" value="1" />
+ <ctl name="ADC1 Volume" value="10" />
+ <ctl name="ADC2 Volume" value="10" />
+ <ctl name="ADC3 Volume" value="10" />
+ <ctl name="ADC4 Volume" value="10" />
+ <ctl name="VA_AMIC5_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC1_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC3_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC4_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic">
+ <path name="va-mic-mono" />
+ </path>
+
+ <path name="va-mic-mono-lpi">
+ <ctl name="VA_DEC0 Volume" value="96" />
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC4" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC1_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-dmic-lpi">
+ <ctl name="VA_DEC0 Volume" value="96" />
+ <ctl name="VA_DEC1 Volume" value="96" />
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="TX2 MODE" value="ADC_LP" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC4" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC9" />
+ <ctl name="ADC4 MUX" value="INP5" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC1_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC5_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-tmic-lpi">
+ <ctl name="VA_DEC0 Volume" value="96" />
+ <ctl name="VA_DEC1 Volume" value="96" />
+ <ctl name="VA_DEC2 Volume" value="96" />
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC2 MUX" value="SWR_MIC" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC2 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC4" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC9" />
+ <ctl name="VA SMIC MUX2" value="SWR_MIC8" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="TX2 MODE" value="ADC_LP" />
+ <ctl name="ADC4 MUX" value="INP5" />
+ <ctl name="ADC3 MUX" value="INP4" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC3_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC1_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC5_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC4_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-qmic-lpi">
+ <ctl name="VA_DEC0 Volume" value="96" />
+ <ctl name="VA_DEC1 Volume" value="96" />
+ <ctl name="VA_DEC2 Volume" value="96" />
+ <ctl name="VA_DEC3 Volume" value="96" />
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="VA_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC3 MUX" value="SWR_MIC" />
+ <ctl name="VA DEC2 MUX" value="SWR_MIC" />
+ <ctl name="VA_DEC2 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA_DEC3 MODE" value="ADC_LOW_PWR" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC4" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC9" />
+ <ctl name="VA SMIC MUX3" value="SWR_MIC5" />
+ <ctl name="VA SMIC MUX2" value="SWR_MIC8" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="TX2 MODE" value="ADC_LP" />
+ <ctl name="TX3 MODE" value="ADC_LP" />
+ <ctl name="ADC2_BCS Disable" value="1" />
+ <ctl name="ADC4 MUX" value="INP5" />
+ <ctl name="ADC3 MUX" value="INP4" />
+ <ctl name="ADC2 MUX" value="INP3" />
+ <ctl name="HDR12 MUX" value="NO_HDR12" />
+ <ctl name="HDR34 MUX" value="NO_HDR34" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC3_MIXER Switch" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC1_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC5_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC4_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC3_MIXER Switch" value="1" />
+ </path>
+
+ <path name="va-mic-lpi">
+ <path name="va-mic-mono-lpi" />
+ </path>
+
+ <path name="headset-va-mic-lpi">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC5" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="ADC2 MUX" value="INP2" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="HDR12 MUX" value="NO_HDR12" />
+ <ctl name="ADC2_BCS Disable" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="headset-va-mic">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC5" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="ADC2 MUX" value="INP2" />
+ <ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="HDR12 MUX" value="NO_HDR12" />
+ <ctl name="ADC2_BCS Disable" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="VA_AMIC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="lpi-pcm-logging">
+ <ctl name="LPI PCM Logging Enable" value="1" />
+ </path>
+
+ <!-- Dual MIC devices -->
+ <path name="handset-dmic-endfire">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DEC2 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC3 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX2" value="SWR_MIC4" />
+ <ctl name="TX SMIC MUX3" value="SWR_MIC5" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="TX3 MODE" value="ADC_LP" />
+ <ctl name="ADC2 MUX" value="INP3" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="AMIC1_MIXER Switch" value="1" />
+ <ctl name="AMIC3_MIXER Switch" value="1" />
+ </path>
+
+ <path name="speaker-dmic-endfire">
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DEC2 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC3 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX2" value="SWR_MIC9" />
+ <ctl name="TX SMIC MUX3" value="SWR_MIC4" />
+ <ctl name="ADC4 MUX" value="INP5" />
+ <ctl name="HDR34 MUX" value="NO_HDR34" />
+ <ctl name="TX2 MODE" value="ADC_LP" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="AMIC5_MIXER Switch" value="1" />
+ <ctl name="AMIC1_MIXER Switch" value="1" />
+ </path>
+
+ <path name="dmic-endfire">
+ <path name="handset-dmic-endfire" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ </path>
+
+ <path name="dmic-endfire-liquid">
+ <path name="handset-dmic-endfire" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ </path>
+
+ <path name="handset-stereo-dmic-ef">
+ <path name="handset-dmic-endfire" />
+ </path>
+
+ <path name="speaker-stereo-dmic-ef">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef-tmus">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-speaker-dmic-ef">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-rec-dmic-ef">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-fluence">
+ <path name="dmic-endfire" />
+ </path>
+
+ <path name="hearing-aid-mic">
+ <path name="voice-speaker-mic"/>
+ </path>
+
+ <path name="handset-stereo-dmic-ef-liquid">
+ <path name="handset-dmic-endfire" />
+ </path>
+
+ <path name="speaker-stereo-dmic-ef-liquid">
+ <path name="speaker-dmic-endfire" />
+ </path>
+
+ <path name="voice-dmic-ef-liquid-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-speaker-dmic-ef-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="voice-rec-dmic-ef-fluence-liquid">
+ <path name="dmic-endfire-liquid" />
+ </path>
+
+ <path name="speaker-dmic-broadside">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX DEC1 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC2 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC9" />
+ <ctl name="TX SMIC MUX2" value="SWR_MIC4" />
+ <ctl name="ADC4 MUX" value="INP5" />
+ <ctl name="HDR34 MUX" value="NO_HDR34" />
+ <ctl name="TX2 MODE" value="ADC_LP" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="AMIC5_MIXER Switch" value="1" />
+ <ctl name="AMIC1_MIXER Switch" value="1" />
+ </path>
+
+ <path name="dmic-broadside">
+ <path name="speaker-dmic-broadside" />
+ <ctl name="IIR0 INP0 MUX" value="DEC2" />
+ </path>
+
+ <path name="voice-speaker-dmic-broadside">
+ <path name="dmic-broadside" />
+ </path>
+
+ <!-- Tri MIC devices -->
+ <path name="three-mic">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DEC1 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC2 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC3 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC9" />
+ <ctl name="TX SMIC MUX2" value="SWR_MIC4" />
+ <ctl name="TX SMIC MUX3" value="SWR_MIC5" />
+ <ctl name="ADC4 MUX" value="INP5" />
+ <ctl name="ADC2 MUX" value="INP3" />
+ <ctl name="HDR34 MUX" value="NO_HDR34" />
+ <ctl name="TX2 MODE" value="ADC_LP" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="TX3 MODE" value="ADC_LP" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="AMIC5_MIXER Switch" value="1" />
+ <ctl name="AMIC1_MIXER Switch" value="1" />
+ <ctl name="AMIC3_MIXER Switch" value="1" />
+ </path>
+
+ <path name="speaker-tmic">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX DEC1 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC2 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC3 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC9" />
+ <ctl name="TX SMIC MUX2" value="SWR_MIC4" />
+ <ctl name="TX SMIC MUX3" value="SWR_MIC5" />
+ <ctl name="ADC4 MUX" value="INP5" />
+ <ctl name="ADC2 MUX" value="INP3" />
+ <ctl name="HDR34 MUX" value="NO_HDR34" />
+ <ctl name="TX2 MODE" value="ADC_LP" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="TX3 MODE" value="ADC_LP" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="AMIC5_MIXER Switch" value="1" />
+ <ctl name="AMIC1_MIXER Switch" value="1" />
+ <ctl name="AMIC3_MIXER Switch" value="1" />
+ </path>
+
+ <path name="voice-speaker-tmic">
+ <path name="speaker-tmic" />
+ </path>
+
+ <!-- Quad MIC devices -->
+ <path name="speaker-qmic">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="1" />
+ <ctl name="TX DEC1 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC2 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC3 MUX" value="SWR_MIC" />
+ <ctl name="TX DEC4 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC9" />
+ <ctl name="TX SMIC MUX2" value="SWR_MIC4" />
+ <ctl name="TX SMIC MUX3" value="SWR_MIC5" />
+ <ctl name="TX SMIC MUX4" value="SWR_MIC8" />
+ <ctl name="HDR34 MUX" value="NO_HDR34" />
+ <ctl name="ADC4 MUX" value="INP5" />
+ <ctl name="ADC2 MUX" value="INP3" />
+ <ctl name="ADC3 MUX" value="INP4" />
+ <ctl name="ADC2_BCS Disable" value="1" />
+ <ctl name="TX2 MODE" value="ADC_LP" />
+ <ctl name="TX0 MODE" value="ADC_LP" />
+ <ctl name="TX3 MODE" value="ADC_LP" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1" />
+ <ctl name="ADC4_MIXER Switch" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="ADC3_MIXER Switch" value="1" />
+ <ctl name="AMIC5_MIXER Switch" value="1" />
+ <ctl name="AMIC1_MIXER Switch" value="1" />
+ <ctl name="AMIC3_MIXER Switch" value="1" />
+ <ctl name="AMIC4_MIXER Switch" value="1" />
+ </path>
+
+ <path name="speaker-qmic-liquid">
+ </path>
+
+ <path name="voice-speaker-qmic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <path name="quad-mic">
+ <path name="speaker-qmic" />
+ </path>
+
+ <path name="voice-speaker-qmic-liquid">
+ <path name="speaker-qmic-liquid" />
+ </path>
+
+ <path name="quad-mic-liquid">
+ <path name="speaker-qmic-liquid" />
+ </path>
+
+ <path name="handset-dual-amic-quad-adc-hdr">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1"/>
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1"/>
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1"/>
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="1"/>
+ <ctl name="TX DEC1 MUX" value="SWR_MIC"/>
+ <ctl name="TX DEC2 MUX" value="SWR_MIC"/>
+ <ctl name="TX DEC3 MUX" value="SWR_MIC"/>
+ <ctl name="TX DEC4 MUX" value="SWR_MIC"/>
+ <ctl name="ADC3 MUX" value="INP4"/>
+ <ctl name="HDR12 MUX" value="HDR12"/>
+ <ctl name="HDR34 MUX" value="HDR34"/>
+ <ctl name="ADC4 MUX" value="INP5"/>
+ <ctl name="TX2 MODE" value="ADC_HIFI"/>
+ <ctl name="TX0 MODE" value="ADC_HIFI"/>
+ <ctl name="TX3 MODE" value="ADC_HIFI"/>
+ <ctl name="TX1 MODE" value="ADC_HIFI"/>
+ <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1"/>
+ <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1"/>
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2"/>
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2"/>
+ <ctl name="ADC3_MIXER Switch" value="1"/>
+ <ctl name="ADC1_MIXER Switch" value="1"/>
+ <ctl name="ADC4_MIXER Switch" value="1"/>
+ <ctl name="ADC2_MIXER Switch" value="1"/>
+ <ctl name="AMIC1_MIXER Switch" value="1"/>
+ <ctl name="AMIC5_MIXER Switch" value="1"/>
+ <ctl name="TX_DEC1 Volume" value="84"/>
+ <ctl name="TX_DEC2 Volume" value="84"/>
+ <ctl name="TX_DEC3 Volume" value="84"/>
+ <ctl name="TX_DEC4 Volume" value="84"/>
+ <ctl name="ADC1 Volume" value="16"/>
+ <ctl name="ADC2 Volume" value="0"/>
+ <ctl name="ADC3 Volume" value="0"/>
+ <ctl name="ADC4 Volume" value="16"/>
+ </path>
+
+ <path name="unprocessed-hdr-mic-landscape">
+ <path name="handset-dual-amic-quad-adc-hdr" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC9"/>
+ <ctl name="TX SMIC MUX2" value="SWR_MIC8"/>
+ <ctl name="TX SMIC MUX3" value="SWR_MIC4"/>
+ <ctl name="TX SMIC MUX4" value="SWR_MIC5"/>
+ </path>
+
+ <path name="unprocessed-hdr-mic-inverted-landscape">
+ <path name="handset-dual-amic-quad-adc-hdr" />
+ <ctl name="TX SMIC MUX1" value="SWR_MIC4"/>
+ <ctl name="TX SMIC MUX2" value="SWR_MIC5"/>
+ <ctl name="TX SMIC MUX3" value="SWR_MIC9"/>
+ <ctl name="TX SMIC MUX4" value="SWR_MIC8"/>
+ </path>
+
+ <path name="handset-single-amic-quad-adc">
+ <ctl name="TX_AIF1_CAP Mixer DEC1" value="1"/>
+ <ctl name="TX_AIF1_CAP Mixer DEC2" value="1"/>
+ <ctl name="TX_AIF1_CAP Mixer DEC3" value="1"/>
+ <ctl name="TX_AIF1_CAP Mixer DEC4" value="1"/>
+ <ctl name="TX DEC1 MUX" value="SWR_MIC"/>
+ <ctl name="TX DEC2 MUX" value="SWR_MIC"/>
+ <ctl name="TX DEC3 MUX" value="SWR_MIC"/>
+ <ctl name="TX DEC4 MUX" value="SWR_MIC"/>
+ <ctl name="TX SMIC MUX1" value="SWR_MIC9"/>
+ <ctl name="TX SMIC MUX2" value="SWR_MIC8"/>
+ <ctl name="TX SMIC MUX3" value="SWR_MIC9"/>
+ <ctl name="TX SMIC MUX4" value="SWR_MIC8"/>
+ <ctl name="HDR34 MUX" value="HDR34"/>
+ <ctl name="TX2 MODE" value="ADC_HIFI"/>
+ <ctl name="TX3 MODE" value="ADC_HIFI"/>
+ <ctl name="ADC3 ChMap" value="SWRM_TX3_CH1"/>
+ <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2"/>
+ <ctl name="ADC3_MIXER Switch" value="1"/>
+ <ctl name="ADC4_MIXER Switch" value="1"/>
+ <ctl name="AMIC5_MIXER Switch" value="1"/>
+ <ctl name="TX_DEC1 Volume" value="84"/>
+ <ctl name="TX_DEC2 Volume" value="84"/>
+ <ctl name="TX_DEC3 Volume" value="84"/>
+ <ctl name="TX_DEC4 Volume" value="84"/>
+ <ctl name="ADC3 Volume" value="0"/>
+ <ctl name="ADC4 Volume" value="16"/>
+ </path>
+
+ <path name="unprocessed-hdr-mic-portrait">
+ <path name="handset-single-amic-quad-adc" />
+ </path>
+
+ <path name="unprocessed-hdr-mic-inverted-portrait">
+ <path name="handset-single-amic-quad-adc" />
+ </path>
+
+ <!-- TTY devices -->
+
+ <path name="tty-headphones">
+ <ctl name="RX_MACRO RX0 MUX" value="AIF1_PB" />
+ <ctl name="RX INT0_1 MIX1 INP0" value="RX0" />
+ <ctl name="RX INT0 DEM MUX" value="CLSH_DSM_OUT" />
+ <ctl name="RX_COMP1 Switch" value="1" />
+ <ctl name="HPHL_COMP Switch" value="1" />
+ <ctl name="HPHL_RDAC Switch" value="1" />
+ </path>
+
+ <path name="voice-tty-full-headphones">
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-full-headset">
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-vco-headphones">
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-vco-headset">
+ <path name="tty-headphones" />
+ </path>
+
+ <path name="voice-tty-hco-handset">
+ <path name="handset" />
+ </path>
+
+
+ <path name="voice-tty-hco-handset-hdk">
+ <path name="handset" />
+ </path>
+
+ <path name="voice-tty-full-headset-mic">
+ <path name="amic2" />
+ <ctl name="ADC2 Volume" value="0" />
+ <ctl name="TX_DEC5 Volume" value="84" />
+ </path>
+
+ <path name="voice-tty-hco-headset-mic">
+ <ctl name="TX DEC6 MUX" value="SWR_MIC" />
+ <ctl name="TX SMIC MUX6" value="SWR_MIC5" />
+ <ctl name="TX_AIF1_CAP Mixer DEC6" value="1" />
+ <ctl name="ADC2 MUX" value="INP2" />
+ <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+ <ctl name="MBHC ChMap" value="SWRM_TX3_CH3" />
+ <ctl name="TX1 MODE" value="ADC_LP" />
+ <ctl name="BCS Channel" value="CH10" />
+ <ctl name="HDR12 MUX" value="NO_HDR12" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="AMIC2_MIXER Switch" value="1" />
+ </path>
+
+ <path name="voice-tty-vco-handset-mic">
+ <path name="dmic3" />
+ </path>
+
+ <path name="unprocessed-handset-mic">
+ <path name="handset-mic" />
+ </path>
+
+ <path name="unprocessed-mic">
+ <path name="unprocessed-handset-mic" />
+ </path>
+
+ <path name="unprocessed-stereo-mic">
+ <path name="voice-rec-dmic-ef" />
+ </path>
+
+ <path name="unprocessed-three-mic">
+ <path name="three-mic" />
+ </path>
+
+ <path name="unprocessed-headset-mic">
+ <path name="headset-mic" />
+ </path>
+
+ <path name="echo-ref-record">
+ </path>
+
+</mixer>
diff --git a/configs/crow/resourcemanager_crow_idp.xml b/configs/crow/resourcemanager_crow_idp.xml
new file mode 100644
index 0000000..87c99db
--- /dev/null
+++ b/configs/crow/resourcemanager_crow_idp.xml
@@ -0,0 +1,1591 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Copyright (c) 2020-2021, 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.
+
+* Changes from Qualcomm Innovation Center are provided under the following license:
+*
+* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted (subject to the limitations in the
+* disclaimer below) 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 Qualcomm Innovation Center, Inc. nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+* IN NO EVENT SHALL THE COPYRIGHT HOLDER 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. -->
+
+<resource_manager_info>
+ <version>2.0</version>
+ <config_params>
+ <param key="native_audio_mode" value="multiple_mix_dsp"/>
+ <!-- Uncomment HIFI Filter Headphones related sections when set this
+ hifi_filter key to true -->
+ <param key="hifi_filter" value="false"/>
+ <param key="max_sessions" value="128"/>
+ <param key="max_nonTunnel_sessions" value="4"/>
+ <param key="logging_level" value ="3" />
+ <param key="context_manager_enable" value ="true" />
+ <param key="upd_dedicated_be" value ="true" />
+ <param key="upd_duty_cycle_enable" value="false" />
+ <param key="dual_mono" value ="false" />
+ <param key="signal_handler" value ="true" />
+ <param key="device_mux_config" value ="false" />
+ <param key="upd_virtual_port" value ="false" />
+ </config_params>
+ <config_volume>
+ <use_volume_set_param>0</use_volume_set_param>
+ <supported_streams>
+ <supported_stream>PAL_STREAM_ULTRA_LOW_LATENCY</supported_stream>
+ <supported_stream>PAL_STREAM_COMPRESSED</supported_stream>
+ </supported_streams>
+ </config_volume>
+ <config_lpm>
+ <use_disable_lpm>1</use_disable_lpm>
+ <lpm_supported_streams>
+ <lpm_supported_stream>PAL_STREAM_LOW_LATENCY</lpm_supported_stream>
+ <lpm_supported_stream>PAL_STREAM_ULTRA_LOW_LATENCY</lpm_supported_stream>
+ </lpm_supported_streams>
+ </config_lpm>
+ <config_gapless key="gapless_supported" value="1"/>
+ <bt_codecs>
+ <codec codec_format="CODEC_TYPE_AAC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
+ <codec codec_format="CODEC_TYPE_SBC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
+ <codec codec_format="CODEC_TYPE_LDAC" codec_type="enc" codec_library="lib_bt_bundle.so" />
+ <codec codec_format="CODEC_TYPE_APTX" codec_type="enc" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_APTX_HD" codec_type="enc" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_APTX_AD" codec_type="enc" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_APTX_DUAL_MONO" codec_type="enc" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_APTX_AD_SPEECH" codec_type="enc|dec" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_LC3" codec_type="enc|dec" codec_library="lib_bt_ble.so" />
+ <codec codec_format="CODEC_TYPE_APTX_AD_QLEA" codec_type="enc" codec_library="lib_bt_ble.so" />
+ </bt_codecs>
+ <gain_db_to_level_mapping>
+ <gain_level_map db="-59" level="5"/>
+ <gain_level_map db="-17.4" level="4"/>
+ <gain_level_map db="-13.8" level="3"/>
+ <gain_level_map db="-10.2" level="2"/>
+ <gain_level_map db="0" level="1"/>
+ </gain_db_to_level_mapping>
+ <config_voice>
+ <vsid>0xB3000000</vsid>
+ <loopbackDelay>1000</loopbackDelay>
+ <maxVolIndex>5</maxVolIndex>
+ <mode_map>
+ <modepair key="0x11C05000" value="0xB3000001"/>
+ <modepair key="0x11DC5000" value="0xB3000001"/>
+ <modepair key="0x12006000" value="0xB3000001"/>
+ <modepair key="0x121C6000" value="0xB3000001"/>
+ </mode_map>
+ </config_voice>
+ <sleep_monitor_vote_streams>
+ <low_power_stream_type>PAL_STREAM_VOICE_UI</low_power_stream_type>
+ <low_power_stream_type>PAL_STREAM_ACD</low_power_stream_type>
+ <low_power_stream_type>PAL_STREAM_ULTRASOUND</low_power_stream_type>
+ <low_power_stream_type>PAL_STREAM_SENSOR_PCM_DATA</low_power_stream_type>
+ <avoid_vote_stream_type>PAL_STREAM_CONTEXT_PROXY</avoid_vote_stream_type>
+ </sleep_monitor_vote_streams>
+ <group_device_cfg>
+ <upd_rx>
+ <snd_device name="handset" />
+ <group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="1" />
+ </upd_rx>
+ <handset>
+ <group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="1" />
+ </handset>
+ <speaker>
+ <group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="3" />
+ </speaker>
+ <speaker_voice>
+ <group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="1" />
+ </speaker_voice>
+ <upd_rx_handset>
+ <snd_device name="speaker" />
+ <devicepp_mfc sample_rate="96000" channels="2" bit_width="16" />
+ <group_dev sample_rate = "96000" channels="2" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="3" />
+ </upd_rx_handset>
+ <upd_rx_speaker>
+ <snd_device name="speaker" />
+ <devicepp_mfc sample_rate="96000" channels="2" bit_width="16" />
+ <group_dev sample_rate = "96000" channels="2" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="3" />
+ </upd_rx_speaker>
+ </group_device_cfg>
+ <!--
+ Usecase Priorities
+ ====================
+
+ Examples of usecases with their corresponding priorities,
+ ranked from 1 (highest priority).
+ 1 for voice
+ 2 for VOIP
+ 3 for playback/recording and (default priority assigned in the streamPriorityLUT map in ResourceManager.cpp)
+ 4 for UPD
+
+ In the event of concurrency on shared backend devices, the stream with the highest priority will determine the final device.
+ Example:
+ ========================================
+ usecase | priority | snd-devicename
+ ========================================
+ VOICE | 1 | voice-handset
+ VOIP | 2 | voip-handset
+ deepbuffer| 3 | speaker-mono
+
+ The final device will be voice-handset.
+ -->
+ <device_profile>
+ <in-device>
+ <id>PAL_DEVICE_IN_HANDSET_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
+ <max_channels>4</max_channels>
+ <channels>1</channels>
+ <samplerate>48000</samplerate>
+ <snd_device_name>handset-mic</snd_device_name>
+ <ec_enable>0</ec_enable>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <ec_enable>1</ec_enable>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <!--Uncomment these lines instead of above lines if needing to enable EC per custom key
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="vr-mic">
+ <ec_enable>1</ec_enable>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <ec_enable>1</ec_enable>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <priority>2</priority>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <sidetone_mode>HW</sidetone_mode>
+ <bit_width>16</bit_width>
+ <ec_enable>1</ec_enable>
+ <custom-config key="dual-mic">
+ <channels>2</channels>
+ <snd_device_name>handset-dmic-endfire</snd_device_name>
+ </custom-config>
+ <custom-config key="quad-mic">
+ <channels>4</channels>
+ <snd_device_name>quad-mic</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ <custom-config key="dual-mic">
+ <channels>2</channels>
+ <snd_device_name>handset-dmic-endfire</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_RAW</name>
+ <snd_device_name>handset-mic-unprocessed</snd_device_name>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_HANDSET</id>
+ <id>PAL_DEVICE_OUT_SPEAKER</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_SPEAKER_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
+ <max_channels>4</max_channels>
+ <samplerate>48000</samplerate>
+ <channels>1</channels>
+ <ec_enable>0</ec_enable>
+ <snd_device_name>speaker-mic</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <ec_enable>1</ec_enable>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <!--Uncomment these lines instead of above lines if needing to enable EC per custom key
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="vr-mic">
+ <ec_enable>1</ec_enable>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <ec_enable>1</ec_enable>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <priority>2</priority>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <sidetone_mode>OFF</sidetone_mode>
+ <bit_width>16</bit_width>
+ <ec_enable>1</ec_enable>
+ <custom-config key="dual-mic">
+ <channels>2</channels>
+ <snd_device_name>speaker-dmic-endfire</snd_device_name>
+ </custom-config>
+ <custom-config key="quad-mic">
+ <channels>4</channels>
+ <snd_device_name>quad-mic</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_LOOPBACK</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_SPEAKER</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_WIRED_HEADSET</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>headset-mic</snd_device_name>
+ <ec_enable>0</ec_enable>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <!--Uncomment these lines instead of above lines if needing to enable EC per custom key
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="vr-mic">
+ <ec_enable>1</ec_enable>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <sidetone_mode>HW</sidetone_mode>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <priority>1</priority>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
+ <id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET</id>
+ <back_end_name>SLIM-DEV1-TX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <samplerate>8000</samplerate>
+ <bit_width>16</bit_width>
+ <snd_device_name>bt-sco-mic</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_HANDSET_VA_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <snd_device_name>va-mic</snd_device_name>
+ <ec_enable>1</ec_enable>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_SPEAKER</id>
+ <id>PAL_DEVICE_OUT_HANDSET</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_HEADSET_VA_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>headset-va-mic</snd_device_name>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <ec_enable>1</ec_enable>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
+ <id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_USB_HEADSET</id>
+ <back_end_name>USB_AUDIO-TX</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <samplerate>48000</samplerate>
+ <ec_enable>0</ec_enable>
+ <snd_device_name>usb-headset-mic</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <!--Uncomment these lines instead of above lines if needing to enable EC per custom key
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="vr-mic">
+ <ec_enable>1</ec_enable>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <sidetone_mode>HW</sidetone_mode>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_USB_HEADSET</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_FM_TUNER</id>
+ <back_end_name>MI2S-LPAIF-TX-PRIMARY</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>play-fm</snd_device_name>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_LOOPBACK</name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_PROXY</id>
+ <back_end_name>PCM_RT_PROXY-TX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>afe-proxy</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_PROXY</name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_VI_FEEDBACK</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-TX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <samplerate>48000</samplerate>
+ <bit_width>32</bit_width>
+ <snd_device_name>vi-feedback</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <channels>1</channels>
+ <snd_device_name>vi-feedback-mono-2</snd_device_name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_CPS_FEEDBACK</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-TX-2</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <samplerate>24000</samplerate>
+ <bit_width>32</bit_width>
+ <snd_device_name>cps-feedback</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <channels>1</channels>
+ <snd_device_name>cps-feedback-mono-2</snd_device_name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_BLUETOOTH_A2DP</id>
+ <back_end_name>SLIM-DEV1-TX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-a2dp-mic</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_BLUETOOTH_BLE</id>
+ <back_end_name>SLIM-DEV1-TX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-ble-mic</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_TELEPHONY_RX</id>
+ <back_end_name>PCM_RT_PROXY-TX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>afe-proxy</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_PROXY</name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_ULTRASOUND_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-TX-4</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <samplerate>96000</samplerate>
+ <bit_width>16</bit_width>
+ <snd_device_name>ultrasound-mic</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_ULTRASOUND</name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_EXT_EC_REF</id>
+ <!-- The below back_end_name is for internal testing purpose only, needs to be modified to appropriate value if TDM/MI2S -->
+ <back_end_name>CODEC_DMA-LPAIF_WSA-TX-1</back_end_name>
+ <snd_device_name>ext_ec_ref_tx</snd_device_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <bit_width>16</bit_width>
+ <samplerate>48000</samplerate>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_ECHO_REF</id>
+ <back_end_name>PCM_DUMMY-TX-0</back_end_name>
+ <snd_device_name>echo-ref-record</snd_device_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <bit_width>16</bit_width>
+ <samplerate>48000</samplerate>
+ <usecase>
+ <name>PAL_STREAM_RAW</name>
+ </usecase>
+ </in-device>
+ <out-device>
+ <id>PAL_DEVICE_NONE</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>none</snd_device_name>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_SPEAKER</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <samplerate>48000</samplerate>
+ <snd_device_name>speaker</snd_device_name>
+ <speaker_protection_enabled>1</speaker_protection_enabled>
+ <fractional_sr>0</fractional_sr>
+ <!-- To enable external EC reference the flag extec_ref_enabled must be added as 1 -->
+ <ext_ec_ref_enabled>0</ext_ec_ref_enabled>
+ <!-- Flag to specify cps mode which is applicable
+ Values: disable CPS: 0
+ CPS streaming: 1
+ ADSP control mode: 2
+ -->
+ <cps_mode>2</cps_mode>
+ <vbat_enabled>1</vbat_enabled>
+ <wsa2_enable>0</wsa2_enable>
+ <!--wsa registers physical addresses in decimal notation -->
+ <wsa_wr_cmd_reg_phy_addr>52757248</wsa_wr_cmd_reg_phy_addr>
+ <wsa_rd_cmd_reg_phy_addr>52757252</wsa_rd_cmd_reg_phy_addr>
+ <wsa_rd_fifo_reg_phy_addr>52757272</wsa_rd_fifo_reg_phy_addr>
+ <!--wsa2 registers physical addresses in decimal notation and to be updated only if wsa2 is enabled, else should be marked as 0-->
+ <wsa2_wr_cmd_reg_phy_addr>0</wsa2_wr_cmd_reg_phy_addr>
+ <wsa2_rd_cmd_reg_phy_addr>0</wsa2_rd_cmd_reg_phy_addr>
+ <wsa2_rd_fifo_reg_phy_addr>0</wsa2_rd_fifo_reg_phy_addr>
+ <!--specify the supported bit format on speaker end point -->
+ <!--this should be in the form of pal_audio_fmt_id-->
+ <!--e.g <supported_bit_format >PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>-->
+ <!--We support 24 bit for speaker as of now, as some module in ADSP does not support Q31 format-->
+ <!--This can be changed to PAL_AUDIO_FMT_PCM_S32_LE if 32 bit e2e support is required-->
+ <supported_bit_format>PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>
+ <!-- RAS should be enabled with speaker protection always -->
+ <ras_enabled>0</ras_enabled>
+ <!-- Flag to specify speaker in case Voice call is switched from
+ handset to speaker with only 1 speaker.
+ Values: Both speaker : 0
+ Right speaker: 1
+ Left speaker : 2
+ -->
+ <speaker_mono_right>0</speaker_mono_right>
+ <!-- Time in seconds for Quick cal. Set 0 to disable -->
+ <quick_cal_time>0</quick_cal_time>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <channels>1</channels>
+ <snd_device_name>speaker-mono-2</snd_device_name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_RX</name>
+ <priority>2</priority>
+ </usecase>
+ <!--
+ Playback/Recording streams have a default priority of 3
+ (default priority assigned in the streamPriorityLUT map in ResourceManager.cpp).
+ Check the comments above "Usecase Priorities" for details.
+ -->
+ <!--
+ While the UPD runs on a shared backend, whenever a speaker usecase arises,
+ UPD must always switch to the speaker; it can only return to handset when
+ the last speaker usecase terminates.
+ Giving UPD the lowest priority is in line with the understanding of
+ priority settings.
+ -->
+ <usecase>
+ <name>PAL_STREAM_ULTRASOUND</name>
+ <priority>4</priority>
+ <samplerate>96000</samplerate>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_HANDSET</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <!-- To enable external EC reference the flag extec_ref_enabled must be added as 1 -->
+ <ext_ec_ref_enabled>0</ext_ec_ref_enabled>
+ <samplerate>48000</samplerate>
+ <fractional_sr>0</fractional_sr>
+ <snd_device_name>handset</snd_device_name>
+ <handset_protection_enabled>0</handset_protection_enabled>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <custom-config key="HAC">
+ <snd_device_name>voice-handset-hac</snd_device_name> <!-- override sound device name with HAC handset -->
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_RX</name>
+ <priority>2</priority>
+ <custom-config key="HAC">
+ <snd_device_name>voice-handset-hac</snd_device_name> <!-- override sound device name with HAC handset for voip -->
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRASOUND</name>
+ <priority>4</priority>
+ <samplerate>96000</samplerate>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <fractional_sr>1</fractional_sr>
+ <snd_device_name>headphones</snd_device_name>
+ <!--HIFI Filter Headphones-Uncomment this when param key hifi_filter is true
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_PCM_OFFLOAD</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_RX</name>
+ <priority>2</priority>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <fractional_sr>1</fractional_sr>
+ <snd_device_name>headphones</snd_device_name>
+ <!--HIFI Filter Headphones-Uncomment this when param key hifi_filter is true
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_PCM_OFFLOAD</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_RX</name>
+ <priority>2</priority>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
+ <back_end_name>SLIM-DEV1-RX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-a2dp</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
+ <back_end_name>SLIM-DEV1-RX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-ble</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST</id>
+ <back_end_name>SLIM-DEV1-RX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-ble</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
+ <back_end_name>SLIM-DEV1-RX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-sco</snd_device_name>
+ <samplerate>8000</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_AUX_DIGITAL</id>
+ <back_end_name>DISPLAY_PORT-RX</back_end_name>
+ <max_channels>32</max_channels>
+ <channels>2</channels>
+ <snd_device_name>display-port</snd_device_name>
+ <fractional_sr>1</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_HDMI</id>
+ <back_end_name>DISPLAY_PORT-RX</back_end_name>
+ <max_channels>32</max_channels>
+ <channels>2</channels>
+ <fractional_sr>1</fractional_sr>
+ <snd_device_name>display-port</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_USB_DEVICE</id>
+ <back_end_name>USB_AUDIO-RX</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>usb-headphones</snd_device_name>
+ <fractional_sr>1</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_USB_HEADSET</id>
+ <back_end_name>USB_AUDIO-RX</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>usb-headphones</snd_device_name>
+ <fractional_sr>1</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_AUX_DIGITAL_1</id>
+ <back_end_name>DISPLAY_PORT-RX</back_end_name>
+ <max_channels>8</max_channels>
+ <channels>2</channels>
+ <snd_device_name>display-port</snd_device_name>
+ <fractional_sr>1</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_PROXY</id>
+ <back_end_name>PCM_RT_PROXY-RX-1</back_end_name>
+ <max_channels>8</max_channels>
+ <channels>2</channels>
+ <snd_device_name>afe-proxy</snd_device_name>
+ <fractional_sr>0</fractional_sr>
+ <samplerate>48000</samplerate>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_HEARING_AID</id>
+ <back_end_name>PCM_RT_PROXY-RX-1</back_end_name>
+ <max_channels>8</max_channels>
+ <channels>2</channels>
+ <snd_device_name>afe-proxy</snd_device_name>
+ <fractional_sr>0</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_HAPTICS_DEVICE</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-RX-6</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>haptics-dev</snd_device_name>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_ULTRASOUND</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>ultrasound-handset</snd_device_name>
+ <samplerate>96000</samplerate>
+ <bit_width>16</bit_width>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_ULTRASOUND_DEDICATED</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>ultrasound-handset</snd_device_name>
+ <samplerate>96000</samplerate>
+ <bit_width>16</bit_width>
+ </out-device>
+ </device_profile>
+ <in_streams>
+ <in_stream>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_VOICE_UI</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_ACD</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_PROXY</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
+ <disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_RAW</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
+ <disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_SENSOR_PCM_DATA</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ </in_streams>
+ <sound_trigger_platform_info>
+ <common_config>
+ <!-- Sound trigger streams common params -->
+ <param lpi_enable="true" />
+ <param support_nlpi_switch="true" />
+ <param support_device_switch="true" />
+ <param enable_debug_dumps="false" />
+ <param concurrent_capture="true" />
+ <param concurrent_voice_call="true" />
+ <param concurrent_voip_call="true" />
+ <param low_latency_bargein_enable="false" />
+ </common_config>
+ <capture_profile_list>
+ <!-- Common Profiles -->
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI_AAD">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_LPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_LPI_AAD">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <!-- ACD Specific Profiles -->
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_LPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <!-- Sensor PCM Data Specific Profiles -->
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFEC">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFEC">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <!-- SVA/Hotword Specific Profiles -->
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_NLPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_LPI">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_LPI_AAD">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_NLPI">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_FFNS">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="TRI_MIC_16KHZ_16BIT_FFNS">
+ <param sample_rate="16000" />
+ <param channels="3" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-tmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="QUAD_MIC_16KHZ_16BIT_FFNS">
+ <param sample_rate="16000" />
+ <param channels="4" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-qmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="TRI_MIC_16KHZ_16BIT_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="3" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-tmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="QUAD_MIC_16KHZ_16BIT_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="4" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-qmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="TRI_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="3" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-tmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="QUAD_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="4" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-qmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="TRI_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="3" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-tmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="QUAD_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="4" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-qmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ </capture_profile_list>
+ <acd_platform_info>
+ <config>
+ <param acd_enable="true" />
+ </config>
+ <!-- ACD -->
+ <stream_config>
+ <name>QC_ACD</name>
+ <param vendor_uuid="4e93281b-296e-4d73-9833-2710c3c7c1db" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI" />
+ <high_performance capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
+ </operating_modes>
+ <sound_model_info>
+ <sound_model>
+ <name>ACD_SOUND_MODEL_ID_EVENT</name>
+ <bin>event.eai</bin>
+ <uuid>0x0B001007</uuid>
+ <contexts>
+ <context id="0x0800132D" /> <!-- EVENT_ALARM -->
+ <context id="0x0800132E" /> <!-- EVENT_BABYCRYING -->
+ <context id="0x0800132F" /> <!-- EVENT_DOGBARKING -->
+ <context id="0x08001330" /> <!-- EVENT_DOORBELL -->
+ <context id="0x08001331" /> <!-- EVENT_DOOROPENCLOSE -->
+ <context id="0x08001332" /> <!-- EVENT_CRASH -->
+ <context id="0x08001333" /> <!-- EVENT_GLASSBREAKING -->
+ <context id="0x08001334" /> <!-- EVENT_SIREN -->
+ <context id="0x080013CC" /> <!-- EVENT_CARHONK -->
+ <context id="0x080013CD" /> <!-- EVENT_GUNSHOT -->
+ <context id="0x080013CE" /> <!-- EVENT_PHONERING -->
+ <context id="0x080013CF" /> <!-- EVENT_SLEEPAPNEA -->
+ <context id="0x080013D0" /> <!-- EVENT_SNORING -->
+ <context id="0x080013D1" /> <!-- EVENT_CATMEOW -->
+ <context id="0x080013D2" /> <!-- EVENT_DOORKNOCK -->
+ <context id="0x080013D3" /> <!-- EVENT_WATERFLOW -->
+ <context id="0x080013D4" /> <!-- EVENT_FIREALARM -->
+ </contexts>
+ </sound_model>
+ <sound_model>
+ <name>ACD_SOUND_MODEL_ID_SPEECH</name>
+ <bin>speech.eai</bin>
+ <uuid>0x0B001008</uuid>
+ <contexts>
+ <context id="0x08001335" /> <!-- AMBIENCE_SPEECH -->
+ </contexts>
+ </sound_model>
+ <sound_model>
+ <name>ACD_SOUND_MODEL_ID_MUSIC</name>
+ <bin>music.eai</bin>
+ <uuid>0x0B001009</uuid>
+ <contexts>
+ <context id="0x08001336" /> <!-- AMBIENCE_MUSIC -->
+ </contexts>
+ </sound_model>
+ <sound_model>
+ <name>ACD_SOUND_MODEL_AMBIENCE_NOISE_SILENCE</name>
+ <bin></bin> <!-- Following contexts dont have a model, hence empty bin -->
+ <uuid>0xFFFFFFFF</uuid> <!-- Indicates no sound model -->
+ <contexts>
+ <context id="0x08001337" /> <!-- AMBIENCE_NOISY_SPL -->
+ <context id="0x08001338" /> <!-- AMBIENCE_SILENT_SPL -->
+ <context id="0x08001339" /> <!-- AMBIENCE_NOISY_SFLUX -->
+ <context id="0x0800133A" /> <!-- AMBIENCE_SILENT_SFLUX -->
+ </contexts>
+ </sound_model>
+ </sound_model_info>
+ </stream_config>
+ <!-- Sensor PCM Data -->
+ <stream_config>
+ <name>QC_SENSOR_PCM_DATA</name>
+ <param vendor_uuid="c88a2c89-7a55-498c-836f-5d7ec8582990" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI" />
+ <low_power_ns capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFNS" />
+ <high_performance capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFEC" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFEC" />
+ <high_performance_ns capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
+ </operating_modes>
+ </stream_config>
+ </acd_platform_info>
+ <!-- Voice UI -->
+ <vui_platform_info>
+ <config>
+ <!-- Voice UI Params used by apk to indicate the Voice UI version current platform supports -->
+ <param version="0x0103" />
+ <param enable_failure_detection="false" />
+ <param notify_second_stage_failure="false" />
+ <param mmap_enable="true" />
+ <param mmap_buffer_duration="5000" />
+ <!-- 5ms duration of data -->
+ <param mmap_frame_length="5" />
+ <!-- Move this flag to common_config if ACD/Sensor PCM Data support car mode in the future -->
+ <param transit_to_non_lpi_on_charging="false" />
+ </config>
+ <!-- Multiple stream_config tags can be listed, each with unique -->
+ <!-- vendor_uuid. The below tag represents QC Voice UI sound model -->
+ <!-- configuration. ISV must use their own unique vendor_uuid. -->
+ <stream_config>
+ <name>QC_VOICE_UI</name>
+ <param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b" />
+ <param merge_first_stage_sound_models="false" />
+ <!--For now total 3 engines are supported, if more engine instances are needed,-->
+ <!-- do update acdb and usecaseKvManager.xml files by adding more instances -->
+ <param pdk_first_stage_max_engine_count="3"/>
+ <!-- Profile specific data which the algorithm can support -->
+ <param capture_keyword="2000" /> <!-- Default history buffer length -->
+ <param client_capture_read_delay="2000" /> <!-- reserved buffer duration for rt data -->
+ <param pre_roll_duration="500" /> <!-- Default preroll duration -->
+ <!-- durations in us -->
+ <param kw_start_tolerance="360000" />
+ <param kw_end_tolerance="240000" />
+ <param data_before_kw_start="360000" />
+ <param data_after_kw_end="480000" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI" />
+ <high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
+ <high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
+ </operating_modes>
+ <sound_model_info>
+ <first_stage_module_params>
+ <param module_type="GMM" />
+ <param load_sound_model_ids="0xC0000008, 0x0800104C" />
+ <param wakeup_config_ids="0xC0000008, 0x08001049" />
+ <param buffering_config_ids="0xC0000008, 0x08001044" />
+ <param engine_reset_ids="0xC0000008, 0x08001051" />
+ </first_stage_module_params>
+ <first_stage_module_params>
+ <param module_type="PDK" />
+ <param load_sound_model_ids="0xC0000008, 0x0800124E" />
+ <param unload_sound_model_ids="0xC0000008, 0x08001250" />
+ <param wakeup_config_ids="0xC0000008, 0x08001049" />
+ <param buffering_config_ids="0xC0000008, 0x0800124F" />
+ <param engine_reset_ids="0xC0000008, 0x08001051" />
+ </first_stage_module_params>
+ <arm_ss_module_params>
+ <!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION", "CUSTOM_DETECTION" -->
+ <param sm_detection_type= "KEYWORD_DETECTION" />
+ <param sm_id="0x2" />
+ <param module_lib="libcapiv2svacnnvendor.so" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1" />
+ </arm_ss_module_params>
+ <arm_ss_module_params>
+ <param sm_detection_type= "USER_VERIFICATION" />
+ <param sm_id="0x4" />
+ <param module_lib="libcapiv2uvvendor.so" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1" />
+ </arm_ss_module_params>
+ <arm_ss_module_params>
+ <param sm_detection_type= "KEYWORD_DETECTION" />
+ <param sm_id="0x8" />
+ <param module_lib="libcapiv2svarnnvendor.so" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1" />
+ </arm_ss_module_params>
+ <arm_ss_module_params>
+ <param sm_detection_type= "KEYWORD_DETECTION" />
+ <param sm_id="0x40" />
+ <param module_lib="libcapiv2udk7vendor.so" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1" />
+ </arm_ss_module_params>
+ </sound_model_info>
+ </stream_config>
+ <!-- Hotword Voice UI-->
+ <stream_config>
+ <name>HOTWORD_VOICE_UI</name>
+ <param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15" />
+ <param get_module_version="false" />
+ <param merge_first_stage_sound_models="false" />
+ <param capture_keyword="2000" />
+ <param client_capture_read_delay="2000" />
+ <param kw_start_tolerance="100" />
+ <param kw_end_tolerance="100" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI" />
+ <high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI" />
+ <high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI" />
+ </operating_modes>
+ <sound_model_info>
+ <first_stage_module_params>
+ <param module_type="HOTWORD" />
+ <param load_sound_model_ids="0xC0000008, 0x0800104C" />
+ <param unload_sound_model_ids="0xC0000008, 0x00012C15" />
+ <param buffering_config_ids="0xC0000008, 0x08001044" />
+ <param version_ids="0xC0000008, 0x18000101" />
+ <param engine_reset_ids="0xC0000008, 0x08001051" />
+ </first_stage_module_params>
+ </sound_model_info>
+ </stream_config>
+ <!-- CUSTOM Voice UI-->
+ <stream_config>
+ <name>CUSTOM_VOICE_UI</name>
+ <!-- NOTE: Customer need to replace with their own uuid and match with sound model -->
+ <param vendor_uuid="c51c508a-ee1b-11ec-8ea0-0242ac120002" />
+ <param merge_first_stage_sound_models="false" />
+ <!-- Profile specific data which the algorithm can support -->
+ <param capture_keyword="2000" /> <!-- Default history buffer length -->
+ <param client_capture_read_delay="2000" /> <!-- reserved buffer duration for rt data -->
+ <param pre_roll_duration="500" /> <!-- Default preroll duration -->
+ <!-- durations in us -->
+ <param kw_start_tolerance="360000" />
+ <param kw_end_tolerance="240000" />
+ <param data_before_kw_start="360000" />
+ <param data_after_kw_end="480000" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_CUSTOM_NS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_NS" />
+ <high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_CUSTOM_ECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_ECNS" />
+ <high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_CUSTOM_ECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_ECNS" />
+ </operating_modes>
+ <sound_model_info>
+ <first_stage_module_params>
+ <param module_type="CUSTOM1" />
+ <param load_sound_model_ids="0xC0000008, 0x0800104C" />
+ <param custom_config_ids="0xC0000008, 0x08001049" />
+ <param buffering_config_ids="0xC0000008, 0x08001044" />
+ <param engine_reset_ids="0xC0000008, 0x08001051" />
+ </first_stage_module_params>
+ </sound_model_info>
+ </stream_config>
+ </vui_platform_info>
+ </sound_trigger_platform_info>
+</resource_manager_info>
diff --git a/configs/crow/resourcemanager_crow_idp_wcd9395_aatc.xml b/configs/crow/resourcemanager_crow_idp_wcd9395_aatc.xml
new file mode 100644
index 0000000..67d66b3
--- /dev/null
+++ b/configs/crow/resourcemanager_crow_idp_wcd9395_aatc.xml
@@ -0,0 +1,1591 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Copyright (c) 2020-2021, 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.
+
+* Changes from Qualcomm Innovation Center are provided under the following license:
+*
+* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted (subject to the limitations in the
+* disclaimer below) 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 Qualcomm Innovation Center, Inc. nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+* IN NO EVENT SHALL THE COPYRIGHT HOLDER 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. -->
+
+<resource_manager_info>
+ <version>2.0</version>
+ <config_params>
+ <param key="native_audio_mode" value="multiple_mix_dsp"/>
+ <!-- Uncomment HIFI Filter Headphones related sections when set this
+ hifi_filter key to true -->
+ <param key="hifi_filter" value="false"/>
+ <param key="max_sessions" value="128"/>
+ <param key="max_nonTunnel_sessions" value="4"/>
+ <param key="logging_level" value ="3" />
+ <param key="context_manager_enable" value ="true" />
+ <param key="upd_dedicated_be" value ="true" />
+ <param key="upd_duty_cycle_enable" value="false" />
+ <param key="dual_mono" value ="false" />
+ <param key="signal_handler" value ="true" />
+ <param key="device_mux_config" value ="false" />
+ <param key="upd_virtual_port" value ="false" />
+ </config_params>
+ <config_volume>
+ <use_volume_set_param>0</use_volume_set_param>
+ <supported_streams>
+ <supported_stream>PAL_STREAM_ULTRA_LOW_LATENCY</supported_stream>
+ <supported_stream>PAL_STREAM_COMPRESSED</supported_stream>
+ </supported_streams>
+ </config_volume>
+ <config_lpm>
+ <use_disable_lpm>1</use_disable_lpm>
+ <lpm_supported_streams>
+ <lpm_supported_stream>PAL_STREAM_LOW_LATENCY</lpm_supported_stream>
+ <lpm_supported_stream>PAL_STREAM_ULTRA_LOW_LATENCY</lpm_supported_stream>
+ </lpm_supported_streams>
+ </config_lpm>
+ <config_gapless key="gapless_supported" value="1"/>
+ <bt_codecs>
+ <codec codec_format="CODEC_TYPE_AAC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
+ <codec codec_format="CODEC_TYPE_SBC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
+ <codec codec_format="CODEC_TYPE_LDAC" codec_type="enc" codec_library="lib_bt_bundle.so" />
+ <codec codec_format="CODEC_TYPE_APTX" codec_type="enc" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_APTX_HD" codec_type="enc" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_APTX_AD" codec_type="enc" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_APTX_DUAL_MONO" codec_type="enc" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_APTX_AD_SPEECH" codec_type="enc|dec" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_LC3" codec_type="enc|dec" codec_library="lib_bt_ble.so" />
+ <codec codec_format="CODEC_TYPE_APTX_AD_QLEA" codec_type="enc" codec_library="lib_bt_ble.so" />
+ </bt_codecs>
+ <gain_db_to_level_mapping>
+ <gain_level_map db="-59" level="5"/>
+ <gain_level_map db="-17.4" level="4"/>
+ <gain_level_map db="-13.8" level="3"/>
+ <gain_level_map db="-10.2" level="2"/>
+ <gain_level_map db="0" level="1"/>
+ </gain_db_to_level_mapping>
+ <config_voice>
+ <vsid>0xB3000000</vsid>
+ <loopbackDelay>1000</loopbackDelay>
+ <maxVolIndex>5</maxVolIndex>
+ <mode_map>
+ <modepair key="0x11C05000" value="0xB3000001"/>
+ <modepair key="0x11DC5000" value="0xB3000001"/>
+ <modepair key="0x12006000" value="0xB3000001"/>
+ <modepair key="0x121C6000" value="0xB3000001"/>
+ </mode_map>
+ </config_voice>
+ <sleep_monitor_vote_streams>
+ <low_power_stream_type>PAL_STREAM_VOICE_UI</low_power_stream_type>
+ <low_power_stream_type>PAL_STREAM_ACD</low_power_stream_type>
+ <low_power_stream_type>PAL_STREAM_ULTRASOUND</low_power_stream_type>
+ <low_power_stream_type>PAL_STREAM_SENSOR_PCM_DATA</low_power_stream_type>
+ <avoid_vote_stream_type>PAL_STREAM_CONTEXT_PROXY</avoid_vote_stream_type>
+ </sleep_monitor_vote_streams>
+ <group_device_cfg>
+ <upd_rx>
+ <snd_device name="handset" />
+ <group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="1" />
+ </upd_rx>
+ <handset>
+ <group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="1" />
+ </handset>
+ <speaker>
+ <group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="3" />
+ </speaker>
+ <speaker_voice>
+ <group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="1" />
+ </speaker_voice>
+ <upd_rx_handset>
+ <snd_device name="speaker" />
+ <devicepp_mfc sample_rate="96000" channels="2" bit_width="16" />
+ <group_dev sample_rate = "96000" channels="2" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="3" />
+ </upd_rx_handset>
+ <upd_rx_speaker>
+ <snd_device name="speaker" />
+ <devicepp_mfc sample_rate="96000" channels="2" bit_width="16" />
+ <group_dev sample_rate = "96000" channels="2" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="3" />
+ </upd_rx_speaker>
+ </group_device_cfg>
+ <!--
+ Usecase Priorities
+ ====================
+
+ Examples of usecases with their corresponding priorities,
+ ranked from 1 (highest priority).
+ 1 for voice
+ 2 for VOIP
+ 3 for playback/recording and (default priority assigned in the streamPriorityLUT map in ResourceManager.cpp)
+ 4 for UPD
+
+ In the event of concurrency on shared backend devices, the stream with the highest priority will determine the final device.
+ Example:
+ ========================================
+ usecase | priority | snd-devicename
+ ========================================
+ VOICE | 1 | voice-handset
+ VOIP | 2 | voip-handset
+ deepbuffer| 3 | speaker-mono
+
+ The final device will be voice-handset.
+ -->
+ <device_profile>
+ <in-device>
+ <id>PAL_DEVICE_IN_HANDSET_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
+ <max_channels>4</max_channels>
+ <channels>1</channels>
+ <samplerate>48000</samplerate>
+ <snd_device_name>handset-mic</snd_device_name>
+ <ec_enable>0</ec_enable>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <ec_enable>1</ec_enable>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <!--Uncomment these lines instead of above lines if needing to enable EC per custom key
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="vr-mic">
+ <ec_enable>1</ec_enable>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <ec_enable>1</ec_enable>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <priority>2</priority>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <sidetone_mode>HW</sidetone_mode>
+ <bit_width>16</bit_width>
+ <ec_enable>1</ec_enable>
+ <custom-config key="dual-mic">
+ <channels>2</channels>
+ <snd_device_name>handset-dmic-endfire</snd_device_name>
+ </custom-config>
+ <custom-config key="quad-mic">
+ <channels>4</channels>
+ <snd_device_name>quad-mic</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ <custom-config key="dual-mic">
+ <channels>2</channels>
+ <snd_device_name>handset-dmic-endfire</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_RAW</name>
+ <snd_device_name>handset-mic-unprocessed</snd_device_name>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_HANDSET</id>
+ <id>PAL_DEVICE_OUT_SPEAKER</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_SPEAKER_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
+ <max_channels>4</max_channels>
+ <samplerate>48000</samplerate>
+ <channels>1</channels>
+ <ec_enable>0</ec_enable>
+ <snd_device_name>speaker-mic</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <ec_enable>1</ec_enable>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <!--Uncomment these lines instead of above lines if needing to enable EC per custom key
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="vr-mic">
+ <ec_enable>1</ec_enable>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <ec_enable>1</ec_enable>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <priority>2</priority>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <sidetone_mode>OFF</sidetone_mode>
+ <bit_width>16</bit_width>
+ <ec_enable>1</ec_enable>
+ <custom-config key="dual-mic">
+ <channels>2</channels>
+ <snd_device_name>speaker-dmic-endfire</snd_device_name>
+ </custom-config>
+ <custom-config key="quad-mic">
+ <channels>4</channels>
+ <snd_device_name>quad-mic</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_LOOPBACK</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_SPEAKER</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_WIRED_HEADSET</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>headset-mic</snd_device_name>
+ <ec_enable>0</ec_enable>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <!--Uncomment these lines instead of above lines if needing to enable EC per custom key
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="vr-mic">
+ <ec_enable>1</ec_enable>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <sidetone_mode>HW</sidetone_mode>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <priority>1</priority>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
+ <id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET</id>
+ <back_end_name>SLIM-DEV1-TX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <samplerate>8000</samplerate>
+ <bit_width>16</bit_width>
+ <snd_device_name>bt-sco-mic</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_HANDSET_VA_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <snd_device_name>va-mic</snd_device_name>
+ <ec_enable>1</ec_enable>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_SPEAKER</id>
+ <id>PAL_DEVICE_OUT_HANDSET</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_HEADSET_VA_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>headset-va-mic</snd_device_name>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <ec_enable>1</ec_enable>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
+ <id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_USB_HEADSET</id>
+ <back_end_name>USB_AUDIO-TX</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <samplerate>48000</samplerate>
+ <ec_enable>0</ec_enable>
+ <snd_device_name>usb-headset-mic</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <!--Uncomment these lines instead of above lines if needing to enable EC per custom key
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="vr-mic">
+ <ec_enable>1</ec_enable>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <sidetone_mode>HW</sidetone_mode>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_USB_HEADSET</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_FM_TUNER</id>
+ <back_end_name>MI2S-LPAIF-TX-PRIMARY</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>play-fm</snd_device_name>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_LOOPBACK</name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_PROXY</id>
+ <back_end_name>PCM_RT_PROXY-TX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>afe-proxy</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_PROXY</name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_VI_FEEDBACK</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-TX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <samplerate>48000</samplerate>
+ <bit_width>32</bit_width>
+ <snd_device_name>vi-feedback</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <channels>1</channels>
+ <snd_device_name>vi-feedback-mono-2</snd_device_name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_CPS_FEEDBACK</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-TX-2</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <samplerate>24000</samplerate>
+ <bit_width>32</bit_width>
+ <snd_device_name>cps-feedback</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <channels>1</channels>
+ <snd_device_name>cps-feedback-mono-2</snd_device_name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_BLUETOOTH_A2DP</id>
+ <back_end_name>SLIM-DEV1-TX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-a2dp-mic</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_BLUETOOTH_BLE</id>
+ <back_end_name>SLIM-DEV1-TX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-ble-mic</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_TELEPHONY_RX</id>
+ <back_end_name>PCM_RT_PROXY-TX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>afe-proxy</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_PROXY</name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_ULTRASOUND_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-TX-4</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <samplerate>96000</samplerate>
+ <bit_width>16</bit_width>
+ <snd_device_name>ultrasound-mic</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_ULTRASOUND</name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_EXT_EC_REF</id>
+ <!-- The below back_end_name is for internal testing purpose only, needs to be modified to appropriate value if TDM/MI2S -->
+ <back_end_name>CODEC_DMA-LPAIF_WSA-TX-1</back_end_name>
+ <snd_device_name>ext_ec_ref_tx</snd_device_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <bit_width>16</bit_width>
+ <samplerate>48000</samplerate>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_ECHO_REF</id>
+ <back_end_name>PCM_DUMMY-TX-0</back_end_name>
+ <snd_device_name>echo-ref-record</snd_device_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <bit_width>16</bit_width>
+ <samplerate>48000</samplerate>
+ <usecase>
+ <name>PAL_STREAM_RAW</name>
+ </usecase>
+ </in-device>
+ <out-device>
+ <id>PAL_DEVICE_NONE</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>none</snd_device_name>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_SPEAKER</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <samplerate>48000</samplerate>
+ <snd_device_name>speaker</snd_device_name>
+ <speaker_protection_enabled>1</speaker_protection_enabled>
+ <fractional_sr>0</fractional_sr>
+ <!-- To enable external EC reference the flag extec_ref_enabled must be added as 1 -->
+ <ext_ec_ref_enabled>0</ext_ec_ref_enabled>
+ <!-- Flag to specify cps mode which is applicable
+ Values: disable CPS: 0
+ CPS streaming: 1
+ ADSP control mode: 2
+ -->
+ <cps_mode>1</cps_mode>
+ <vbat_enabled>1</vbat_enabled>
+ <wsa2_enable>0</wsa2_enable>
+ <!--wsa registers physical addresses in decimal notation -->
+ <wsa_wr_cmd_reg_phy_addr>52757248</wsa_wr_cmd_reg_phy_addr>
+ <wsa_rd_cmd_reg_phy_addr>52757252</wsa_rd_cmd_reg_phy_addr>
+ <wsa_rd_fifo_reg_phy_addr>52757272</wsa_rd_fifo_reg_phy_addr>
+ <!--wsa2 registers physical addresses in decimal notation and to be updated only if wsa2 is enabled, else should be marked as 0-->
+ <wsa2_wr_cmd_reg_phy_addr>0</wsa2_wr_cmd_reg_phy_addr>
+ <wsa2_rd_cmd_reg_phy_addr>0</wsa2_rd_cmd_reg_phy_addr>
+ <wsa2_rd_fifo_reg_phy_addr>0</wsa2_rd_fifo_reg_phy_addr>
+ <!--specify the supported bit format on speaker end point -->
+ <!--this should be in the form of pal_audio_fmt_id-->
+ <!--e.g <supported_bit_format >PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>-->
+ <!--We support 24 bit for speaker as of now, as some module in ADSP does not support Q31 format-->
+ <!--This can be changed to PAL_AUDIO_FMT_PCM_S32_LE if 32 bit e2e support is required-->
+ <supported_bit_format>PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>
+ <!-- RAS should be enabled with speaker protection always -->
+ <ras_enabled>0</ras_enabled>
+ <!-- Flag to specify speaker in case Voice call is switched from
+ handset to speaker with only 1 speaker.
+ Values: Both speaker : 0
+ Right speaker: 1
+ Left speaker : 2
+ -->
+ <speaker_mono_right>0</speaker_mono_right>
+ <!-- Time in seconds for Quick cal. Set 0 to disable -->
+ <quick_cal_time>0</quick_cal_time>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <channels>1</channels>
+ <snd_device_name>speaker-mono-2</snd_device_name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_RX</name>
+ <priority>2</priority>
+ </usecase>
+ <!--
+ Playback/Recording streams have a default priority of 3
+ (default priority assigned in the streamPriorityLUT map in ResourceManager.cpp).
+ Check the comments above "Usecase Priorities" for details.
+ -->
+ <!--
+ While the UPD runs on a shared backend, whenever a speaker usecase arises,
+ UPD must always switch to the speaker; it can only return to handset when
+ the last speaker usecase terminates.
+ Giving UPD the lowest priority is in line with the understanding of
+ priority settings.
+ -->
+ <usecase>
+ <name>PAL_STREAM_ULTRASOUND</name>
+ <priority>4</priority>
+ <samplerate>96000</samplerate>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_HANDSET</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-RX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <!-- To enable external EC reference the flag extec_ref_enabled must be added as 1 -->
+ <ext_ec_ref_enabled>0</ext_ec_ref_enabled>
+ <samplerate>48000</samplerate>
+ <fractional_sr>0</fractional_sr>
+ <snd_device_name>handset-wcd</snd_device_name>
+ <handset_protection_enabled>0</handset_protection_enabled>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <custom-config key="HAC">
+ <snd_device_name>voice-handset-hac</snd_device_name> <!-- override sound device name with HAC handset -->
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_RX</name>
+ <priority>2</priority>
+ <custom-config key="HAC">
+ <snd_device_name>voice-handset-hac</snd_device_name> <!-- override sound device name with HAC handset for voip -->
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRASOUND</name>
+ <priority>4</priority>
+ <samplerate>96000</samplerate>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <fractional_sr>1</fractional_sr>
+ <snd_device_name>headphones</snd_device_name>
+ <!--HIFI Filter Headphones-Uncomment this when param key hifi_filter is true
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_PCM_OFFLOAD</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_RX</name>
+ <priority>2</priority>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <fractional_sr>1</fractional_sr>
+ <snd_device_name>headphones</snd_device_name>
+ <!--HIFI Filter Headphones-Uncomment this when param key hifi_filter is true
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_PCM_OFFLOAD</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_RX</name>
+ <priority>2</priority>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
+ <back_end_name>SLIM-DEV1-RX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-a2dp</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
+ <back_end_name>SLIM-DEV1-RX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-ble</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST</id>
+ <back_end_name>SLIM-DEV1-RX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-ble</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
+ <back_end_name>SLIM-DEV1-RX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-sco</snd_device_name>
+ <samplerate>8000</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_AUX_DIGITAL</id>
+ <back_end_name>DISPLAY_PORT-RX</back_end_name>
+ <max_channels>32</max_channels>
+ <channels>2</channels>
+ <snd_device_name>display-port</snd_device_name>
+ <fractional_sr>1</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_HDMI</id>
+ <back_end_name>DISPLAY_PORT-RX</back_end_name>
+ <max_channels>32</max_channels>
+ <channels>2</channels>
+ <fractional_sr>1</fractional_sr>
+ <snd_device_name>display-port</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_USB_DEVICE</id>
+ <back_end_name>USB_AUDIO-RX</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>usb-headphones</snd_device_name>
+ <fractional_sr>1</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_USB_HEADSET</id>
+ <back_end_name>USB_AUDIO-RX</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>usb-headphones</snd_device_name>
+ <fractional_sr>1</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_AUX_DIGITAL_1</id>
+ <back_end_name>DISPLAY_PORT-RX</back_end_name>
+ <max_channels>8</max_channels>
+ <channels>2</channels>
+ <snd_device_name>display-port</snd_device_name>
+ <fractional_sr>1</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_PROXY</id>
+ <back_end_name>PCM_RT_PROXY-RX-1</back_end_name>
+ <max_channels>8</max_channels>
+ <channels>2</channels>
+ <snd_device_name>afe-proxy</snd_device_name>
+ <fractional_sr>0</fractional_sr>
+ <samplerate>48000</samplerate>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_HEARING_AID</id>
+ <back_end_name>PCM_RT_PROXY-RX-1</back_end_name>
+ <max_channels>8</max_channels>
+ <channels>2</channels>
+ <snd_device_name>afe-proxy</snd_device_name>
+ <fractional_sr>0</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_HAPTICS_DEVICE</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-RX-6</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>haptics-dev</snd_device_name>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_ULTRASOUND</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>ultrasound-handset</snd_device_name>
+ <samplerate>96000</samplerate>
+ <bit_width>16</bit_width>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_ULTRASOUND_DEDICATED</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>ultrasound-handset</snd_device_name>
+ <samplerate>96000</samplerate>
+ <bit_width>16</bit_width>
+ </out-device>
+ </device_profile>
+ <in_streams>
+ <in_stream>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_VOICE_UI</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_ACD</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_PROXY</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
+ <disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_RAW</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
+ <disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_SENSOR_PCM_DATA</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ </in_streams>
+ <sound_trigger_platform_info>
+ <common_config>
+ <!-- Sound trigger streams common params -->
+ <param lpi_enable="true" />
+ <param support_nlpi_switch="true" />
+ <param support_device_switch="true" />
+ <param enable_debug_dumps="false" />
+ <param concurrent_capture="true" />
+ <param concurrent_voice_call="true" />
+ <param concurrent_voip_call="true" />
+ <param low_latency_bargein_enable="false" />
+ </common_config>
+ <capture_profile_list>
+ <!-- Common Profiles -->
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI_AAD">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_LPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_LPI_AAD">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <!-- ACD Specific Profiles -->
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_LPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <!-- Sensor PCM Data Specific Profiles -->
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFEC">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFEC">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <!-- SVA/Hotword Specific Profiles -->
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_NLPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_LPI">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_LPI_AAD">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_NLPI">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_FFNS">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="TRI_MIC_16KHZ_16BIT_FFNS">
+ <param sample_rate="16000" />
+ <param channels="3" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-tmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="QUAD_MIC_16KHZ_16BIT_FFNS">
+ <param sample_rate="16000" />
+ <param channels="4" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-qmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="TRI_MIC_16KHZ_16BIT_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="3" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-tmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="QUAD_MIC_16KHZ_16BIT_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="4" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-qmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="TRI_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="3" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-tmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="QUAD_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="4" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-qmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="TRI_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="3" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-tmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="QUAD_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="4" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-qmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ </capture_profile_list>
+ <acd_platform_info>
+ <config>
+ <param acd_enable="true" />
+ </config>
+ <!-- ACD -->
+ <stream_config>
+ <name>QC_ACD</name>
+ <param vendor_uuid="4e93281b-296e-4d73-9833-2710c3c7c1db" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI" />
+ <high_performance capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
+ </operating_modes>
+ <sound_model_info>
+ <sound_model>
+ <name>ACD_SOUND_MODEL_ID_EVENT</name>
+ <bin>event.eai</bin>
+ <uuid>0x0B001007</uuid>
+ <contexts>
+ <context id="0x0800132D" /> <!-- EVENT_ALARM -->
+ <context id="0x0800132E" /> <!-- EVENT_BABYCRYING -->
+ <context id="0x0800132F" /> <!-- EVENT_DOGBARKING -->
+ <context id="0x08001330" /> <!-- EVENT_DOORBELL -->
+ <context id="0x08001331" /> <!-- EVENT_DOOROPENCLOSE -->
+ <context id="0x08001332" /> <!-- EVENT_CRASH -->
+ <context id="0x08001333" /> <!-- EVENT_GLASSBREAKING -->
+ <context id="0x08001334" /> <!-- EVENT_SIREN -->
+ <context id="0x080013CC" /> <!-- EVENT_CARHONK -->
+ <context id="0x080013CD" /> <!-- EVENT_GUNSHOT -->
+ <context id="0x080013CE" /> <!-- EVENT_PHONERING -->
+ <context id="0x080013CF" /> <!-- EVENT_SLEEPAPNEA -->
+ <context id="0x080013D0" /> <!-- EVENT_SNORING -->
+ <context id="0x080013D1" /> <!-- EVENT_CATMEOW -->
+ <context id="0x080013D2" /> <!-- EVENT_DOORKNOCK -->
+ <context id="0x080013D3" /> <!-- EVENT_WATERFLOW -->
+ <context id="0x080013D4" /> <!-- EVENT_FIREALARM -->
+ </contexts>
+ </sound_model>
+ <sound_model>
+ <name>ACD_SOUND_MODEL_ID_SPEECH</name>
+ <bin>speech.eai</bin>
+ <uuid>0x0B001008</uuid>
+ <contexts>
+ <context id="0x08001335" /> <!-- AMBIENCE_SPEECH -->
+ </contexts>
+ </sound_model>
+ <sound_model>
+ <name>ACD_SOUND_MODEL_ID_MUSIC</name>
+ <bin>music.eai</bin>
+ <uuid>0x0B001009</uuid>
+ <contexts>
+ <context id="0x08001336" /> <!-- AMBIENCE_MUSIC -->
+ </contexts>
+ </sound_model>
+ <sound_model>
+ <name>ACD_SOUND_MODEL_AMBIENCE_NOISE_SILENCE</name>
+ <bin></bin> <!-- Following contexts dont have a model, hence empty bin -->
+ <uuid>0xFFFFFFFF</uuid> <!-- Indicates no sound model -->
+ <contexts>
+ <context id="0x08001337" /> <!-- AMBIENCE_NOISY_SPL -->
+ <context id="0x08001338" /> <!-- AMBIENCE_SILENT_SPL -->
+ <context id="0x08001339" /> <!-- AMBIENCE_NOISY_SFLUX -->
+ <context id="0x0800133A" /> <!-- AMBIENCE_SILENT_SFLUX -->
+ </contexts>
+ </sound_model>
+ </sound_model_info>
+ </stream_config>
+ <!-- Sensor PCM Data -->
+ <stream_config>
+ <name>QC_SENSOR_PCM_DATA</name>
+ <param vendor_uuid="c88a2c89-7a55-498c-836f-5d7ec8582990" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI" />
+ <low_power_ns capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFNS" />
+ <high_performance capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFEC" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFEC" />
+ <high_performance_ns capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
+ </operating_modes>
+ </stream_config>
+ </acd_platform_info>
+ <!-- Voice UI -->
+ <vui_platform_info>
+ <config>
+ <!-- Voice UI Params used by apk to indicate the Voice UI version current platform supports -->
+ <param version="0x0103" />
+ <param enable_failure_detection="false" />
+ <param notify_second_stage_failure="false" />
+ <param mmap_enable="true" />
+ <param mmap_buffer_duration="5000" />
+ <!-- 5ms duration of data -->
+ <param mmap_frame_length="5" />
+ <!-- Move this flag to common_config if ACD/Sensor PCM Data support car mode in the future -->
+ <param transit_to_non_lpi_on_charging="false" />
+ </config>
+ <!-- Multiple stream_config tags can be listed, each with unique -->
+ <!-- vendor_uuid. The below tag represents QC Voice UI sound model -->
+ <!-- configuration. ISV must use their own unique vendor_uuid. -->
+ <stream_config>
+ <name>QC_VOICE_UI</name>
+ <param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b" />
+ <param merge_first_stage_sound_models="false" />
+ <!--For now total 3 engines are supported, if more engine instances are needed,-->
+ <!-- do update acdb and usecaseKvManager.xml files by adding more instances -->
+ <param pdk_first_stage_max_engine_count="3"/>
+ <!-- Profile specific data which the algorithm can support -->
+ <param capture_keyword="2000" /> <!-- Default history buffer length -->
+ <param client_capture_read_delay="2000" /> <!-- reserved buffer duration for rt data -->
+ <param pre_roll_duration="500" /> <!-- Default preroll duration -->
+ <!-- durations in us -->
+ <param kw_start_tolerance="360000" />
+ <param kw_end_tolerance="240000" />
+ <param data_before_kw_start="360000" />
+ <param data_after_kw_end="480000" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI" />
+ <high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
+ <high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
+ </operating_modes>
+ <sound_model_info>
+ <first_stage_module_params>
+ <param module_type="GMM" />
+ <param load_sound_model_ids="0xC0000008, 0x0800104C" />
+ <param wakeup_config_ids="0xC0000008, 0x08001049" />
+ <param buffering_config_ids="0xC0000008, 0x08001044" />
+ <param engine_reset_ids="0xC0000008, 0x08001051" />
+ </first_stage_module_params>
+ <first_stage_module_params>
+ <param module_type="PDK" />
+ <param load_sound_model_ids="0xC0000008, 0x0800124E" />
+ <param unload_sound_model_ids="0xC0000008, 0x08001250" />
+ <param wakeup_config_ids="0xC0000008, 0x08001049" />
+ <param buffering_config_ids="0xC0000008, 0x0800124F" />
+ <param engine_reset_ids="0xC0000008, 0x08001051" />
+ </first_stage_module_params>
+ <arm_ss_module_params>
+ <!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION", "CUSTOM_DETECTION" -->
+ <param sm_detection_type= "KEYWORD_DETECTION" />
+ <param sm_id="0x2" />
+ <param module_lib="libcapiv2svacnnvendor.so" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1" />
+ </arm_ss_module_params>
+ <arm_ss_module_params>
+ <param sm_detection_type= "USER_VERIFICATION" />
+ <param sm_id="0x4" />
+ <param module_lib="libcapiv2uvvendor.so" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1" />
+ </arm_ss_module_params>
+ <arm_ss_module_params>
+ <param sm_detection_type= "KEYWORD_DETECTION" />
+ <param sm_id="0x8" />
+ <param module_lib="libcapiv2svarnnvendor.so" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1" />
+ </arm_ss_module_params>
+ <arm_ss_module_params>
+ <param sm_detection_type= "KEYWORD_DETECTION" />
+ <param sm_id="0x40" />
+ <param module_lib="libcapiv2udk7vendor.so" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1" />
+ </arm_ss_module_params>
+ </sound_model_info>
+ </stream_config>
+ <!-- Hotword Voice UI-->
+ <stream_config>
+ <name>HOTWORD_VOICE_UI</name>
+ <param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15" />
+ <param get_module_version="false" />
+ <param merge_first_stage_sound_models="false" />
+ <param capture_keyword="2000" />
+ <param client_capture_read_delay="2000" />
+ <param kw_start_tolerance="100" />
+ <param kw_end_tolerance="100" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI" />
+ <high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI" />
+ <high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI" />
+ </operating_modes>
+ <sound_model_info>
+ <first_stage_module_params>
+ <param module_type="HOTWORD" />
+ <param load_sound_model_ids="0xC0000008, 0x0800104C" />
+ <param unload_sound_model_ids="0xC0000008, 0x00012C15" />
+ <param buffering_config_ids="0xC0000008, 0x08001044" />
+ <param version_ids="0xC0000008, 0x18000101" />
+ <param engine_reset_ids="0xC0000008, 0x08001051" />
+ </first_stage_module_params>
+ </sound_model_info>
+ </stream_config>
+ <!-- CUSTOM Voice UI-->
+ <stream_config>
+ <name>CUSTOM_VOICE_UI</name>
+ <!-- NOTE: Customer need to replace with their own uuid and match with sound model -->
+ <param vendor_uuid="c51c508a-ee1b-11ec-8ea0-0242ac120002" />
+ <param merge_first_stage_sound_models="false" />
+ <!-- Profile specific data which the algorithm can support -->
+ <param capture_keyword="2000" /> <!-- Default history buffer length -->
+ <param client_capture_read_delay="2000" /> <!-- reserved buffer duration for rt data -->
+ <param pre_roll_duration="500" /> <!-- Default preroll duration -->
+ <!-- durations in us -->
+ <param kw_start_tolerance="360000" />
+ <param kw_end_tolerance="240000" />
+ <param data_before_kw_start="360000" />
+ <param data_after_kw_end="480000" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_CUSTOM_NS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_NS" />
+ <high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_CUSTOM_ECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_ECNS" />
+ <high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_CUSTOM_ECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_ECNS" />
+ </operating_modes>
+ <sound_model_info>
+ <first_stage_module_params>
+ <param module_type="CUSTOM1" />
+ <param load_sound_model_ids="0xC0000008, 0x0800104C" />
+ <param custom_config_ids="0xC0000008, 0x08001049" />
+ <param buffering_config_ids="0xC0000008, 0x08001044" />
+ <param engine_reset_ids="0xC0000008, 0x08001051" />
+ </first_stage_module_params>
+ </sound_model_info>
+ </stream_config>
+ </vui_platform_info>
+ </sound_trigger_platform_info>
+</resource_manager_info>
diff --git a/configs/crow/resourcemanager_crow_idp_wcd9395_dmic.xml b/configs/crow/resourcemanager_crow_idp_wcd9395_dmic.xml
new file mode 100644
index 0000000..c0cbe7b
--- /dev/null
+++ b/configs/crow/resourcemanager_crow_idp_wcd9395_dmic.xml
@@ -0,0 +1,1591 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Copyright (c) 2020-2021, 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.
+
+* Changes from Qualcomm Innovation Center are provided under the following license:
+*
+* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted (subject to the limitations in the
+* disclaimer below) 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 Qualcomm Innovation Center, Inc. nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+* IN NO EVENT SHALL THE COPYRIGHT HOLDER 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. -->
+
+<resource_manager_info>
+ <version>2.0</version>
+ <config_params>
+ <param key="native_audio_mode" value="multiple_mix_dsp"/>
+ <!-- Uncomment HIFI Filter Headphones related sections when set this
+ hifi_filter key to true -->
+ <param key="hifi_filter" value="false"/>
+ <param key="max_sessions" value="128"/>
+ <param key="max_nonTunnel_sessions" value="4"/>
+ <param key="logging_level" value ="3" />
+ <param key="context_manager_enable" value ="true" />
+ <param key="upd_dedicated_be" value ="true" />
+ <param key="upd_duty_cycle_enable" value="false" />
+ <param key="dual_mono" value ="false" />
+ <param key="signal_handler" value ="true" />
+ <param key="device_mux_config" value ="false" />
+ <param key="upd_virtual_port" value ="false" />
+ </config_params>
+ <config_volume>
+ <use_volume_set_param>0</use_volume_set_param>
+ <supported_streams>
+ <supported_stream>PAL_STREAM_ULTRA_LOW_LATENCY</supported_stream>
+ <supported_stream>PAL_STREAM_COMPRESSED</supported_stream>
+ </supported_streams>
+ </config_volume>
+ <config_lpm>
+ <use_disable_lpm>1</use_disable_lpm>
+ <lpm_supported_streams>
+ <lpm_supported_stream>PAL_STREAM_LOW_LATENCY</lpm_supported_stream>
+ <lpm_supported_stream>PAL_STREAM_ULTRA_LOW_LATENCY</lpm_supported_stream>
+ </lpm_supported_streams>
+ </config_lpm>
+ <config_gapless key="gapless_supported" value="1"/>
+ <bt_codecs>
+ <codec codec_format="CODEC_TYPE_AAC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
+ <codec codec_format="CODEC_TYPE_SBC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
+ <codec codec_format="CODEC_TYPE_LDAC" codec_type="enc" codec_library="lib_bt_bundle.so" />
+ <codec codec_format="CODEC_TYPE_APTX" codec_type="enc" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_APTX_HD" codec_type="enc" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_APTX_AD" codec_type="enc" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_APTX_DUAL_MONO" codec_type="enc" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_APTX_AD_SPEECH" codec_type="enc|dec" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_LC3" codec_type="enc|dec" codec_library="lib_bt_ble.so" />
+ <codec codec_format="CODEC_TYPE_APTX_AD_QLEA" codec_type="enc" codec_library="lib_bt_ble.so" />
+ </bt_codecs>
+ <gain_db_to_level_mapping>
+ <gain_level_map db="-59" level="5"/>
+ <gain_level_map db="-17.4" level="4"/>
+ <gain_level_map db="-13.8" level="3"/>
+ <gain_level_map db="-10.2" level="2"/>
+ <gain_level_map db="0" level="1"/>
+ </gain_db_to_level_mapping>
+ <config_voice>
+ <vsid>0xB3000000</vsid>
+ <loopbackDelay>1000</loopbackDelay>
+ <maxVolIndex>5</maxVolIndex>
+ <mode_map>
+ <modepair key="0x11C05000" value="0xB3000001"/>
+ <modepair key="0x11DC5000" value="0xB3000001"/>
+ <modepair key="0x12006000" value="0xB3000001"/>
+ <modepair key="0x121C6000" value="0xB3000001"/>
+ </mode_map>
+ </config_voice>
+ <sleep_monitor_vote_streams>
+ <low_power_stream_type>PAL_STREAM_VOICE_UI</low_power_stream_type>
+ <low_power_stream_type>PAL_STREAM_ACD</low_power_stream_type>
+ <low_power_stream_type>PAL_STREAM_ULTRASOUND</low_power_stream_type>
+ <low_power_stream_type>PAL_STREAM_SENSOR_PCM_DATA</low_power_stream_type>
+ <avoid_vote_stream_type>PAL_STREAM_CONTEXT_PROXY</avoid_vote_stream_type>
+ </sleep_monitor_vote_streams>
+ <group_device_cfg>
+ <upd_rx>
+ <snd_device name="handset" />
+ <group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="1" />
+ </upd_rx>
+ <handset>
+ <group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="1" />
+ </handset>
+ <speaker>
+ <group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="3" />
+ </speaker>
+ <speaker_voice>
+ <group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="1" />
+ </speaker_voice>
+ <upd_rx_handset>
+ <snd_device name="speaker" />
+ <devicepp_mfc sample_rate="96000" channels="2" bit_width="16" />
+ <group_dev sample_rate = "96000" channels="2" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="3" />
+ </upd_rx_handset>
+ <upd_rx_speaker>
+ <snd_device name="speaker" />
+ <devicepp_mfc sample_rate="96000" channels="2" bit_width="16" />
+ <group_dev sample_rate = "96000" channels="2" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="3" />
+ </upd_rx_speaker>
+ </group_device_cfg>
+ <!--
+ Usecase Priorities
+ ====================
+
+ Examples of usecases with their corresponding priorities,
+ ranked from 1 (highest priority).
+ 1 for voice
+ 2 for VOIP
+ 3 for playback/recording and (default priority assigned in the streamPriorityLUT map in ResourceManager.cpp)
+ 4 for UPD
+
+ In the event of concurrency on shared backend devices, the stream with the highest priority will determine the final device.
+ Example:
+ ========================================
+ usecase | priority | snd-devicename
+ ========================================
+ VOICE | 1 | voice-handset
+ VOIP | 2 | voip-handset
+ deepbuffer| 3 | speaker-mono
+
+ The final device will be voice-handset.
+ -->
+ <device_profile>
+ <in-device>
+ <id>PAL_DEVICE_IN_HANDSET_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
+ <max_channels>4</max_channels>
+ <channels>1</channels>
+ <samplerate>48000</samplerate>
+ <snd_device_name>handset-mic</snd_device_name>
+ <ec_enable>0</ec_enable>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <ec_enable>1</ec_enable>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <!--Uncomment these lines instead of above lines if needing to enable EC per custom key
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="vr-mic">
+ <ec_enable>1</ec_enable>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <ec_enable>1</ec_enable>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <priority>2</priority>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <sidetone_mode>HW</sidetone_mode>
+ <bit_width>16</bit_width>
+ <ec_enable>1</ec_enable>
+ <custom-config key="dual-mic">
+ <channels>2</channels>
+ <snd_device_name>handset-dmic-endfire</snd_device_name>
+ </custom-config>
+ <custom-config key="quad-mic">
+ <channels>4</channels>
+ <snd_device_name>quad-mic</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ <custom-config key="dual-mic">
+ <channels>2</channels>
+ <snd_device_name>handset-dmic-endfire</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_RAW</name>
+ <snd_device_name>handset-mic-unprocessed</snd_device_name>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_HANDSET</id>
+ <id>PAL_DEVICE_OUT_SPEAKER</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_SPEAKER_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
+ <max_channels>4</max_channels>
+ <samplerate>48000</samplerate>
+ <channels>1</channels>
+ <ec_enable>0</ec_enable>
+ <snd_device_name>speaker-mic</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <ec_enable>1</ec_enable>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <!--Uncomment these lines instead of above lines if needing to enable EC per custom key
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="vr-mic">
+ <ec_enable>1</ec_enable>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <ec_enable>1</ec_enable>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <priority>2</priority>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <sidetone_mode>OFF</sidetone_mode>
+ <bit_width>16</bit_width>
+ <ec_enable>1</ec_enable>
+ <custom-config key="dual-mic">
+ <channels>2</channels>
+ <snd_device_name>speaker-dmic-endfire</snd_device_name>
+ </custom-config>
+ <custom-config key="quad-mic">
+ <channels>4</channels>
+ <snd_device_name>quad-mic</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_LOOPBACK</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_SPEAKER</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_WIRED_HEADSET</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>headset-mic</snd_device_name>
+ <ec_enable>0</ec_enable>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <!--Uncomment these lines instead of above lines if needing to enable EC per custom key
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="vr-mic">
+ <ec_enable>1</ec_enable>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <sidetone_mode>HW</sidetone_mode>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <priority>1</priority>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
+ <id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET</id>
+ <back_end_name>SLIM-DEV1-TX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <samplerate>8000</samplerate>
+ <bit_width>16</bit_width>
+ <snd_device_name>bt-sco-mic</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_HANDSET_VA_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <snd_device_name>va-mic</snd_device_name>
+ <ec_enable>1</ec_enable>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_SPEAKER</id>
+ <id>PAL_DEVICE_OUT_HANDSET</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_HEADSET_VA_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>headset-va-mic</snd_device_name>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <ec_enable>1</ec_enable>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
+ <id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_USB_HEADSET</id>
+ <back_end_name>USB_AUDIO-TX</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <samplerate>48000</samplerate>
+ <ec_enable>0</ec_enable>
+ <snd_device_name>usb-headset-mic</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <!--Uncomment these lines instead of above lines if needing to enable EC per custom key
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="vr-mic">
+ <ec_enable>1</ec_enable>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <sidetone_mode>HW</sidetone_mode>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_USB_HEADSET</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_FM_TUNER</id>
+ <back_end_name>MI2S-LPAIF-TX-PRIMARY</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>play-fm</snd_device_name>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_LOOPBACK</name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_PROXY</id>
+ <back_end_name>PCM_RT_PROXY-TX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>afe-proxy</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_PROXY</name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_VI_FEEDBACK</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-TX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <samplerate>48000</samplerate>
+ <bit_width>32</bit_width>
+ <snd_device_name>vi-feedback</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <channels>1</channels>
+ <snd_device_name>vi-feedback-mono-2</snd_device_name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_CPS_FEEDBACK</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-TX-2</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <samplerate>24000</samplerate>
+ <bit_width>32</bit_width>
+ <snd_device_name>cps-feedback</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <channels>1</channels>
+ <snd_device_name>cps-feedback-mono-2</snd_device_name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_BLUETOOTH_A2DP</id>
+ <back_end_name>SLIM-DEV1-TX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-a2dp-mic</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_BLUETOOTH_BLE</id>
+ <back_end_name>SLIM-DEV1-TX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-ble-mic</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_TELEPHONY_RX</id>
+ <back_end_name>PCM_RT_PROXY-TX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>afe-proxy</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_PROXY</name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_ULTRASOUND_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-TX-4</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <samplerate>96000</samplerate>
+ <bit_width>16</bit_width>
+ <snd_device_name>ultrasound-mic</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_ULTRASOUND</name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_EXT_EC_REF</id>
+ <!-- The below back_end_name is for internal testing purpose only, needs to be modified to appropriate value if TDM/MI2S -->
+ <back_end_name>CODEC_DMA-LPAIF_WSA-TX-1</back_end_name>
+ <snd_device_name>ext_ec_ref_tx</snd_device_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <bit_width>16</bit_width>
+ <samplerate>48000</samplerate>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_ECHO_REF</id>
+ <back_end_name>PCM_DUMMY-TX-0</back_end_name>
+ <snd_device_name>echo-ref-record</snd_device_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <bit_width>16</bit_width>
+ <samplerate>48000</samplerate>
+ <usecase>
+ <name>PAL_STREAM_RAW</name>
+ </usecase>
+ </in-device>
+ <out-device>
+ <id>PAL_DEVICE_NONE</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>none</snd_device_name>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_SPEAKER</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <samplerate>48000</samplerate>
+ <snd_device_name>speaker</snd_device_name>
+ <speaker_protection_enabled>1</speaker_protection_enabled>
+ <fractional_sr>0</fractional_sr>
+ <!-- To enable external EC reference the flag extec_ref_enabled must be added as 1 -->
+ <ext_ec_ref_enabled>0</ext_ec_ref_enabled>
+ <!-- Flag to specify cps mode which is applicable
+ Values: disable CPS: 0
+ CPS streaming: 1
+ ADSP control mode: 2
+ -->
+ <cps_mode>1</cps_mode>
+ <vbat_enabled>1</vbat_enabled>
+ <wsa2_enable>0</wsa2_enable>
+ <!--wsa registers physical addresses in decimal notation -->
+ <wsa_wr_cmd_reg_phy_addr>52757248</wsa_wr_cmd_reg_phy_addr>
+ <wsa_rd_cmd_reg_phy_addr>52757252</wsa_rd_cmd_reg_phy_addr>
+ <wsa_rd_fifo_reg_phy_addr>52757272</wsa_rd_fifo_reg_phy_addr>
+ <!--wsa2 registers physical addresses in decimal notation and to be updated only if wsa2 is enabled, else should be marked as 0-->
+ <wsa2_wr_cmd_reg_phy_addr>0</wsa2_wr_cmd_reg_phy_addr>
+ <wsa2_rd_cmd_reg_phy_addr>0</wsa2_rd_cmd_reg_phy_addr>
+ <wsa2_rd_fifo_reg_phy_addr>0</wsa2_rd_fifo_reg_phy_addr>
+ <!--specify the supported bit format on speaker end point -->
+ <!--this should be in the form of pal_audio_fmt_id-->
+ <!--e.g <supported_bit_format >PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>-->
+ <!--We support 24 bit for speaker as of now, as some module in ADSP does not support Q31 format-->
+ <!--This can be changed to PAL_AUDIO_FMT_PCM_S32_LE if 32 bit e2e support is required-->
+ <supported_bit_format>PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>
+ <!-- RAS should be enabled with speaker protection always -->
+ <ras_enabled>0</ras_enabled>
+ <!-- Flag to specify speaker in case Voice call is switched from
+ handset to speaker with only 1 speaker.
+ Values: Both speaker : 0
+ Right speaker: 1
+ Left speaker : 2
+ -->
+ <speaker_mono_right>0</speaker_mono_right>
+ <!-- Time in seconds for Quick cal. Set 0 to disable -->
+ <quick_cal_time>0</quick_cal_time>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <channels>1</channels>
+ <snd_device_name>speaker-mono-2</snd_device_name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_RX</name>
+ <priority>2</priority>
+ </usecase>
+ <!--
+ Playback/Recording streams have a default priority of 3
+ (default priority assigned in the streamPriorityLUT map in ResourceManager.cpp).
+ Check the comments above "Usecase Priorities" for details.
+ -->
+ <!--
+ While the UPD runs on a shared backend, whenever a speaker usecase arises,
+ UPD must always switch to the speaker; it can only return to handset when
+ the last speaker usecase terminates.
+ Giving UPD the lowest priority is in line with the understanding of
+ priority settings.
+ -->
+ <usecase>
+ <name>PAL_STREAM_ULTRASOUND</name>
+ <priority>4</priority>
+ <samplerate>96000</samplerate>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_HANDSET</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <!-- To enable external EC reference the flag extec_ref_enabled must be added as 1 -->
+ <ext_ec_ref_enabled>0</ext_ec_ref_enabled>
+ <samplerate>48000</samplerate>
+ <fractional_sr>0</fractional_sr>
+ <snd_device_name>handset</snd_device_name>
+ <handset_protection_enabled>0</handset_protection_enabled>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <custom-config key="HAC">
+ <snd_device_name>voice-handset-hac</snd_device_name> <!-- override sound device name with HAC handset -->
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_RX</name>
+ <priority>2</priority>
+ <custom-config key="HAC">
+ <snd_device_name>voice-handset-hac</snd_device_name> <!-- override sound device name with HAC handset for voip -->
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRASOUND</name>
+ <priority>4</priority>
+ <samplerate>96000</samplerate>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <fractional_sr>1</fractional_sr>
+ <snd_device_name>headphones</snd_device_name>
+ <!--HIFI Filter Headphones-Uncomment this when param key hifi_filter is true
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_PCM_OFFLOAD</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_RX</name>
+ <priority>2</priority>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <fractional_sr>1</fractional_sr>
+ <snd_device_name>headphones</snd_device_name>
+ <!--HIFI Filter Headphones-Uncomment this when param key hifi_filter is true
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_PCM_OFFLOAD</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_RX</name>
+ <priority>2</priority>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
+ <back_end_name>SLIM-DEV1-RX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-a2dp</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
+ <back_end_name>SLIM-DEV1-RX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-ble</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST</id>
+ <back_end_name>SLIM-DEV1-RX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-ble</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
+ <back_end_name>SLIM-DEV1-RX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-sco</snd_device_name>
+ <samplerate>8000</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_AUX_DIGITAL</id>
+ <back_end_name>DISPLAY_PORT-RX</back_end_name>
+ <max_channels>32</max_channels>
+ <channels>2</channels>
+ <snd_device_name>display-port</snd_device_name>
+ <fractional_sr>1</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_HDMI</id>
+ <back_end_name>DISPLAY_PORT-RX</back_end_name>
+ <max_channels>32</max_channels>
+ <channels>2</channels>
+ <fractional_sr>1</fractional_sr>
+ <snd_device_name>display-port</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_USB_DEVICE</id>
+ <back_end_name>USB_AUDIO-RX</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>usb-headphones</snd_device_name>
+ <fractional_sr>1</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_USB_HEADSET</id>
+ <back_end_name>USB_AUDIO-RX</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>usb-headphones</snd_device_name>
+ <fractional_sr>1</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_AUX_DIGITAL_1</id>
+ <back_end_name>DISPLAY_PORT-RX</back_end_name>
+ <max_channels>8</max_channels>
+ <channels>2</channels>
+ <snd_device_name>display-port</snd_device_name>
+ <fractional_sr>1</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_PROXY</id>
+ <back_end_name>PCM_RT_PROXY-RX-1</back_end_name>
+ <max_channels>8</max_channels>
+ <channels>2</channels>
+ <snd_device_name>afe-proxy</snd_device_name>
+ <fractional_sr>0</fractional_sr>
+ <samplerate>48000</samplerate>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_HEARING_AID</id>
+ <back_end_name>PCM_RT_PROXY-RX-1</back_end_name>
+ <max_channels>8</max_channels>
+ <channels>2</channels>
+ <snd_device_name>afe-proxy</snd_device_name>
+ <fractional_sr>0</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_HAPTICS_DEVICE</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-RX-6</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>haptics-dev</snd_device_name>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_ULTRASOUND</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>ultrasound-handset</snd_device_name>
+ <samplerate>96000</samplerate>
+ <bit_width>16</bit_width>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_ULTRASOUND_DEDICATED</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>ultrasound-handset</snd_device_name>
+ <samplerate>96000</samplerate>
+ <bit_width>16</bit_width>
+ </out-device>
+ </device_profile>
+ <in_streams>
+ <in_stream>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_VOICE_UI</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_ACD</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_PROXY</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
+ <disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_RAW</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
+ <disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_SENSOR_PCM_DATA</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ </in_streams>
+ <sound_trigger_platform_info>
+ <common_config>
+ <!-- Sound trigger streams common params -->
+ <param lpi_enable="true" />
+ <param support_nlpi_switch="true" />
+ <param support_device_switch="true" />
+ <param enable_debug_dumps="false" />
+ <param concurrent_capture="true" />
+ <param concurrent_voice_call="true" />
+ <param concurrent_voip_call="true" />
+ <param low_latency_bargein_enable="false" />
+ </common_config>
+ <capture_profile_list>
+ <!-- Common Profiles -->
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI_AAD">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_LPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_LPI_AAD">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <!-- ACD Specific Profiles -->
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_LPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <!-- Sensor PCM Data Specific Profiles -->
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFEC">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFEC">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <!-- SVA/Hotword Specific Profiles -->
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_NLPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_LPI">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_LPI_AAD">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_NLPI">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_FFNS">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="TRI_MIC_16KHZ_16BIT_FFNS">
+ <param sample_rate="16000" />
+ <param channels="3" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-tmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="QUAD_MIC_16KHZ_16BIT_FFNS">
+ <param sample_rate="16000" />
+ <param channels="4" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-qmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="TRI_MIC_16KHZ_16BIT_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="3" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-tmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="QUAD_MIC_16KHZ_16BIT_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="4" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-qmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="TRI_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="3" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-tmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="QUAD_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="4" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-qmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="TRI_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="3" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-tmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="QUAD_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="4" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-qmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ </capture_profile_list>
+ <acd_platform_info>
+ <config>
+ <param acd_enable="true" />
+ </config>
+ <!-- ACD -->
+ <stream_config>
+ <name>QC_ACD</name>
+ <param vendor_uuid="4e93281b-296e-4d73-9833-2710c3c7c1db" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI" />
+ <high_performance capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
+ </operating_modes>
+ <sound_model_info>
+ <sound_model>
+ <name>ACD_SOUND_MODEL_ID_EVENT</name>
+ <bin>event.eai</bin>
+ <uuid>0x0B001007</uuid>
+ <contexts>
+ <context id="0x0800132D" /> <!-- EVENT_ALARM -->
+ <context id="0x0800132E" /> <!-- EVENT_BABYCRYING -->
+ <context id="0x0800132F" /> <!-- EVENT_DOGBARKING -->
+ <context id="0x08001330" /> <!-- EVENT_DOORBELL -->
+ <context id="0x08001331" /> <!-- EVENT_DOOROPENCLOSE -->
+ <context id="0x08001332" /> <!-- EVENT_CRASH -->
+ <context id="0x08001333" /> <!-- EVENT_GLASSBREAKING -->
+ <context id="0x08001334" /> <!-- EVENT_SIREN -->
+ <context id="0x080013CC" /> <!-- EVENT_CARHONK -->
+ <context id="0x080013CD" /> <!-- EVENT_GUNSHOT -->
+ <context id="0x080013CE" /> <!-- EVENT_PHONERING -->
+ <context id="0x080013CF" /> <!-- EVENT_SLEEPAPNEA -->
+ <context id="0x080013D0" /> <!-- EVENT_SNORING -->
+ <context id="0x080013D1" /> <!-- EVENT_CATMEOW -->
+ <context id="0x080013D2" /> <!-- EVENT_DOORKNOCK -->
+ <context id="0x080013D3" /> <!-- EVENT_WATERFLOW -->
+ <context id="0x080013D4" /> <!-- EVENT_FIREALARM -->
+ </contexts>
+ </sound_model>
+ <sound_model>
+ <name>ACD_SOUND_MODEL_ID_SPEECH</name>
+ <bin>speech.eai</bin>
+ <uuid>0x0B001008</uuid>
+ <contexts>
+ <context id="0x08001335" /> <!-- AMBIENCE_SPEECH -->
+ </contexts>
+ </sound_model>
+ <sound_model>
+ <name>ACD_SOUND_MODEL_ID_MUSIC</name>
+ <bin>music.eai</bin>
+ <uuid>0x0B001009</uuid>
+ <contexts>
+ <context id="0x08001336" /> <!-- AMBIENCE_MUSIC -->
+ </contexts>
+ </sound_model>
+ <sound_model>
+ <name>ACD_SOUND_MODEL_AMBIENCE_NOISE_SILENCE</name>
+ <bin></bin> <!-- Following contexts dont have a model, hence empty bin -->
+ <uuid>0xFFFFFFFF</uuid> <!-- Indicates no sound model -->
+ <contexts>
+ <context id="0x08001337" /> <!-- AMBIENCE_NOISY_SPL -->
+ <context id="0x08001338" /> <!-- AMBIENCE_SILENT_SPL -->
+ <context id="0x08001339" /> <!-- AMBIENCE_NOISY_SFLUX -->
+ <context id="0x0800133A" /> <!-- AMBIENCE_SILENT_SFLUX -->
+ </contexts>
+ </sound_model>
+ </sound_model_info>
+ </stream_config>
+ <!-- Sensor PCM Data -->
+ <stream_config>
+ <name>QC_SENSOR_PCM_DATA</name>
+ <param vendor_uuid="c88a2c89-7a55-498c-836f-5d7ec8582990" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI" />
+ <low_power_ns capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFNS" />
+ <high_performance capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFEC" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFEC" />
+ <high_performance_ns capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
+ </operating_modes>
+ </stream_config>
+ </acd_platform_info>
+ <!-- Voice UI -->
+ <vui_platform_info>
+ <config>
+ <!-- Voice UI Params used by apk to indicate the Voice UI version current platform supports -->
+ <param version="0x0103" />
+ <param enable_failure_detection="false" />
+ <param notify_second_stage_failure="false" />
+ <param mmap_enable="true" />
+ <param mmap_buffer_duration="5000" />
+ <!-- 5ms duration of data -->
+ <param mmap_frame_length="5" />
+ <!-- Move this flag to common_config if ACD/Sensor PCM Data support car mode in the future -->
+ <param transit_to_non_lpi_on_charging="false" />
+ </config>
+ <!-- Multiple stream_config tags can be listed, each with unique -->
+ <!-- vendor_uuid. The below tag represents QC Voice UI sound model -->
+ <!-- configuration. ISV must use their own unique vendor_uuid. -->
+ <stream_config>
+ <name>QC_VOICE_UI</name>
+ <param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b" />
+ <param merge_first_stage_sound_models="false" />
+ <!--For now total 3 engines are supported, if more engine instances are needed,-->
+ <!-- do update acdb and usecaseKvManager.xml files by adding more instances -->
+ <param pdk_first_stage_max_engine_count="3"/>
+ <!-- Profile specific data which the algorithm can support -->
+ <param capture_keyword="2000" /> <!-- Default history buffer length -->
+ <param client_capture_read_delay="2000" /> <!-- reserved buffer duration for rt data -->
+ <param pre_roll_duration="500" /> <!-- Default preroll duration -->
+ <!-- durations in us -->
+ <param kw_start_tolerance="360000" />
+ <param kw_end_tolerance="240000" />
+ <param data_before_kw_start="360000" />
+ <param data_after_kw_end="480000" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI" />
+ <high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
+ <high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
+ </operating_modes>
+ <sound_model_info>
+ <first_stage_module_params>
+ <param module_type="GMM" />
+ <param load_sound_model_ids="0xC0000008, 0x0800104C" />
+ <param wakeup_config_ids="0xC0000008, 0x08001049" />
+ <param buffering_config_ids="0xC0000008, 0x08001044" />
+ <param engine_reset_ids="0xC0000008, 0x08001051" />
+ </first_stage_module_params>
+ <first_stage_module_params>
+ <param module_type="PDK" />
+ <param load_sound_model_ids="0xC0000008, 0x0800124E" />
+ <param unload_sound_model_ids="0xC0000008, 0x08001250" />
+ <param wakeup_config_ids="0xC0000008, 0x08001049" />
+ <param buffering_config_ids="0xC0000008, 0x0800124F" />
+ <param engine_reset_ids="0xC0000008, 0x08001051" />
+ </first_stage_module_params>
+ <arm_ss_module_params>
+ <!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION", "CUSTOM_DETECTION" -->
+ <param sm_detection_type= "KEYWORD_DETECTION" />
+ <param sm_id="0x2" />
+ <param module_lib="libcapiv2svacnnvendor.so" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1" />
+ </arm_ss_module_params>
+ <arm_ss_module_params>
+ <param sm_detection_type= "USER_VERIFICATION" />
+ <param sm_id="0x4" />
+ <param module_lib="libcapiv2uvvendor.so" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1" />
+ </arm_ss_module_params>
+ <arm_ss_module_params>
+ <param sm_detection_type= "KEYWORD_DETECTION" />
+ <param sm_id="0x8" />
+ <param module_lib="libcapiv2svarnnvendor.so" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1" />
+ </arm_ss_module_params>
+ <arm_ss_module_params>
+ <param sm_detection_type= "KEYWORD_DETECTION" />
+ <param sm_id="0x40" />
+ <param module_lib="libcapiv2udk7vendor.so" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1" />
+ </arm_ss_module_params>
+ </sound_model_info>
+ </stream_config>
+ <!-- Hotword Voice UI-->
+ <stream_config>
+ <name>HOTWORD_VOICE_UI</name>
+ <param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15" />
+ <param get_module_version="false" />
+ <param merge_first_stage_sound_models="false" />
+ <param capture_keyword="2000" />
+ <param client_capture_read_delay="2000" />
+ <param kw_start_tolerance="100" />
+ <param kw_end_tolerance="100" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI" />
+ <high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI" />
+ <high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI" />
+ </operating_modes>
+ <sound_model_info>
+ <first_stage_module_params>
+ <param module_type="HOTWORD" />
+ <param load_sound_model_ids="0xC0000008, 0x0800104C" />
+ <param unload_sound_model_ids="0xC0000008, 0x00012C15" />
+ <param buffering_config_ids="0xC0000008, 0x08001044" />
+ <param version_ids="0xC0000008, 0x18000101" />
+ <param engine_reset_ids="0xC0000008, 0x08001051" />
+ </first_stage_module_params>
+ </sound_model_info>
+ </stream_config>
+ <!-- CUSTOM Voice UI-->
+ <stream_config>
+ <name>CUSTOM_VOICE_UI</name>
+ <!-- NOTE: Customer need to replace with their own uuid and match with sound model -->
+ <param vendor_uuid="c51c508a-ee1b-11ec-8ea0-0242ac120002" />
+ <param merge_first_stage_sound_models="false" />
+ <!-- Profile specific data which the algorithm can support -->
+ <param capture_keyword="2000" /> <!-- Default history buffer length -->
+ <param client_capture_read_delay="2000" /> <!-- reserved buffer duration for rt data -->
+ <param pre_roll_duration="500" /> <!-- Default preroll duration -->
+ <!-- durations in us -->
+ <param kw_start_tolerance="360000" />
+ <param kw_end_tolerance="240000" />
+ <param data_before_kw_start="360000" />
+ <param data_after_kw_end="480000" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_CUSTOM_NS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_NS" />
+ <high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_CUSTOM_ECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_ECNS" />
+ <high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_CUSTOM_ECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_ECNS" />
+ </operating_modes>
+ <sound_model_info>
+ <first_stage_module_params>
+ <param module_type="CUSTOM1" />
+ <param load_sound_model_ids="0xC0000008, 0x0800104C" />
+ <param custom_config_ids="0xC0000008, 0x08001049" />
+ <param buffering_config_ids="0xC0000008, 0x08001044" />
+ <param engine_reset_ids="0xC0000008, 0x08001051" />
+ </first_stage_module_params>
+ </sound_model_info>
+ </stream_config>
+ </vui_platform_info>
+ </sound_trigger_platform_info>
+</resource_manager_info>
diff --git a/configs/crow/resourcemanager_crow_idp_wcd9395_wcd_dmic.xml b/configs/crow/resourcemanager_crow_idp_wcd9395_wcd_dmic.xml
new file mode 100644
index 0000000..c0cbe7b
--- /dev/null
+++ b/configs/crow/resourcemanager_crow_idp_wcd9395_wcd_dmic.xml
@@ -0,0 +1,1591 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Copyright (c) 2020-2021, 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.
+
+* Changes from Qualcomm Innovation Center are provided under the following license:
+*
+* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted (subject to the limitations in the
+* disclaimer below) 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 Qualcomm Innovation Center, Inc. nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+* IN NO EVENT SHALL THE COPYRIGHT HOLDER 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. -->
+
+<resource_manager_info>
+ <version>2.0</version>
+ <config_params>
+ <param key="native_audio_mode" value="multiple_mix_dsp"/>
+ <!-- Uncomment HIFI Filter Headphones related sections when set this
+ hifi_filter key to true -->
+ <param key="hifi_filter" value="false"/>
+ <param key="max_sessions" value="128"/>
+ <param key="max_nonTunnel_sessions" value="4"/>
+ <param key="logging_level" value ="3" />
+ <param key="context_manager_enable" value ="true" />
+ <param key="upd_dedicated_be" value ="true" />
+ <param key="upd_duty_cycle_enable" value="false" />
+ <param key="dual_mono" value ="false" />
+ <param key="signal_handler" value ="true" />
+ <param key="device_mux_config" value ="false" />
+ <param key="upd_virtual_port" value ="false" />
+ </config_params>
+ <config_volume>
+ <use_volume_set_param>0</use_volume_set_param>
+ <supported_streams>
+ <supported_stream>PAL_STREAM_ULTRA_LOW_LATENCY</supported_stream>
+ <supported_stream>PAL_STREAM_COMPRESSED</supported_stream>
+ </supported_streams>
+ </config_volume>
+ <config_lpm>
+ <use_disable_lpm>1</use_disable_lpm>
+ <lpm_supported_streams>
+ <lpm_supported_stream>PAL_STREAM_LOW_LATENCY</lpm_supported_stream>
+ <lpm_supported_stream>PAL_STREAM_ULTRA_LOW_LATENCY</lpm_supported_stream>
+ </lpm_supported_streams>
+ </config_lpm>
+ <config_gapless key="gapless_supported" value="1"/>
+ <bt_codecs>
+ <codec codec_format="CODEC_TYPE_AAC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
+ <codec codec_format="CODEC_TYPE_SBC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
+ <codec codec_format="CODEC_TYPE_LDAC" codec_type="enc" codec_library="lib_bt_bundle.so" />
+ <codec codec_format="CODEC_TYPE_APTX" codec_type="enc" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_APTX_HD" codec_type="enc" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_APTX_AD" codec_type="enc" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_APTX_DUAL_MONO" codec_type="enc" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_APTX_AD_SPEECH" codec_type="enc|dec" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_LC3" codec_type="enc|dec" codec_library="lib_bt_ble.so" />
+ <codec codec_format="CODEC_TYPE_APTX_AD_QLEA" codec_type="enc" codec_library="lib_bt_ble.so" />
+ </bt_codecs>
+ <gain_db_to_level_mapping>
+ <gain_level_map db="-59" level="5"/>
+ <gain_level_map db="-17.4" level="4"/>
+ <gain_level_map db="-13.8" level="3"/>
+ <gain_level_map db="-10.2" level="2"/>
+ <gain_level_map db="0" level="1"/>
+ </gain_db_to_level_mapping>
+ <config_voice>
+ <vsid>0xB3000000</vsid>
+ <loopbackDelay>1000</loopbackDelay>
+ <maxVolIndex>5</maxVolIndex>
+ <mode_map>
+ <modepair key="0x11C05000" value="0xB3000001"/>
+ <modepair key="0x11DC5000" value="0xB3000001"/>
+ <modepair key="0x12006000" value="0xB3000001"/>
+ <modepair key="0x121C6000" value="0xB3000001"/>
+ </mode_map>
+ </config_voice>
+ <sleep_monitor_vote_streams>
+ <low_power_stream_type>PAL_STREAM_VOICE_UI</low_power_stream_type>
+ <low_power_stream_type>PAL_STREAM_ACD</low_power_stream_type>
+ <low_power_stream_type>PAL_STREAM_ULTRASOUND</low_power_stream_type>
+ <low_power_stream_type>PAL_STREAM_SENSOR_PCM_DATA</low_power_stream_type>
+ <avoid_vote_stream_type>PAL_STREAM_CONTEXT_PROXY</avoid_vote_stream_type>
+ </sleep_monitor_vote_streams>
+ <group_device_cfg>
+ <upd_rx>
+ <snd_device name="handset" />
+ <group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="1" />
+ </upd_rx>
+ <handset>
+ <group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="1" />
+ </handset>
+ <speaker>
+ <group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="3" />
+ </speaker>
+ <speaker_voice>
+ <group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="1" />
+ </speaker_voice>
+ <upd_rx_handset>
+ <snd_device name="speaker" />
+ <devicepp_mfc sample_rate="96000" channels="2" bit_width="16" />
+ <group_dev sample_rate = "96000" channels="2" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="3" />
+ </upd_rx_handset>
+ <upd_rx_speaker>
+ <snd_device name="speaker" />
+ <devicepp_mfc sample_rate="96000" channels="2" bit_width="16" />
+ <group_dev sample_rate = "96000" channels="2" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="3" />
+ </upd_rx_speaker>
+ </group_device_cfg>
+ <!--
+ Usecase Priorities
+ ====================
+
+ Examples of usecases with their corresponding priorities,
+ ranked from 1 (highest priority).
+ 1 for voice
+ 2 for VOIP
+ 3 for playback/recording and (default priority assigned in the streamPriorityLUT map in ResourceManager.cpp)
+ 4 for UPD
+
+ In the event of concurrency on shared backend devices, the stream with the highest priority will determine the final device.
+ Example:
+ ========================================
+ usecase | priority | snd-devicename
+ ========================================
+ VOICE | 1 | voice-handset
+ VOIP | 2 | voip-handset
+ deepbuffer| 3 | speaker-mono
+
+ The final device will be voice-handset.
+ -->
+ <device_profile>
+ <in-device>
+ <id>PAL_DEVICE_IN_HANDSET_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
+ <max_channels>4</max_channels>
+ <channels>1</channels>
+ <samplerate>48000</samplerate>
+ <snd_device_name>handset-mic</snd_device_name>
+ <ec_enable>0</ec_enable>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <ec_enable>1</ec_enable>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <!--Uncomment these lines instead of above lines if needing to enable EC per custom key
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="vr-mic">
+ <ec_enable>1</ec_enable>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <ec_enable>1</ec_enable>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <priority>2</priority>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <sidetone_mode>HW</sidetone_mode>
+ <bit_width>16</bit_width>
+ <ec_enable>1</ec_enable>
+ <custom-config key="dual-mic">
+ <channels>2</channels>
+ <snd_device_name>handset-dmic-endfire</snd_device_name>
+ </custom-config>
+ <custom-config key="quad-mic">
+ <channels>4</channels>
+ <snd_device_name>quad-mic</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ <custom-config key="dual-mic">
+ <channels>2</channels>
+ <snd_device_name>handset-dmic-endfire</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_RAW</name>
+ <snd_device_name>handset-mic-unprocessed</snd_device_name>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_HANDSET</id>
+ <id>PAL_DEVICE_OUT_SPEAKER</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_SPEAKER_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
+ <max_channels>4</max_channels>
+ <samplerate>48000</samplerate>
+ <channels>1</channels>
+ <ec_enable>0</ec_enable>
+ <snd_device_name>speaker-mic</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <ec_enable>1</ec_enable>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <!--Uncomment these lines instead of above lines if needing to enable EC per custom key
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="vr-mic">
+ <ec_enable>1</ec_enable>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <ec_enable>1</ec_enable>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <priority>2</priority>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <sidetone_mode>OFF</sidetone_mode>
+ <bit_width>16</bit_width>
+ <ec_enable>1</ec_enable>
+ <custom-config key="dual-mic">
+ <channels>2</channels>
+ <snd_device_name>speaker-dmic-endfire</snd_device_name>
+ </custom-config>
+ <custom-config key="quad-mic">
+ <channels>4</channels>
+ <snd_device_name>quad-mic</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_LOOPBACK</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_SPEAKER</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_WIRED_HEADSET</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>headset-mic</snd_device_name>
+ <ec_enable>0</ec_enable>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <!--Uncomment these lines instead of above lines if needing to enable EC per custom key
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="vr-mic">
+ <ec_enable>1</ec_enable>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <sidetone_mode>HW</sidetone_mode>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <priority>1</priority>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
+ <id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET</id>
+ <back_end_name>SLIM-DEV1-TX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <samplerate>8000</samplerate>
+ <bit_width>16</bit_width>
+ <snd_device_name>bt-sco-mic</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_HANDSET_VA_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <snd_device_name>va-mic</snd_device_name>
+ <ec_enable>1</ec_enable>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_SPEAKER</id>
+ <id>PAL_DEVICE_OUT_HANDSET</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_HEADSET_VA_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>headset-va-mic</snd_device_name>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <ec_enable>1</ec_enable>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
+ <id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_USB_HEADSET</id>
+ <back_end_name>USB_AUDIO-TX</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <samplerate>48000</samplerate>
+ <ec_enable>0</ec_enable>
+ <snd_device_name>usb-headset-mic</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <!--Uncomment these lines instead of above lines if needing to enable EC per custom key
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="vr-mic">
+ <ec_enable>1</ec_enable>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <sidetone_mode>HW</sidetone_mode>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_USB_HEADSET</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_FM_TUNER</id>
+ <back_end_name>MI2S-LPAIF-TX-PRIMARY</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>play-fm</snd_device_name>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_LOOPBACK</name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_PROXY</id>
+ <back_end_name>PCM_RT_PROXY-TX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>afe-proxy</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_PROXY</name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_VI_FEEDBACK</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-TX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <samplerate>48000</samplerate>
+ <bit_width>32</bit_width>
+ <snd_device_name>vi-feedback</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <channels>1</channels>
+ <snd_device_name>vi-feedback-mono-2</snd_device_name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_CPS_FEEDBACK</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-TX-2</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <samplerate>24000</samplerate>
+ <bit_width>32</bit_width>
+ <snd_device_name>cps-feedback</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <channels>1</channels>
+ <snd_device_name>cps-feedback-mono-2</snd_device_name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_BLUETOOTH_A2DP</id>
+ <back_end_name>SLIM-DEV1-TX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-a2dp-mic</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_BLUETOOTH_BLE</id>
+ <back_end_name>SLIM-DEV1-TX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-ble-mic</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_TELEPHONY_RX</id>
+ <back_end_name>PCM_RT_PROXY-TX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>afe-proxy</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_PROXY</name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_ULTRASOUND_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-TX-4</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <samplerate>96000</samplerate>
+ <bit_width>16</bit_width>
+ <snd_device_name>ultrasound-mic</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_ULTRASOUND</name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_EXT_EC_REF</id>
+ <!-- The below back_end_name is for internal testing purpose only, needs to be modified to appropriate value if TDM/MI2S -->
+ <back_end_name>CODEC_DMA-LPAIF_WSA-TX-1</back_end_name>
+ <snd_device_name>ext_ec_ref_tx</snd_device_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <bit_width>16</bit_width>
+ <samplerate>48000</samplerate>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_ECHO_REF</id>
+ <back_end_name>PCM_DUMMY-TX-0</back_end_name>
+ <snd_device_name>echo-ref-record</snd_device_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <bit_width>16</bit_width>
+ <samplerate>48000</samplerate>
+ <usecase>
+ <name>PAL_STREAM_RAW</name>
+ </usecase>
+ </in-device>
+ <out-device>
+ <id>PAL_DEVICE_NONE</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>none</snd_device_name>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_SPEAKER</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <samplerate>48000</samplerate>
+ <snd_device_name>speaker</snd_device_name>
+ <speaker_protection_enabled>1</speaker_protection_enabled>
+ <fractional_sr>0</fractional_sr>
+ <!-- To enable external EC reference the flag extec_ref_enabled must be added as 1 -->
+ <ext_ec_ref_enabled>0</ext_ec_ref_enabled>
+ <!-- Flag to specify cps mode which is applicable
+ Values: disable CPS: 0
+ CPS streaming: 1
+ ADSP control mode: 2
+ -->
+ <cps_mode>1</cps_mode>
+ <vbat_enabled>1</vbat_enabled>
+ <wsa2_enable>0</wsa2_enable>
+ <!--wsa registers physical addresses in decimal notation -->
+ <wsa_wr_cmd_reg_phy_addr>52757248</wsa_wr_cmd_reg_phy_addr>
+ <wsa_rd_cmd_reg_phy_addr>52757252</wsa_rd_cmd_reg_phy_addr>
+ <wsa_rd_fifo_reg_phy_addr>52757272</wsa_rd_fifo_reg_phy_addr>
+ <!--wsa2 registers physical addresses in decimal notation and to be updated only if wsa2 is enabled, else should be marked as 0-->
+ <wsa2_wr_cmd_reg_phy_addr>0</wsa2_wr_cmd_reg_phy_addr>
+ <wsa2_rd_cmd_reg_phy_addr>0</wsa2_rd_cmd_reg_phy_addr>
+ <wsa2_rd_fifo_reg_phy_addr>0</wsa2_rd_fifo_reg_phy_addr>
+ <!--specify the supported bit format on speaker end point -->
+ <!--this should be in the form of pal_audio_fmt_id-->
+ <!--e.g <supported_bit_format >PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>-->
+ <!--We support 24 bit for speaker as of now, as some module in ADSP does not support Q31 format-->
+ <!--This can be changed to PAL_AUDIO_FMT_PCM_S32_LE if 32 bit e2e support is required-->
+ <supported_bit_format>PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>
+ <!-- RAS should be enabled with speaker protection always -->
+ <ras_enabled>0</ras_enabled>
+ <!-- Flag to specify speaker in case Voice call is switched from
+ handset to speaker with only 1 speaker.
+ Values: Both speaker : 0
+ Right speaker: 1
+ Left speaker : 2
+ -->
+ <speaker_mono_right>0</speaker_mono_right>
+ <!-- Time in seconds for Quick cal. Set 0 to disable -->
+ <quick_cal_time>0</quick_cal_time>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <channels>1</channels>
+ <snd_device_name>speaker-mono-2</snd_device_name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_RX</name>
+ <priority>2</priority>
+ </usecase>
+ <!--
+ Playback/Recording streams have a default priority of 3
+ (default priority assigned in the streamPriorityLUT map in ResourceManager.cpp).
+ Check the comments above "Usecase Priorities" for details.
+ -->
+ <!--
+ While the UPD runs on a shared backend, whenever a speaker usecase arises,
+ UPD must always switch to the speaker; it can only return to handset when
+ the last speaker usecase terminates.
+ Giving UPD the lowest priority is in line with the understanding of
+ priority settings.
+ -->
+ <usecase>
+ <name>PAL_STREAM_ULTRASOUND</name>
+ <priority>4</priority>
+ <samplerate>96000</samplerate>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_HANDSET</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <!-- To enable external EC reference the flag extec_ref_enabled must be added as 1 -->
+ <ext_ec_ref_enabled>0</ext_ec_ref_enabled>
+ <samplerate>48000</samplerate>
+ <fractional_sr>0</fractional_sr>
+ <snd_device_name>handset</snd_device_name>
+ <handset_protection_enabled>0</handset_protection_enabled>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <custom-config key="HAC">
+ <snd_device_name>voice-handset-hac</snd_device_name> <!-- override sound device name with HAC handset -->
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_RX</name>
+ <priority>2</priority>
+ <custom-config key="HAC">
+ <snd_device_name>voice-handset-hac</snd_device_name> <!-- override sound device name with HAC handset for voip -->
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRASOUND</name>
+ <priority>4</priority>
+ <samplerate>96000</samplerate>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <fractional_sr>1</fractional_sr>
+ <snd_device_name>headphones</snd_device_name>
+ <!--HIFI Filter Headphones-Uncomment this when param key hifi_filter is true
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_PCM_OFFLOAD</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_RX</name>
+ <priority>2</priority>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <fractional_sr>1</fractional_sr>
+ <snd_device_name>headphones</snd_device_name>
+ <!--HIFI Filter Headphones-Uncomment this when param key hifi_filter is true
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_PCM_OFFLOAD</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_RX</name>
+ <priority>2</priority>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
+ <back_end_name>SLIM-DEV1-RX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-a2dp</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
+ <back_end_name>SLIM-DEV1-RX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-ble</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST</id>
+ <back_end_name>SLIM-DEV1-RX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-ble</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
+ <back_end_name>SLIM-DEV1-RX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-sco</snd_device_name>
+ <samplerate>8000</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_AUX_DIGITAL</id>
+ <back_end_name>DISPLAY_PORT-RX</back_end_name>
+ <max_channels>32</max_channels>
+ <channels>2</channels>
+ <snd_device_name>display-port</snd_device_name>
+ <fractional_sr>1</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_HDMI</id>
+ <back_end_name>DISPLAY_PORT-RX</back_end_name>
+ <max_channels>32</max_channels>
+ <channels>2</channels>
+ <fractional_sr>1</fractional_sr>
+ <snd_device_name>display-port</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_USB_DEVICE</id>
+ <back_end_name>USB_AUDIO-RX</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>usb-headphones</snd_device_name>
+ <fractional_sr>1</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_USB_HEADSET</id>
+ <back_end_name>USB_AUDIO-RX</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>usb-headphones</snd_device_name>
+ <fractional_sr>1</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_AUX_DIGITAL_1</id>
+ <back_end_name>DISPLAY_PORT-RX</back_end_name>
+ <max_channels>8</max_channels>
+ <channels>2</channels>
+ <snd_device_name>display-port</snd_device_name>
+ <fractional_sr>1</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_PROXY</id>
+ <back_end_name>PCM_RT_PROXY-RX-1</back_end_name>
+ <max_channels>8</max_channels>
+ <channels>2</channels>
+ <snd_device_name>afe-proxy</snd_device_name>
+ <fractional_sr>0</fractional_sr>
+ <samplerate>48000</samplerate>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_HEARING_AID</id>
+ <back_end_name>PCM_RT_PROXY-RX-1</back_end_name>
+ <max_channels>8</max_channels>
+ <channels>2</channels>
+ <snd_device_name>afe-proxy</snd_device_name>
+ <fractional_sr>0</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_HAPTICS_DEVICE</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-RX-6</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>haptics-dev</snd_device_name>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_ULTRASOUND</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>ultrasound-handset</snd_device_name>
+ <samplerate>96000</samplerate>
+ <bit_width>16</bit_width>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_ULTRASOUND_DEDICATED</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>ultrasound-handset</snd_device_name>
+ <samplerate>96000</samplerate>
+ <bit_width>16</bit_width>
+ </out-device>
+ </device_profile>
+ <in_streams>
+ <in_stream>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_VOICE_UI</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_ACD</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_PROXY</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
+ <disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_RAW</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
+ <disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_SENSOR_PCM_DATA</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ </in_streams>
+ <sound_trigger_platform_info>
+ <common_config>
+ <!-- Sound trigger streams common params -->
+ <param lpi_enable="true" />
+ <param support_nlpi_switch="true" />
+ <param support_device_switch="true" />
+ <param enable_debug_dumps="false" />
+ <param concurrent_capture="true" />
+ <param concurrent_voice_call="true" />
+ <param concurrent_voip_call="true" />
+ <param low_latency_bargein_enable="false" />
+ </common_config>
+ <capture_profile_list>
+ <!-- Common Profiles -->
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI_AAD">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_LPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_LPI_AAD">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <!-- ACD Specific Profiles -->
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_LPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <!-- Sensor PCM Data Specific Profiles -->
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFEC">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFEC">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <!-- SVA/Hotword Specific Profiles -->
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_NLPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_LPI">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_LPI_AAD">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_NLPI">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_FFNS">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="TRI_MIC_16KHZ_16BIT_FFNS">
+ <param sample_rate="16000" />
+ <param channels="3" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-tmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="QUAD_MIC_16KHZ_16BIT_FFNS">
+ <param sample_rate="16000" />
+ <param channels="4" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-qmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="TRI_MIC_16KHZ_16BIT_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="3" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-tmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="QUAD_MIC_16KHZ_16BIT_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="4" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-qmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="TRI_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="3" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-tmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="QUAD_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="4" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-qmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="TRI_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="3" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-tmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="QUAD_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="4" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-qmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ </capture_profile_list>
+ <acd_platform_info>
+ <config>
+ <param acd_enable="true" />
+ </config>
+ <!-- ACD -->
+ <stream_config>
+ <name>QC_ACD</name>
+ <param vendor_uuid="4e93281b-296e-4d73-9833-2710c3c7c1db" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI" />
+ <high_performance capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
+ </operating_modes>
+ <sound_model_info>
+ <sound_model>
+ <name>ACD_SOUND_MODEL_ID_EVENT</name>
+ <bin>event.eai</bin>
+ <uuid>0x0B001007</uuid>
+ <contexts>
+ <context id="0x0800132D" /> <!-- EVENT_ALARM -->
+ <context id="0x0800132E" /> <!-- EVENT_BABYCRYING -->
+ <context id="0x0800132F" /> <!-- EVENT_DOGBARKING -->
+ <context id="0x08001330" /> <!-- EVENT_DOORBELL -->
+ <context id="0x08001331" /> <!-- EVENT_DOOROPENCLOSE -->
+ <context id="0x08001332" /> <!-- EVENT_CRASH -->
+ <context id="0x08001333" /> <!-- EVENT_GLASSBREAKING -->
+ <context id="0x08001334" /> <!-- EVENT_SIREN -->
+ <context id="0x080013CC" /> <!-- EVENT_CARHONK -->
+ <context id="0x080013CD" /> <!-- EVENT_GUNSHOT -->
+ <context id="0x080013CE" /> <!-- EVENT_PHONERING -->
+ <context id="0x080013CF" /> <!-- EVENT_SLEEPAPNEA -->
+ <context id="0x080013D0" /> <!-- EVENT_SNORING -->
+ <context id="0x080013D1" /> <!-- EVENT_CATMEOW -->
+ <context id="0x080013D2" /> <!-- EVENT_DOORKNOCK -->
+ <context id="0x080013D3" /> <!-- EVENT_WATERFLOW -->
+ <context id="0x080013D4" /> <!-- EVENT_FIREALARM -->
+ </contexts>
+ </sound_model>
+ <sound_model>
+ <name>ACD_SOUND_MODEL_ID_SPEECH</name>
+ <bin>speech.eai</bin>
+ <uuid>0x0B001008</uuid>
+ <contexts>
+ <context id="0x08001335" /> <!-- AMBIENCE_SPEECH -->
+ </contexts>
+ </sound_model>
+ <sound_model>
+ <name>ACD_SOUND_MODEL_ID_MUSIC</name>
+ <bin>music.eai</bin>
+ <uuid>0x0B001009</uuid>
+ <contexts>
+ <context id="0x08001336" /> <!-- AMBIENCE_MUSIC -->
+ </contexts>
+ </sound_model>
+ <sound_model>
+ <name>ACD_SOUND_MODEL_AMBIENCE_NOISE_SILENCE</name>
+ <bin></bin> <!-- Following contexts dont have a model, hence empty bin -->
+ <uuid>0xFFFFFFFF</uuid> <!-- Indicates no sound model -->
+ <contexts>
+ <context id="0x08001337" /> <!-- AMBIENCE_NOISY_SPL -->
+ <context id="0x08001338" /> <!-- AMBIENCE_SILENT_SPL -->
+ <context id="0x08001339" /> <!-- AMBIENCE_NOISY_SFLUX -->
+ <context id="0x0800133A" /> <!-- AMBIENCE_SILENT_SFLUX -->
+ </contexts>
+ </sound_model>
+ </sound_model_info>
+ </stream_config>
+ <!-- Sensor PCM Data -->
+ <stream_config>
+ <name>QC_SENSOR_PCM_DATA</name>
+ <param vendor_uuid="c88a2c89-7a55-498c-836f-5d7ec8582990" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI" />
+ <low_power_ns capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFNS" />
+ <high_performance capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFEC" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFEC" />
+ <high_performance_ns capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
+ </operating_modes>
+ </stream_config>
+ </acd_platform_info>
+ <!-- Voice UI -->
+ <vui_platform_info>
+ <config>
+ <!-- Voice UI Params used by apk to indicate the Voice UI version current platform supports -->
+ <param version="0x0103" />
+ <param enable_failure_detection="false" />
+ <param notify_second_stage_failure="false" />
+ <param mmap_enable="true" />
+ <param mmap_buffer_duration="5000" />
+ <!-- 5ms duration of data -->
+ <param mmap_frame_length="5" />
+ <!-- Move this flag to common_config if ACD/Sensor PCM Data support car mode in the future -->
+ <param transit_to_non_lpi_on_charging="false" />
+ </config>
+ <!-- Multiple stream_config tags can be listed, each with unique -->
+ <!-- vendor_uuid. The below tag represents QC Voice UI sound model -->
+ <!-- configuration. ISV must use their own unique vendor_uuid. -->
+ <stream_config>
+ <name>QC_VOICE_UI</name>
+ <param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b" />
+ <param merge_first_stage_sound_models="false" />
+ <!--For now total 3 engines are supported, if more engine instances are needed,-->
+ <!-- do update acdb and usecaseKvManager.xml files by adding more instances -->
+ <param pdk_first_stage_max_engine_count="3"/>
+ <!-- Profile specific data which the algorithm can support -->
+ <param capture_keyword="2000" /> <!-- Default history buffer length -->
+ <param client_capture_read_delay="2000" /> <!-- reserved buffer duration for rt data -->
+ <param pre_roll_duration="500" /> <!-- Default preroll duration -->
+ <!-- durations in us -->
+ <param kw_start_tolerance="360000" />
+ <param kw_end_tolerance="240000" />
+ <param data_before_kw_start="360000" />
+ <param data_after_kw_end="480000" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI" />
+ <high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
+ <high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
+ </operating_modes>
+ <sound_model_info>
+ <first_stage_module_params>
+ <param module_type="GMM" />
+ <param load_sound_model_ids="0xC0000008, 0x0800104C" />
+ <param wakeup_config_ids="0xC0000008, 0x08001049" />
+ <param buffering_config_ids="0xC0000008, 0x08001044" />
+ <param engine_reset_ids="0xC0000008, 0x08001051" />
+ </first_stage_module_params>
+ <first_stage_module_params>
+ <param module_type="PDK" />
+ <param load_sound_model_ids="0xC0000008, 0x0800124E" />
+ <param unload_sound_model_ids="0xC0000008, 0x08001250" />
+ <param wakeup_config_ids="0xC0000008, 0x08001049" />
+ <param buffering_config_ids="0xC0000008, 0x0800124F" />
+ <param engine_reset_ids="0xC0000008, 0x08001051" />
+ </first_stage_module_params>
+ <arm_ss_module_params>
+ <!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION", "CUSTOM_DETECTION" -->
+ <param sm_detection_type= "KEYWORD_DETECTION" />
+ <param sm_id="0x2" />
+ <param module_lib="libcapiv2svacnnvendor.so" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1" />
+ </arm_ss_module_params>
+ <arm_ss_module_params>
+ <param sm_detection_type= "USER_VERIFICATION" />
+ <param sm_id="0x4" />
+ <param module_lib="libcapiv2uvvendor.so" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1" />
+ </arm_ss_module_params>
+ <arm_ss_module_params>
+ <param sm_detection_type= "KEYWORD_DETECTION" />
+ <param sm_id="0x8" />
+ <param module_lib="libcapiv2svarnnvendor.so" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1" />
+ </arm_ss_module_params>
+ <arm_ss_module_params>
+ <param sm_detection_type= "KEYWORD_DETECTION" />
+ <param sm_id="0x40" />
+ <param module_lib="libcapiv2udk7vendor.so" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1" />
+ </arm_ss_module_params>
+ </sound_model_info>
+ </stream_config>
+ <!-- Hotword Voice UI-->
+ <stream_config>
+ <name>HOTWORD_VOICE_UI</name>
+ <param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15" />
+ <param get_module_version="false" />
+ <param merge_first_stage_sound_models="false" />
+ <param capture_keyword="2000" />
+ <param client_capture_read_delay="2000" />
+ <param kw_start_tolerance="100" />
+ <param kw_end_tolerance="100" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI" />
+ <high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI" />
+ <high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI" />
+ </operating_modes>
+ <sound_model_info>
+ <first_stage_module_params>
+ <param module_type="HOTWORD" />
+ <param load_sound_model_ids="0xC0000008, 0x0800104C" />
+ <param unload_sound_model_ids="0xC0000008, 0x00012C15" />
+ <param buffering_config_ids="0xC0000008, 0x08001044" />
+ <param version_ids="0xC0000008, 0x18000101" />
+ <param engine_reset_ids="0xC0000008, 0x08001051" />
+ </first_stage_module_params>
+ </sound_model_info>
+ </stream_config>
+ <!-- CUSTOM Voice UI-->
+ <stream_config>
+ <name>CUSTOM_VOICE_UI</name>
+ <!-- NOTE: Customer need to replace with their own uuid and match with sound model -->
+ <param vendor_uuid="c51c508a-ee1b-11ec-8ea0-0242ac120002" />
+ <param merge_first_stage_sound_models="false" />
+ <!-- Profile specific data which the algorithm can support -->
+ <param capture_keyword="2000" /> <!-- Default history buffer length -->
+ <param client_capture_read_delay="2000" /> <!-- reserved buffer duration for rt data -->
+ <param pre_roll_duration="500" /> <!-- Default preroll duration -->
+ <!-- durations in us -->
+ <param kw_start_tolerance="360000" />
+ <param kw_end_tolerance="240000" />
+ <param data_before_kw_start="360000" />
+ <param data_after_kw_end="480000" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_CUSTOM_NS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_NS" />
+ <high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_CUSTOM_ECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_ECNS" />
+ <high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_CUSTOM_ECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_ECNS" />
+ </operating_modes>
+ <sound_model_info>
+ <first_stage_module_params>
+ <param module_type="CUSTOM1" />
+ <param load_sound_model_ids="0xC0000008, 0x0800104C" />
+ <param custom_config_ids="0xC0000008, 0x08001049" />
+ <param buffering_config_ids="0xC0000008, 0x08001044" />
+ <param engine_reset_ids="0xC0000008, 0x08001051" />
+ </first_stage_module_params>
+ </sound_model_info>
+ </stream_config>
+ </vui_platform_info>
+ </sound_trigger_platform_info>
+</resource_manager_info>
diff --git a/configs/crow/resourcemanager_crow_qrd.xml b/configs/crow/resourcemanager_crow_qrd.xml
new file mode 100644
index 0000000..1fe922e
--- /dev/null
+++ b/configs/crow/resourcemanager_crow_qrd.xml
@@ -0,0 +1,1592 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!-- Copyright (c) 2020-2021, 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.
+
+* Changes from Qualcomm Innovation Center are provided under the following license:
+*
+* Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted (subject to the limitations in the
+* disclaimer below) 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 Qualcomm Innovation Center, Inc. nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+* IN NO EVENT SHALL THE COPYRIGHT HOLDER 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.-->
+
+<resource_manager_info>
+ <version>2.0</version>
+ <config_params>
+ <param key="native_audio_mode" value="multiple_mix_dsp"/>
+ <!-- Uncomment HIFI Filter Headphones related sections when set this
+ hifi_filter key to true -->
+ <param key="hifi_filter" value="false"/>
+ <param key="max_sessions" value="128"/>
+ <param key="max_nonTunnel_sessions" value="4"/>
+ <param key="logging_level" value ="3" />
+ <param key="context_manager_enable" value ="true" />
+ <param key="lpi_logging_enable" value ="false" />
+ <param key="upd_dedicated_be" value ="true" />
+ <param key="signal_handler" value ="true" />
+ <param key="device_mux_config" value ="false" />
+ <param key="upd_duty_cycle_enable" value="false" />
+ <param key="upd_virtual_port" value ="false" />
+ </config_params>
+ <config_volume>
+ <use_volume_set_param>0</use_volume_set_param>
+ <supported_streams>
+ <supported_stream>PAL_STREAM_ULTRA_LOW_LATENCY</supported_stream>
+ <supported_stream>PAL_STREAM_COMPRESSED</supported_stream>
+ </supported_streams>
+ </config_volume>
+ <config_lpm>
+ <use_disable_lpm>1</use_disable_lpm>
+ <lpm_supported_streams>
+ <lpm_supported_stream>PAL_STREAM_LOW_LATENCY</lpm_supported_stream>
+ <lpm_supported_stream>PAL_STREAM_ULTRA_LOW_LATENCY</lpm_supported_stream>
+ </lpm_supported_streams>
+ </config_lpm>
+ <config_gapless key="gapless_supported" value="1"/>
+ <bt_codecs>
+ <codec codec_format="CODEC_TYPE_AAC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
+ <codec codec_format="CODEC_TYPE_SBC" codec_type="enc|dec" codec_library="lib_bt_bundle.so" />
+ <codec codec_format="CODEC_TYPE_LDAC" codec_type="enc" codec_library="lib_bt_bundle.so" />
+ <codec codec_format="CODEC_TYPE_APTX" codec_type="enc" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_APTX_HD" codec_type="enc" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_APTX_AD" codec_type="enc" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_APTX_DUAL_MONO" codec_type="enc" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_APTX_AD_SPEECH" codec_type="enc|dec" codec_library="lib_bt_aptx.so" />
+ <codec codec_format="CODEC_TYPE_LC3" codec_type="enc|dec" codec_library="lib_bt_ble.so" />
+ <codec codec_format="CODEC_TYPE_APTX_AD_QLEA" codec_type="enc" codec_library="lib_bt_ble.so" />
+ </bt_codecs>
+ <gain_db_to_level_mapping>
+ <gain_level_map db="-59" level="5"/>
+ <gain_level_map db="-17.4" level="4"/>
+ <gain_level_map db="-13.8" level="3"/>
+ <gain_level_map db="-10.2" level="2"/>
+ <gain_level_map db="0" level="1"/>
+ </gain_db_to_level_mapping>
+ <config_voice>
+ <vsid>0xB3000000</vsid>
+ <loopbackDelay>1000</loopbackDelay>
+ <maxVolIndex>5</maxVolIndex>
+ <mode_map>
+ <modepair key="0x11C05000" value="0xB3000001"/>
+ <modepair key="0x11DC5000" value="0xB3000001"/>
+ <modepair key="0x12006000" value="0xB3000001"/>
+ <modepair key="0x121C6000" value="0xB3000001"/>
+ </mode_map>
+ </config_voice>
+ <sleep_monitor_vote_streams>
+ <low_power_stream_type>PAL_STREAM_VOICE_UI</low_power_stream_type>
+ <low_power_stream_type>PAL_STREAM_ACD</low_power_stream_type>
+ <low_power_stream_type>PAL_STREAM_ULTRASOUND</low_power_stream_type>
+ <low_power_stream_type>PAL_STREAM_SENSOR_PCM_DATA</low_power_stream_type>
+ <avoid_vote_stream_type>PAL_STREAM_CONTEXT_PROXY</avoid_vote_stream_type>
+ </sleep_monitor_vote_streams>
+ <group_device_cfg>
+ <upd_rx>
+ <snd_device name="handset" />
+ <group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="1" />
+ </upd_rx>
+ <handset>
+ <group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="1" />
+ </handset>
+ <speaker>
+ <group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="3" />
+ </speaker>
+ <speaker_voice>
+ <group_dev sample_rate = "0" channels="0" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="1" />
+ </speaker_voice>
+ <upd_rx_handset>
+ <snd_device name="speaker" />
+ <devicepp_mfc sample_rate="96000" channels="2" bit_width="16" />
+ <group_dev sample_rate = "96000" channels="2" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="3" />
+ </upd_rx_handset>
+ <upd_rx_speaker>
+ <snd_device name="speaker" />
+ <devicepp_mfc sample_rate="96000" channels="2" bit_width="16" />
+ <group_dev sample_rate = "96000" channels="2" bit_fmt="PAL_AUDIO_FMT_PCM_S16_LE" slot_mask="3" />
+ </upd_rx_speaker>
+ </group_device_cfg>
+ <!--
+ Usecase Priorities
+ ====================
+
+ Examples of usecases with their corresponding priorities,
+ ranked from 1 (highest priority).
+ 1 for voice
+ 2 for VOIP
+ 3 for playback/recording and (default priority assigned in the streamPriorityLUT map in ResourceManager.cpp)
+ 4 for UPD
+
+ In the event of concurrency on shared backend devices, the stream with the highest priority will determine the final device.
+ Example:
+ ========================================
+ usecase | priority | snd-devicename
+ ========================================
+ VOICE | 1 | voice-handset
+ VOIP | 2 | voip-handset
+ deepbuffer| 3 | speaker-mono
+
+ The final device will be voice-handset.
+ -->
+ <device_profile>
+ <in-device>
+ <id>PAL_DEVICE_IN_HANDSET_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
+ <max_channels>4</max_channels>
+ <channels>1</channels>
+ <samplerate>48000</samplerate>
+ <snd_device_name>handset-mic</snd_device_name>
+ <ec_enable>0</ec_enable>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <ec_enable>1</ec_enable>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <!--Uncomment these lines instead of above lines if needing to enable EC per custom key
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="vr-mic">
+ <ec_enable>1</ec_enable>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <ec_enable>1</ec_enable>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <priority>2</priority>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <sidetone_mode>HW</sidetone_mode>
+ <bit_width>16</bit_width>
+ <ec_enable>1</ec_enable>
+ <custom-config key="dual-mic">
+ <channels>2</channels>
+ <snd_device_name>handset-dmic-endfire</snd_device_name>
+ </custom-config>
+ <custom-config key="quad-mic">
+ <channels>4</channels>
+ <snd_device_name>quad-mic</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ <custom-config key="dual-mic">
+ <channels>2</channels>
+ <snd_device_name>handset-dmic-endfire</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_RAW</name>
+ <snd_device_name>handset-mic-unprocessed</snd_device_name>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_HANDSET</id>
+ <id>PAL_DEVICE_OUT_SPEAKER</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_SPEAKER_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
+ <max_channels>4</max_channels>
+ <samplerate>48000</samplerate>
+ <channels>1</channels>
+ <ec_enable>0</ec_enable>
+ <snd_device_name>speaker-mic</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <ec_enable>1</ec_enable>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <!--Uncomment these lines instead of above lines if needing to enable EC per custom key
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="vr-mic">
+ <ec_enable>1</ec_enable>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <ec_enable>1</ec_enable>
+ <custom-config key="unprocessed-hdr-mic-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-portrait</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-landscape">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-landscape</snd_device_name>
+ </custom-config>
+ <custom-config key="unprocessed-hdr-mic-inverted-portrait">
+ <channels>4</channels>
+ <snd_device_name>unprocessed-hdr-mic-inverted-portrait</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <priority>2</priority>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <sidetone_mode>OFF</sidetone_mode>
+ <bit_width>16</bit_width>
+ <ec_enable>1</ec_enable>
+ <custom-config key="dual-mic">
+ <channels>2</channels>
+ <snd_device_name>speaker-dmic-endfire</snd_device_name>
+ </custom-config>
+ <custom-config key="quad-mic">
+ <channels>4</channels>
+ <snd_device_name>quad-mic</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_LOOPBACK</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_SPEAKER</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_WIRED_HEADSET</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-TX-3</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>headset-mic</snd_device_name>
+ <ec_enable>0</ec_enable>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <!--Uncomment these lines instead of above lines if needing to enable EC per custom key
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="vr-mic">
+ <ec_enable>1</ec_enable>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <sidetone_mode>HW</sidetone_mode>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <priority>1</priority>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
+ <id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET</id>
+ <back_end_name>SLIM-DEV1-TX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <samplerate>8000</samplerate>
+ <bit_width>16</bit_width>
+ <snd_device_name>bt-sco-mic</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_HANDSET_VA_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <snd_device_name>va-mic</snd_device_name>
+ <ec_enable>1</ec_enable>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_SPEAKER</id>
+ <id>PAL_DEVICE_OUT_HANDSET</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_HEADSET_VA_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_VA-TX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>headset-va-mic</snd_device_name>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <ec_enable>1</ec_enable>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
+ <id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_USB_HEADSET</id>
+ <back_end_name>USB_AUDIO-TX</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <samplerate>48000</samplerate>
+ <ec_enable>0</ec_enable>
+ <snd_device_name>usb-headset-mic</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <!--Uncomment these lines instead of above lines if needing to enable EC per custom key
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="vr-mic">
+ <ec_enable>1</ec_enable>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <sidetone_mode>HW</sidetone_mode>
+ <ec_enable>1</ec_enable>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_USB_HEADSET</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_FM_TUNER</id>
+ <back_end_name>MI2S-LPAIF-TX-PRIMARY</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>play-fm</snd_device_name>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_LOOPBACK</name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_PROXY</id>
+ <back_end_name>PCM_RT_PROXY-TX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>afe-proxy</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_PROXY</name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_VI_FEEDBACK</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-TX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <samplerate>48000</samplerate>
+ <bit_width>32</bit_width>
+ <snd_device_name>vi-feedback</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <channels>1</channels>
+ <snd_device_name>vi-feedback-mono-2</snd_device_name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_CPS_FEEDBACK</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-TX-2</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <samplerate>24000</samplerate>
+ <bit_width>32</bit_width>
+ <snd_device_name>cps-feedback</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <channels>1</channels>
+ <snd_device_name>cps-feedback-mono-2</snd_device_name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_BLUETOOTH_A2DP</id>
+ <back_end_name>SLIM-DEV1-TX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-a2dp-mic</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_BLUETOOTH_BLE</id>
+ <back_end_name>SLIM-DEV1-TX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-ble-mic</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_LOW_LATENCY</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_TX</name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRA_LOW_LATENCY</name>
+ </usecase>
+ <ec_rx_device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
+ </ec_rx_device>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_TELEPHONY_RX</id>
+ <back_end_name>PCM_RT_PROXY-TX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>afe-proxy</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_PROXY</name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_ULTRASOUND_MIC</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-TX-4</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <samplerate>96000</samplerate>
+ <bit_width>16</bit_width>
+ <snd_device_name>ultrasound-mic</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_ULTRASOUND</name>
+ </usecase>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_EXT_EC_REF</id>
+ <back_end_name>MI2S-LPAIF-TX-TERTIARY</back_end_name>
+ <snd_device_name>ext_ec_ref_tx</snd_device_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </in-device>
+ <in-device>
+ <id>PAL_DEVICE_IN_ECHO_REF</id>
+ <back_end_name>PCM_DUMMY-TX-0</back_end_name>
+ <snd_device_name>echo-ref-record</snd_device_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <bit_width>16</bit_width>
+ <samplerate>48000</samplerate>
+ <usecase>
+ <name>PAL_STREAM_RAW</name>
+ </usecase>
+ </in-device>
+ <out-device>
+ <id>PAL_DEVICE_NONE</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>none</snd_device_name>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_SPEAKER</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <samplerate>48000</samplerate>
+ <snd_device_name>speaker</snd_device_name>
+ <speaker_protection_enabled>1</speaker_protection_enabled>
+ <fractional_sr>0</fractional_sr>
+ <!-- To enable external EC reference the flag extec_ref_enabled must be added as 1 -->
+ <ext_ec_ref_enabled>0</ext_ec_ref_enabled>
+ <!-- Flag to specify cps mode which is applicable
+ Values: disable CPS: 0
+ CPS streaming: 1
+ ADSP control mode: 2
+ -->
+ <cps_mode>2</cps_mode>
+ <vbat_enabled>1</vbat_enabled>
+ <wsa2_enable>0</wsa2_enable>
+ <!--wsa registers physical addresses in decimal notation -->
+ <wsa_wr_cmd_reg_phy_addr>52757248</wsa_wr_cmd_reg_phy_addr>
+ <wsa_rd_cmd_reg_phy_addr>52757252</wsa_rd_cmd_reg_phy_addr>
+ <wsa_rd_fifo_reg_phy_addr>52757272</wsa_rd_fifo_reg_phy_addr>
+ <!--wsa2 registers physical addresses in decimal notation and to be updated only if wsa2 is enabled, else should be marked as 0-->
+ <wsa2_wr_cmd_reg_phy_addr>0</wsa2_wr_cmd_reg_phy_addr>
+ <wsa2_rd_cmd_reg_phy_addr>0</wsa2_rd_cmd_reg_phy_addr>
+ <wsa2_rd_fifo_reg_phy_addr>0</wsa2_rd_fifo_reg_phy_addr>
+ <!--specify the supported bit format on speaker end point -->
+ <!--this should be in the form of pal_audio_fmt_id-->
+ <!--e.g <supported_bit_format >PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>-->
+ <!--We support 24 bit for speaker as of now, as some module in ADSP does not support Q31 format-->
+ <!--This can be changed to PAL_AUDIO_FMT_PCM_S32_LE if 32 bit e2e support is required-->
+ <supported_bit_format>PAL_AUDIO_FMT_PCM_S24_LE</supported_bit_format>
+ <!-- RAS should be enabled with speaker protection always -->
+ <ras_enabled>0</ras_enabled>
+ <!-- Flag to specify speaker in case Voice call is switched from
+ handset to speaker with only 1 speaker.
+ Values: Both speaker : 0
+ Right speaker: 1
+ Left speaker : 2
+ -->
+ <speaker_mono_right>0</speaker_mono_right>
+ <!-- Time in seconds for Quick cal. Set 0 to disable -->
+ <quick_cal_time>0</quick_cal_time>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <channels>1</channels>
+ <snd_device_name>speaker-mono-2</snd_device_name>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_RX</name>
+ <priority>2</priority>
+ <channels>1</channels>
+ <snd_device_name>speaker-mono-2</snd_device_name>
+ </usecase>
+ <!--
+ Playback/Recording streams have a default priority of 3
+ (default priority assigned in the streamPriorityLUT map in ResourceManager.cpp).
+ Check the comments above "Usecase Priorities" for details.
+ -->
+ <!--
+ While the UPD runs on a shared backend, whenever a speaker usecase arises,
+ UPD must always switch to the speaker; it can only return to handset when
+ the last speaker usecase terminates.
+ Giving UPD the lowest priority is in line with the understanding of
+ priority settings.
+ -->
+ <usecase>
+ <name>PAL_STREAM_ULTRASOUND</name>
+ <priority>4</priority>
+ <samplerate>96000</samplerate>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_HANDSET</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <!-- To enable external EC reference the flag extec_ref_enabled must be added as 1 -->
+ <ext_ec_ref_enabled>0</ext_ec_ref_enabled>
+ <samplerate>48000</samplerate>
+ <fractional_sr>0</fractional_sr>
+ <snd_device_name>handset</snd_device_name>
+ <handset_protection_enabled>0</handset_protection_enabled>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <custom-config key="HAC">
+ <snd_device_name>voice-handset-hac</snd_device_name> <!-- override sound device name with HAC handset -->
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_RX</name>
+ <priority>2</priority>
+ <custom-config key="HAC">
+ <snd_device_name>voice-handset-hac</snd_device_name> <!-- override sound device name with HAC handset for voip -->
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_ULTRASOUND</name>
+ <priority>4</priority>
+ <samplerate>96000</samplerate>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <fractional_sr>1</fractional_sr>
+ <snd_device_name>headphones</snd_device_name>
+ <!--HIFI Filter Headphones-Uncomment this when param key hifi_filter is true
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_PCM_OFFLOAD</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_RX</name>
+ <priority>2</priority>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-RX-0</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <fractional_sr>1</fractional_sr>
+ <snd_device_name>headphones</snd_device_name>
+ <!--HIFI Filter Headphones-Uncomment this when param key hifi_filter is true
+ <usecase>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_PCM_OFFLOAD</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <custom-config key="hifi-filter_custom_key">
+ <snd_device_name>headphones-hifi-filter</snd_device_name>
+ </custom-config>
+ </usecase>
+ -->
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </usecase>
+ <usecase>
+ <name>PAL_STREAM_VOIP_RX</name>
+ <priority>2</priority>
+ <samplerate>48000</samplerate>
+ <bit_width>16</bit_width>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_A2DP</id>
+ <back_end_name>SLIM-DEV1-RX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-a2dp</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE</id>
+ <back_end_name>SLIM-DEV1-RX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-ble</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST</id>
+ <back_end_name>SLIM-DEV1-RX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-ble</snd_device_name>
+ <samplerate>44100</samplerate>
+ <bit_width>16</bit_width>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_BLUETOOTH_SCO</id>
+ <back_end_name>SLIM-DEV1-RX-7</back_end_name>
+ <max_channels>1</max_channels>
+ <channels>1</channels>
+ <snd_device_name>bt-sco</snd_device_name>
+ <samplerate>8000</samplerate>
+ <bit_width>16</bit_width>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_AUX_DIGITAL</id>
+ <back_end_name>DISPLAY_PORT-RX</back_end_name>
+ <max_channels>32</max_channels>
+ <channels>2</channels>
+ <snd_device_name>display-port</snd_device_name>
+ <fractional_sr>1</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_HDMI</id>
+ <back_end_name>DISPLAY_PORT-RX</back_end_name>
+ <max_channels>32</max_channels>
+ <channels>2</channels>
+ <fractional_sr>1</fractional_sr>
+ <snd_device_name>display-port</snd_device_name>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_USB_DEVICE</id>
+ <back_end_name>USB_AUDIO-RX</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>usb-headphones</snd_device_name>
+ <fractional_sr>1</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_USB_HEADSET</id>
+ <back_end_name>USB_AUDIO-RX</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>2</channels>
+ <snd_device_name>usb-headphones</snd_device_name>
+ <fractional_sr>1</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_AUX_DIGITAL_1</id>
+ <back_end_name>DISPLAY_PORT-RX</back_end_name>
+ <max_channels>8</max_channels>
+ <channels>2</channels>
+ <snd_device_name>display-port</snd_device_name>
+ <fractional_sr>1</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_PROXY</id>
+ <back_end_name>PCM_RT_PROXY-RX-1</back_end_name>
+ <max_channels>8</max_channels>
+ <channels>2</channels>
+ <snd_device_name>afe-proxy</snd_device_name>
+ <fractional_sr>0</fractional_sr>
+ <samplerate>48000</samplerate>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_HEARING_AID</id>
+ <back_end_name>PCM_RT_PROXY-RX-1</back_end_name>
+ <max_channels>8</max_channels>
+ <channels>2</channels>
+ <snd_device_name>afe-proxy</snd_device_name>
+ <fractional_sr>0</fractional_sr>
+ <usecase>
+ <name>PAL_STREAM_VOICE_CALL</name>
+ <priority>1</priority>
+ </usecase>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_HAPTICS_DEVICE</id>
+ <back_end_name>CODEC_DMA-LPAIF_RXTX-RX-6</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>haptics-dev</snd_device_name>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_ULTRASOUND</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>ultrasound-handset</snd_device_name>
+ <samplerate>96000</samplerate>
+ <bit_width>16</bit_width>
+ </out-device>
+ <out-device>
+ <id>PAL_DEVICE_OUT_ULTRASOUND_DEDICATED</id>
+ <back_end_name>CODEC_DMA-LPAIF_WSA-RX-1</back_end_name>
+ <max_channels>2</max_channels>
+ <channels>1</channels>
+ <snd_device_name>ultrasound-handset</snd_device_name>
+ <samplerate>96000</samplerate>
+ <bit_width>16</bit_width>
+ </out-device>
+ </device_profile>
+ <in_streams>
+ <in_stream>
+ <name>PAL_STREAM_VOIP_TX</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_DEEP_BUFFER</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_COMPRESSED</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_VOICE_UI</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_ACD</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_PROXY</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
+ <disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_RAW</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_COMPRESSED</disabled_stream>
+ <disabled_stream>PAL_STREAM_ULTRA_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ <in_stream>
+ <name>PAL_STREAM_SENSOR_PCM_DATA</name>
+ <policies>
+ <ec_ref>
+ <disabled_stream>PAL_STREAM_LOW_LATENCY</disabled_stream>
+ <disabled_stream>PAL_STREAM_GENERIC</disabled_stream>
+ </ec_ref>
+ </policies>
+ </in_stream>
+ </in_streams>
+ <sound_trigger_platform_info>
+ <common_config>
+ <!-- Sound trigger streams common params -->
+ <param lpi_enable="true" />
+ <param support_nlpi_switch="true" />
+ <param support_device_switch="true" />
+ <param enable_debug_dumps="false" />
+ <param concurrent_capture="true" />
+ <param concurrent_voice_call="true" />
+ <param concurrent_voip_call="true" />
+ <param low_latency_bargein_enable="false" />
+ </common_config>
+ <capture_profile_list>
+ <!-- Common Profiles -->
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI_AAD">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_LPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_LPI_AAD">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <!-- ACD Specific Profiles -->
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_LPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <!-- Sensor PCM Data Specific Profiles -->
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFEC">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_FFEC">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <!-- SVA/Hotword Specific Profiles -->
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_RAW_NLPI">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_LPI">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_LPI_AAD">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_RAW_NLPI">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_FFNS">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="TRI_MIC_16KHZ_16BIT_FFNS">
+ <param sample_rate="16000" />
+ <param channels="3" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-tmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="QUAD_MIC_16KHZ_16BIT_FFNS">
+ <param sample_rate="16000" />
+ <param channels="4" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-qmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="TRI_MIC_16KHZ_16BIT_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="3" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-tmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="QUAD_MIC_16KHZ_16BIT_FFECNS">
+ <param sample_rate="16000" />
+ <param channels="4" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-qmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="TRI_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="3" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-tmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="QUAD_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="4" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-qmic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-mono" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="DUAL_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="2" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-dmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="TRI_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="3" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-tmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="QUAD_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="4" />
+ <param bit_width="16" />
+ <param snd_name="va-mic-qmic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_NS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic-lpi" />
+ <param ec_ref="false" />
+ </capture_profile>
+ <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_ECNS">
+ <param sample_rate="16000" />
+ <param channels="1" />
+ <param bit_width="16" />
+ <param snd_name="headset-va-mic" />
+ <param ec_ref="true" />
+ </capture_profile>
+ </capture_profile_list>
+ <acd_platform_info>
+ <config>
+ <param acd_enable="true" />
+ </config>
+ <!-- ACD -->
+ <stream_config>
+ <name>QC_ACD</name>
+ <param vendor_uuid="4e93281b-296e-4d73-9833-2710c3c7c1db" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI" />
+ <high_performance capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
+ </operating_modes>
+ <sound_model_info>
+ <sound_model>
+ <name>ACD_SOUND_MODEL_ID_EVENT</name>
+ <bin>event.eai</bin>
+ <uuid>0x0B001007</uuid>
+ <contexts>
+ <context id="0x0800132D" /> <!-- EVENT_ALARM -->
+ <context id="0x0800132E" /> <!-- EVENT_BABYCRYING -->
+ <context id="0x0800132F" /> <!-- EVENT_DOGBARKING -->
+ <context id="0x08001330" /> <!-- EVENT_DOORBELL -->
+ <context id="0x08001331" /> <!-- EVENT_DOOROPENCLOSE -->
+ <context id="0x08001332" /> <!-- EVENT_CRASH -->
+ <context id="0x08001333" /> <!-- EVENT_GLASSBREAKING -->
+ <context id="0x08001334" /> <!-- EVENT_SIREN -->
+ <context id="0x080013CC" /> <!-- EVENT_CARHONK -->
+ <context id="0x080013CD" /> <!-- EVENT_GUNSHOT -->
+ <context id="0x080013CE" /> <!-- EVENT_PHONERING -->
+ <context id="0x080013CF" /> <!-- EVENT_SLEEPAPNEA -->
+ <context id="0x080013D0" /> <!-- EVENT_SNORING -->
+ <context id="0x080013D1" /> <!-- EVENT_CATMEOW -->
+ <context id="0x080013D2" /> <!-- EVENT_DOORKNOCK -->
+ <context id="0x080013D3" /> <!-- EVENT_WATERFLOW -->
+ <context id="0x080013D4" /> <!-- EVENT_FIREALARM -->
+ </contexts>
+ </sound_model>
+ <sound_model>
+ <name>ACD_SOUND_MODEL_ID_SPEECH</name>
+ <bin>speech.eai</bin>
+ <uuid>0x0B001008</uuid>
+ <contexts>
+ <context id="0x08001335" /> <!-- AMBIENCE_SPEECH -->
+ </contexts>
+ </sound_model>
+ <sound_model>
+ <name>ACD_SOUND_MODEL_ID_MUSIC</name>
+ <bin>music.eai</bin>
+ <uuid>0x0B001009</uuid>
+ <contexts>
+ <context id="0x08001336" /> <!-- AMBIENCE_MUSIC -->
+ </contexts>
+ </sound_model>
+ <sound_model>
+ <name>ACD_SOUND_MODEL_AMBIENCE_NOISE_SILENCE</name>
+ <bin></bin> <!-- Following contexts dont have a model, hence empty bin -->
+ <uuid>0xFFFFFFFF</uuid> <!-- Indicates no sound model -->
+ <contexts>
+ <context id="0x08001337" /> <!-- AMBIENCE_NOISY_SPL -->
+ <context id="0x08001338" /> <!-- AMBIENCE_SILENT_SPL -->
+ <context id="0x08001339" /> <!-- AMBIENCE_NOISY_SFLUX -->
+ <context id="0x0800133A" /> <!-- AMBIENCE_SILENT_SFLUX -->
+ </contexts>
+ </sound_model>
+ </sound_model_info>
+ </stream_config>
+ <!-- Sensor PCM Data -->
+ <stream_config>
+ <name>QC_SENSOR_PCM_DATA</name>
+ <param vendor_uuid="c88a2c89-7a55-498c-836f-5d7ec8582990" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI" />
+ <low_power_ns capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFNS" />
+ <high_performance capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFEC" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFEC" />
+ <high_performance_ns capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
+ </operating_modes>
+ </stream_config>
+ </acd_platform_info>
+ <!-- Voice UI -->
+ <vui_platform_info>
+ <config>
+ <!-- Voice UI Params used by apk to indicate the Voice UI version current platform supports -->
+ <param version="0x0103" />
+ <param enable_failure_detection="false" />
+ <param notify_second_stage_failure="false" />
+ <param mmap_enable="true" />
+ <param mmap_buffer_duration="5000" />
+ <!-- 5ms duration of data -->
+ <param mmap_frame_length="5" />
+ <!-- Move this flag to common_config if ACD/Sensor PCM Data support car mode in the future -->
+ <param transit_to_non_lpi_on_charging="false" />
+ </config>
+ <!-- Multiple stream_config tags can be listed, each with unique -->
+ <!-- vendor_uuid. The below tag represents QC Voice UI sound model -->
+ <!-- configuration. ISV must use their own unique vendor_uuid. -->
+ <stream_config>
+ <name>QC_VOICE_UI</name>
+ <param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51b" />
+ <param merge_first_stage_sound_models="false" />
+ <!--For now total 3 engines are supported, if more engine instances are needed,-->
+ <!-- do update acdb and usecaseKvManager.xml files by adding more instances -->
+ <param pdk_first_stage_max_engine_count="3"/>
+ <!-- Profile specific data which the algorithm can support -->
+ <param capture_keyword="2000" /> <!-- Default history buffer length -->
+ <param client_capture_read_delay="2000" /> <!-- reserved buffer duration for rt data -->
+ <param pre_roll_duration="500" /> <!-- Default preroll duration -->
+ <!-- durations in us -->
+ <param kw_start_tolerance="360000" />
+ <param kw_end_tolerance="240000" />
+ <param data_before_kw_start="360000" />
+ <param data_after_kw_end="480000" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI" />
+ <high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
+ <high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS" />
+ </operating_modes>
+ <sound_model_info>
+ <first_stage_module_params>
+ <param module_type="GMM" />
+ <param load_sound_model_ids="0xC0000008, 0x0800104C" />
+ <param wakeup_config_ids="0xC0000008, 0x08001049" />
+ <param buffering_config_ids="0xC0000008, 0x08001044" />
+ <param engine_reset_ids="0xC0000008, 0x08001051" />
+ </first_stage_module_params>
+ <first_stage_module_params>
+ <param module_type="PDK" />
+ <param load_sound_model_ids="0xC0000008, 0x0800124E" />
+ <param unload_sound_model_ids="0xC0000008, 0x08001250" />
+ <param wakeup_config_ids="0xC0000008, 0x08001049" />
+ <param buffering_config_ids="0xC0000008, 0x0800124F" />
+ <param engine_reset_ids="0xC0000008, 0x08001051" />
+ </first_stage_module_params>
+ <arm_ss_module_params>
+ <!-- Options are "KEYWORD_DETECTION", "USER_VERIFICATION", "CUSTOM_DETECTION" -->
+ <param sm_detection_type= "KEYWORD_DETECTION" />
+ <param sm_id="0x2" />
+ <param module_lib="libcapiv2svacnnvendor.so" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1" />
+ </arm_ss_module_params>
+ <arm_ss_module_params>
+ <param sm_detection_type= "USER_VERIFICATION" />
+ <param sm_id="0x4" />
+ <param module_lib="libcapiv2uvvendor.so" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1" />
+ </arm_ss_module_params>
+ <arm_ss_module_params>
+ <param sm_detection_type= "KEYWORD_DETECTION" />
+ <param sm_id="0x8" />
+ <param module_lib="libcapiv2svarnnvendor.so" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1" />
+ </arm_ss_module_params>
+ <arm_ss_module_params>
+ <param sm_detection_type= "KEYWORD_DETECTION" />
+ <param sm_id="0x40" />
+ <param module_lib="libcapiv2udk7vendor.so" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <param channel_count="1" />
+ </arm_ss_module_params>
+ </sound_model_info>
+ </stream_config>
+ <!-- Hotword Voice UI-->
+ <stream_config>
+ <name>HOTWORD_VOICE_UI</name>
+ <param vendor_uuid="7038ddc8-30f2-11e6-b0ac-40a8f03d3f15" />
+ <param get_module_version="false" />
+ <param merge_first_stage_sound_models="false" />
+ <param capture_keyword="2000" />
+ <param client_capture_read_delay="2000" />
+ <param kw_start_tolerance="100" />
+ <param kw_end_tolerance="100" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_RAW_LPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI" />
+ <high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI" />
+ <high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_RAW_NLPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI" />
+ </operating_modes>
+ <sound_model_info>
+ <first_stage_module_params>
+ <param module_type="HOTWORD" />
+ <param load_sound_model_ids="0xC0000008, 0x0800104C" />
+ <param unload_sound_model_ids="0xC0000008, 0x00012C15" />
+ <param buffering_config_ids="0xC0000008, 0x08001044" />
+ <param version_ids="0xC0000008, 0x18000101" />
+ <param engine_reset_ids="0xC0000008, 0x08001051" />
+ </first_stage_module_params>
+ </sound_model_info>
+ </stream_config>
+ <!-- CUSTOM Voice UI-->
+ <stream_config>
+ <name>CUSTOM_VOICE_UI</name>
+ <!-- NOTE: Customer need to replace with their own uuid and match with sound model -->
+ <param vendor_uuid="c51c508a-ee1b-11ec-8ea0-0242ac120002" />
+ <param merge_first_stage_sound_models="false" />
+ <!-- Profile specific data which the algorithm can support -->
+ <param capture_keyword="2000" /> <!-- Default history buffer length -->
+ <param client_capture_read_delay="2000" /> <!-- reserved buffer duration for rt data -->
+ <param pre_roll_duration="500" /> <!-- Default preroll duration -->
+ <!-- durations in us -->
+ <param kw_start_tolerance="360000" />
+ <param kw_end_tolerance="240000" />
+ <param data_before_kw_start="360000" />
+ <param data_after_kw_end="480000" />
+ <param sample_rate="16000" />
+ <param bit_width="16" />
+ <!-- Module output channels -->
+ <param out_channels="1" />
+ <operating_modes>
+ <low_power capture_profile_handset="DUAL_MIC_16KHZ_16BIT_CUSTOM_NS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_NS" />
+ <high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_CUSTOM_ECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_ECNS" />
+ <high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_CUSTOM_ECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_ECNS" />
+ </operating_modes>
+ <sound_model_info>
+ <first_stage_module_params>
+ <param module_type="CUSTOM1" />
+ <param load_sound_model_ids="0xC0000008, 0x0800104C" />
+ <param custom_config_ids="0xC0000008, 0x08001049" />
+ <param buffering_config_ids="0xC0000008, 0x08001044" />
+ <param engine_reset_ids="0xC0000008, 0x08001051" />
+ </first_stage_module_params>
+ </sound_model_info>
+ </stream_config>
+ </vui_platform_info>
+ </sound_trigger_platform_info>
+</resource_manager_info>
diff --git a/configs/crow/usecaseKvManager.xml b/configs/crow/usecaseKvManager.xml
new file mode 100644
index 0000000..f00c561
--- /dev/null
+++ b/configs/crow/usecaseKvManager.xml
@@ -0,0 +1,1517 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!-- Copyright (c) 2021, 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.
+
+
+* Changes from Qualcomm Innovation Center are provided under the following license:
+*
+* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted (subject to the limitations in the
+* disclaimer below) 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 Qualcomm Innovation Center, Inc. nor the names of its
+* contributors may be used to endorse or promote products derived
+* from this software without specific prior written permission.
+*
+* NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE
+* GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT
+* HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+* IN NO EVENT SHALL THE COPYRIGHT HOLDER 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. -->
+
+<graph_key_value_pair_info>
+ <streams>
+ <!-- Low-latency stream -->
+ <stream type="PAL_STREAM_LOW_LATENCY">
+ <keys_and_values Direction="TX" Instance="1">
+ <!-- STREAMTX - RAW_RECORD -->
+ <graph_kv key="0xB1000000" value="0xB1000009"/>
+ </keys_and_values>
+ <keys_and_values Direction="RX" Instance="1">
+ <!-- STREAMRX - PCM_LL_PLAYBACK -->
+ <graph_kv key="0xA1000000" value="0xA100000E"/>
+ <!-- INSTANCE - INSTANCE_1 -->
+ <graph_kv key="0xAB000000" value="0x1"/>
+ </keys_and_values>
+ <keys_and_values Direction="RX" Instance="2">
+ <!-- STREAMRX - PCM_LL_PLAYBACK -->
+ <graph_kv key="0xA1000000" value="0xA100000E"/>
+ <!-- INSTANCE - INSTANCE_2 -->
+ <graph_kv key="0xAB000000" value="0x2"/>
+ </keys_and_values>
+ </stream>
+ <!-- Deep Buffer stream -->
+ <stream type="PAL_STREAM_DEEP_BUFFER">
+ <keys_and_values Direction="RX" Instance="1">
+ <!-- STREAMRX - PCM_DEEP_BUFFER -->
+ <graph_kv key="0xA1000000" value="0xA1000001"/>
+ <!-- INSTANCE - INSTANCE_1 -->
+ <graph_kv key="0xAB000000" value="0x1"/>
+ </keys_and_values>
+ <keys_and_values Direction="RX" Instance="2">
+ <!-- STREAMRX - PCM_DEEP_BUFFER -->
+ <graph_kv key="0xA1000000" value="0xA1000001"/>
+ <!-- INSTANCE - INSTANCE_2 -->
+ <graph_kv key="0xAB000000" value="0x2"/>
+ </keys_and_values>
+ <keys_and_values Direction="TX" Instance="1">
+ <!-- STREAMTX - PCM_RECORD -->
+ <graph_kv key="0xB1000000" value="0xB1000001"/>
+ <!-- INSTANCE - INSTANCE_1 -->
+ <graph_kv key="0xAB000000" value="0x1"/>
+ </keys_and_values>
+ <keys_and_values Direction="TX" Instance="2">
+ <!-- STREAMTX - PCM_RECORD -->
+ <graph_kv key="0xB1000000" value="0xB1000001"/>
+ <!-- INSTANCE - INSTANCE_2 -->
+ <graph_kv key="0xAB000000" value="0x2"/>
+ </keys_and_values>
+ </stream>
+ <!-- Spatial audio stream -->
+ <stream type="PAL_STREAM_SPATIAL_AUDIO">
+ <keys_and_values Direction="RX" Instance="1">
+ <!-- STREAMRX - SPATIAL_AUDIO_PLAYBACK -->
+ <graph_kv key="0xA1000000" value="0xA1000018"/>
+ <!-- INSTANCE - INSTANCE_1 -->
+ <graph_kv key="0xAB000000" value="0x1"/>
+ </keys_and_values>
+ </stream>
+ <stream type="PAL_STREAM_VOICE_RECOGNITION">
+ <keys_and_values Direction="TX" Instance="1">
+ <!-- STREAMTX - VOICE_RECOGNITION_RECORD -->
+ <graph_kv key="0xB1000000" value="0xB1000011"/>
+ <!-- INSTANCE - INSTANCE_1 -->
+ <graph_kv key="0xAB000000" value="0x1"/>
+ </keys_and_values>
+ </stream>
+ <!-- Compress stream -->
+ <stream type="PAL_STREAM_COMPRESSED">
+ <keys_and_values Direction="RX" Instance="1">
+ <!-- STREAMRX - COMPRESSED_OFFLOAD_PLAYBACK -->
+ <graph_kv key="0xA1000000" value="0xA100000A"/>
+ <!-- INSTANCE - INSTANCE_1 -->
+ <graph_kv key="0xAB000000" value="0x1"/>
+ </keys_and_values>
+ <keys_and_values Direction="TX" Instance="1">
+ <!-- STREAMTX - compress capture stream -->
+ <graph_kv key="0xB1000000" value="0xB1000012"/>
+ <!-- INSTANCE - INSTANCE_1 -->
+ <graph_kv key="0xAB000000" value="0x1"/>
+ </keys_and_values>
+ </stream>
+ <!-- VOIP RX stream -->
+ <stream type="PAL_STREAM_VOIP_RX">
+ <keys_and_values>
+ <!-- STREAMRX - VOIP_RX_PLAYBACK -->
+ <graph_kv key="0xA1000000" value="0xA1000005"/>
+ </keys_and_values>
+ </stream>
+ <!-- VOIP TX stream -->
+ <stream type="PAL_STREAM_VOIP_TX">
+ <keys_and_values>
+ <!-- STREAMTX - VOIP_TX_RECORD -->
+ <graph_kv key="0xB1000000" value="0xB1000004"/>
+ </keys_and_values>
+ </stream>
+ <!-- Voice Call Music stream -->
+ <stream type="PAL_STREAM_VOICE_CALL_MUSIC">
+ <keys_and_values>
+ <!-- STREAMRX - INCALL_MUSIC -->
+ <graph_kv key="0xA1000000" value="0xA1000013"/>
+ </keys_and_values>
+ </stream>
+ <!-- Generic-playback stream -->
+ <stream type="PAL_STREAM_GENERIC">
+ <keys_and_values Direction="RX" Instance="1">
+ <!-- STREAMRX - GENERIC_PLAYBACK -->
+ <graph_kv key="0xA1000000" value="0xA1000014"/>
+ <!-- INSTANCE - INSTANCE_1 -->
+ <graph_kv key="0xAB000000" value="0x1"/>
+ </keys_and_values>
+ <keys_and_values Direction="RX" Instance="2">
+ <!-- STREAMRX - GENERIC_PLAYBACK -->
+ <graph_kv key="0xA1000000" value="0xA1000014"/>
+ <!-- INSTANCE - INSTANCE_2 -->
+ <graph_kv key="0xAB000000" value="0x2"/>
+ </keys_and_values>
+ </stream>
+ <!-- Voice Call Record stream -->
+ <stream type="PAL_STREAM_VOICE_CALL_RECORD">
+ <keys_and_values>
+ <!-- STREAMTX - INCALL_RECORD -->
+ <graph_kv key="0xB1000000" value="0xB100000C"/>
+ </keys_and_values>
+ </stream>
+ <!-- Voice stream -->
+ <stream type="PAL_STREAM_VOICE_CALL">
+ <keys_and_values Direction="RX" VSID="VOICEMMODE1,VOICEMMODE2,VOICELBMMODE1,VOICELBMMODE2">
+ <!-- STREAMRX - VOICE_CALL_RX -->
+ <graph_kv key="0xA1000000" value="0xA1000010"/>
+ <!-- VSID - VSID_DEFAULT -->
+ <graph_kv key="0xB3000000" value="0xB3000001"/>
+ </keys_and_values>
+ <keys_and_values Direction="TX" VSID="VOICEMMODE1,VOICEMMODE2,VOICELBMMODE1,VOICELBMMODE2">
+ <!-- STREAMTX - VOICE_CALL_TX -->
+ <graph_kv key="0xB1000000" value="0xB1000007"/>
+ <!-- VSID - VSID_DEFAULT -->
+ <graph_kv key="0xB3000000" value="0xB3000001"/>
+ </keys_and_values>
+ </stream>
+ <!-- Loopback stream -->
+ <stream type="PAL_STREAM_LOOPBACK">
+ <keys_and_values Direction="RX" SubType="PAL_STREAM_LOOPBACK_HFP_RX">
+ <!-- STREAMRX - HFP_RX_PLAYBACK -->
+ <graph_kv key="0xA1000000" value="0xA100000C"/>
+ </keys_and_values>
+ <keys_and_values Direction="TX" SubType="PAL_STREAM_LOOPBACK_HFP_RX">
+ <!-- STREAMTX - HFP_RX_CAPTURE -->
+ <graph_kv key="0xB1000000" value="0xB1000005"/>
+ </keys_and_values>
+ <keys_and_values Direction="RX_TX" SubType="PAL_STREAM_LOOPBACK_PCM,PAL_STREAM_LOOPBACK_FM,PAL_STREAM_LOOPBACK_KARAOKE">
+ <!-- STREAMRX - PCM_RX_LOOPBACK -->
+ <graph_kv key="0xA1000000" value="0xA1000003"/>
+ </keys_and_values>
+ </stream>
+ <!-- Voice UI stream -->
+ <stream type="PAL_STREAM_VOICE_UI">
+ <keys_and_values VUIModuleType="GMM" Instance="1">
+ <!-- STREAM_CONFIG - STREAM_CFG_VUI_GMM -->
+ <graph_kv key="0xBC000000" value="0xBC000005"/>
+ <!-- STREAMTX - VOICE_UI -->
+ <graph_kv key="0xB1000000" value="0xB1000003"/>
+ <!-- INSTANCE - INSTANCE_1 -->
+ <graph_kv key="0xAB000000" value="0x1"/>
+ </keys_and_values>
+ <keys_and_values VUIModuleType="GMM" Instance="2">
+ <!-- STREAM_CONFIG - STREAM_CFG_VUI_GMM -->
+ <graph_kv key="0xBC000000" value="0xBC000005"/>
+ <!-- STREAMTX - VOICE_UI -->
+ <graph_kv key="0xB1000000" value="0xB1000003"/>
+ <!-- INSTANCE - INSTANCE_2 -->
+ <graph_kv key="0xAB000000" value="0x2"/>
+ </keys_and_values>
+ <keys_and_values VUIModuleType="PDK" Instance="1">
+ <!-- STREAM_CONFIG - STREAM_CFG_VUI_PDK -->
+ <graph_kv key="0xBC000000" value="0xBC000006"/>
+ <!-- STREAMTX - VOICE_UI -->
+ <graph_kv key="0xB1000000" value="0xB1000003"/>
+ <!-- INSTANCE - INSTANCE_1 -->
+ <graph_kv key="0xAB000000" value="0x1"/>
+ </keys_and_values>
+ <keys_and_values VUIModuleType="PDK" Instance="2">
+ <!-- STREAM_CONFIG - STREAM_CFG_VUI_PDK -->
+ <graph_kv key="0xBC000000" value="0xBC000006"/>
+ <!-- STREAMTX - VOICE_UI -->
+ <graph_kv key="0xB1000000" value="0xB1000003"/>
+ <!-- INSTANCE - INSTANCE_2 -->
+ <graph_kv key="0xAB000000" value="0x2"/>
+ </keys_and_values>
+ <keys_and_values VUIModuleType="PDK" Instance="3">
+ <!-- STREAM_CONFIG - STREAM_CFG_VUI_PDK -->
+ <graph_kv key="0xBC000000" value="0xBC000006"/>
+ <!-- STREAMTX - VOICE_UI -->
+ <graph_kv key="0xB1000000" value="0xB1000003"/>
+ <!-- INSTANCE - INSTANCE_3 -->
+ <graph_kv key="0xAB000000" value="0x3"/>
+ </keys_and_values>
+ <keys_and_values VUIModuleType="HOTWORD" Instance="1">
+ <!-- STREAM_CONFIG - STREAM_CFG_VUI_HW -->
+ <graph_kv key="0xBC000000" value="0xBC000002"/>
+ <!-- STREAMTX - VOICE_UI -->
+ <graph_kv key="0xB1000000" value="0xB1000003"/>
+ <!-- INSTANCE - INSTANCE_1 -->
+ <graph_kv key="0xAB000000" value="0x1"/>
+ </keys_and_values>
+ <keys_and_values VUIModuleType="CUSTOM1" Instance="1">
+ <!-- STREAM_CONFIG - STREAM_CFG_VUI_CUSTOM -->
+ <graph_kv key="0xBC000000" value="0xBC000004"/>
+ <!-- STREAMTX - VOICE_UI -->
+ <graph_kv key="0xB1000000" value="0xB1000003"/>
+ <!-- INSTANCE - INSTANCE_1 -->
+ <graph_kv key="0xAB000000" value="0x1"/>
+ </keys_and_values>
+ <keys_and_values VUIModuleType="CUSTOM1" Instance="2">
+ <!-- STREAM_CONFIG - STREAM_CFG_VUI_CUSTOM -->
+ <graph_kv key="0xBC000000" value="0xBC000004"/>
+ <!-- STREAMTX - VOICE_UI -->
+ <graph_kv key="0xB1000000" value="0xB1000003"/>
+ <!-- INSTANCE - INSTANCE_2 -->
+ <graph_kv key="0xAB000000" value="0x2"/>
+ </keys_and_values>
+ </stream>
+ <!-- PCM-Offload stream -->
+ <stream type="PAL_STREAM_PCM_OFFLOAD">
+ <keys_and_values Direction="RX" Instance="1">
+ <!-- STREAMRX - PCM_OFFLOAD_PLAYBACK -->
+ <graph_kv key="0xA1000000" value="0xA100000F"/>
+ <!-- INSTANCE - INSTANCE_1 -->
+ <graph_kv key="0xAB000000" value="0x1"/>
+ </keys_and_values>
+ </stream>
+ <!-- Ultra-Low-latency stream -->
+ <stream type="PAL_STREAM_ULTRA_LOW_LATENCY">
+ <keys_and_values Direction="RX" Instance="1">
+ <!-- STREAMRX - PCM_ULL_PLAYBACK -->
+ <graph_kv key="0xA1000000" value="0xA1000011"/>
+ <!-- INSTANCE - INSTANCE_1 -->
+ <graph_kv key="0xAB000000" value="0x1"/>
+ </keys_and_values>
+ <keys_and_values Direction="RX" Instance="2">
+ <!-- STREAMRX - PCM_ULL_PLAYBACK -->
+ <graph_kv key="0xA1000000" value="0xA1000011"/>
+ <!-- INSTANCE - INSTANCE_2 -->
+ <graph_kv key="0xAB000000" value="0x2"/>
+ </keys_and_values>
+ <keys_and_values Direction="TX" Instance="1">
+ <!-- STREAMTX - PCM_ULL_RECORD -->
+ <graph_kv key="0xB1000000" value="0xB100000A"/>
+ </keys_and_values>
+ </stream>
+ <!-- Proxy stream -->
+ <stream type="PAL_STREAM_PROXY">
+ <keys_and_values Direction="TX">
+ <!-- STREAMTX - PCM_PROXY_RECORD -->
+ <graph_kv key="0xB1000000" value="0xB100000B"/>
+ </keys_and_values>
+ <keys_and_values Direction="TX" SubType="PAL_STREAM_PROXY_TX_WFD">
+ <!-- STREAMTX - PCM_PROXY_RECORD -->
+ <graph_kv key="0xB1000000" value="0xB100000B"/>
+ <!-- PROXY_TX_TYPE - PROXY_TX_WFD -->
+ <graph_kv key="0xD1000000" value="0xD1000002"/>
+ </keys_and_values>
+ <keys_and_values Direction="TX" SubType="PAL_STREAM_PROXY_TX_TELEPHONY_RX">
+ <!-- STREAMTX - PCM_PROXY_RECORD -->
+ <graph_kv key="0xB1000000" value="0xB100000B"/>
+ <!-- PROXY_TX_TYPE - PROXY_TX_VOICE_RX -->
+ <graph_kv key="0xD1000000" value="0xD1000003"/>
+ </keys_and_values>
+ <keys_and_values Direction="RX">
+ <!-- STREAMRX - PCM_PROXY_PLAYBACK -->
+ <graph_kv key="0xA1000000" value="0xA1000012"/>
+ </keys_and_values>
+ </stream>
+ <!-- Non-Tunnel stream -->
+ <stream type="PAL_STREAM_NON_TUNNEL">
+ <keys_and_values AudioFormat="PAL_AUDIO_FMT_PCM" Instance="1">
+ <!-- STREAM - NT_ENCODE -->
+ <graph_kv key="0xD3000000" value="0xD2000002"/>
+ <!-- INSTANCE - INSTANCE_1 -->
+ <graph_kv key="0xAB000000" value="0x1"/>
+ </keys_and_values>
+ <keys_and_values AudioFormat="PAL_AUDIO_FMT_NON_PCM" Instance="1">
+ <!-- STREAM - NT_DECODE -->
+ <graph_kv key="0xD3000000" value="0xD2000001"/>
+ <!-- INSTANCE - INSTANCE_1 -->
+ <graph_kv key="0xAB000000" value="0x1"/>
+ </keys_and_values>
+ <keys_and_values AudioFormat="PAL_AUDIO_FMT_PCM" Instance="2">
+ <!-- STREAM - NT_ENCODE -->
+ <graph_kv key="0xD3000000" value="0xD2000002"/>
+ <!-- INSTANCE - INSTANCE_2 -->
+ <graph_kv key="0xAB000000" value="0x2"/>
+ </keys_and_values>
+ <keys_and_values AudioFormat="PAL_AUDIO_FMT_NON_PCM" Instance="2">
+ <!-- STREAM - NT_DECODE -->
+ <graph_kv key="0xD3000000" value="0xD2000001"/>
+ <!-- INSTANCE - INSTANCE_2 -->
+ <graph_kv key="0xAB000000" value="0x2"/>
+ </keys_and_values>
+ </stream>
+ <!-- Haptics stream -->
+ <stream type="PAL_STREAM_HAPTICS">
+ <keys_and_values>
+ <!-- STREAMRX - HAPTICS_PLAYBACK -->
+ <graph_kv key="0xA1000000" value="0xA1000015"/>
+ </keys_and_values>
+ </stream>
+ <!-- Raw stream -->
+ <stream type="PAL_STREAM_RAW">
+ <keys_and_values Direction="RX">
+ <!-- STREAMRX - RAW_PLAYBACK -->
+ <graph_kv key="0xA1000000" value="0xA1000019"/>
+ </keys_and_values>
+ <keys_and_values Direction="TX">
+ <!-- STREAMTX - RAW_RECORD -->
+ <graph_kv key="0xB1000000" value="0xB1000009"/>
+ </keys_and_values>
+ <keys_and_values Direction="RX_TX">
+ <!-- STREAMRX - PCM_RX_LOOPBACK -->
+ <graph_kv key="0xA1000000" value="0xA1000003"/>
+ </keys_and_values>
+ </stream>
+ <!-- ACD stream -->
+ <stream type="PAL_STREAM_ACD">
+ <keys_and_values ACDModuleType="QC_ACD">
+ <!-- STREAM_CONFIG - STREAM_CFG_ACD_QC -->
+ <graph_kv key="0xBC000000" value="0xBC000007"/>
+ <!-- STREAMTX - ACD -->
+ <graph_kv key="0xB1000000" value="0xB100000D"/>
+ </keys_and_values>
+ </stream>
+ <!-- Sensor PCM Data stream -->
+ <stream type="PAL_STREAM_SENSOR_PCM_DATA">
+ <keys_and_values ACDModuleType="QC_SENSOR_PCM_DATA">
+ <!-- STREAMTX - SENSOR_PCM_DATA -->
+ <graph_kv key="0xB1000000" value="0xB100000E"/>
+ </keys_and_values>
+ </stream>
+ </streams>
+ <streampps>
+ <!-- Voice Call stream PP -->
+ <streampp type="PAL_STREAM_VOICE_CALL">
+ <keys_and_values>
+ <!-- STREAMPP_RX - STREAMPP_RX_DEFAULT -->
+ <graph_kv key="0xAF000000" value="0xAF000001"/>
+ </keys_and_values>
+ </streampp>
+ </streampps>
+ <devices>
+ <!-- Speaker Device -->
+ <device id="PAL_DEVICE_OUT_SPEAKER">
+ <keys_and_values>
+ <!-- DEVICERX - SPEAKER -->
+ <graph_kv key="0xA2000000" value="0xA2000001"/>
+ </keys_and_values>
+ </device>
+ <!-- Handset Device -->
+ <device id="PAL_DEVICE_OUT_HANDSET">
+ <keys_and_values>
+ <!-- DEVICERX - HANDSET -->
+ <graph_kv key="0xA2000000" value="0xA2000004"/>
+ </keys_and_values>
+ </device>
+ <!-- AUX Device -->
+ <device id="PAL_DEVICE_OUT_AUX_DIGITAL,PAL_DEVICE_OUT_AUX_DIGITAL_1,PAL_DEVICE_OUT_HDMI">
+ <keys_and_values>
+ <!-- DEVICERX - HDMI_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000006"/>
+ </keys_and_values>
+ </device>
+ <!-- wired USB Device-->
+ <device id="PAL_DEVICE_OUT_WIRED_HEADSET,PAL_DEVICE_OUT_WIRED_HEADPHONE">
+ <keys_and_values>
+ <!-- DEVICERX - HEADPHONES -->
+ <graph_kv key="0xA2000000" value="0xA2000002"/>
+ </keys_and_values>
+ </device>
+ <!-- USB Device-->
+ <device id="PAL_DEVICE_OUT_USB_HEADSET,PAL_DEVICE_OUT_USB_DEVICE">
+ <keys_and_values>
+ <!-- DEVICERX - USB_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000005"/>
+ </keys_and_values>
+ </device>
+ <!-- In Handset MIC Device -->
+ <device id="PAL_DEVICE_IN_HANDSET_MIC">
+ <keys_and_values>
+ <!-- DEVICETX - HANDSETMIC -->
+ <graph_kv key="0xA3000000" value="0xA3000004"/>
+ </keys_and_values>
+ <keys_and_values SidetoneMode="SW">
+ <!-- SW_SIDETONE - SW_SIDETONE_ON -->
+ <graph_kv key="0xBA000000" value="0xBA000001"/>
+ </keys_and_values>
+ </device>
+ <!-- In speaker MIC Device-->
+ <device id="PAL_DEVICE_IN_SPEAKER_MIC">
+ <keys_and_values>
+ <!-- DEVICETX - SPEAKER_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000001"/>
+ </keys_and_values>
+ <keys_and_values SidetoneMode="SW">
+ <!-- SW_SIDETONE - SW_SIDETONE_ON -->
+ <graph_kv key="0xBA000000" value="0xBA000001"/>
+ </keys_and_values>
+ </device>
+ <!-- In wired Headset Device -->
+ <device id="PAL_DEVICE_IN_WIRED_HEADSET">
+ <keys_and_values>
+ <!-- DEVICETX - HEADPHONE_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000003"/>
+ </keys_and_values>
+ <keys_and_values SidetoneMode="SW">
+ <!-- SW_SIDETONE - SW_SIDETONE_ON -->
+ <graph_kv key="0xBA000000" value="0xBA000001"/>
+ </keys_and_values>
+ </device>
+ <!-- In USB Headset Device -->
+ <device id="PAL_DEVICE_IN_USB_DEVICE,PAL_DEVICE_IN_USB_HEADSET">
+ <keys_and_values>
+ <!-- DEVICETX - USB_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000005"/>
+ </keys_and_values>
+ <keys_and_values SidetoneMode="SW">
+ <!-- SW_SIDETONE - SW_SIDETONE_ON -->
+ <graph_kv key="0xBA000000" value="0xBA000001"/>
+ </keys_and_values>
+ </device>
+ <!-- In Handset VA MIC Device -->
+ <device id="PAL_DEVICE_IN_HANDSET_VA_MIC">
+ <keys_and_values>
+ <!-- DEVICETX - HANDSETMIC_VA -->
+ <graph_kv key="0xA3000000" value="0xA3000006"/>
+ </keys_and_values>
+ </device>
+ <!-- In Headset VA MIC Device -->
+ <device id="PAL_DEVICE_IN_HEADSET_VA_MIC">
+ <keys_and_values>
+ <!-- DEVICETX - HEADSETMIC_VA -->
+ <graph_kv key="0xA3000000" value="0xA3000007"/>
+ </keys_and_values>
+ </device>
+ <!-- Proxy IN Device -->
+ <device id="PAL_DEVICE_IN_PROXY">
+ <keys_and_values>
+ <!-- DEVICETX - PROXY_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000008"/>
+ </keys_and_values>
+ <keys_and_values SubType="PAL_STREAM_PROXY_TX_WFD">
+ <!-- DEVICETX - PROXY_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000008"/>
+ <!-- PROXY_TX_TYPE - PROXY_TX_WFD -->
+ <graph_kv key="0xD1000000" value="0xD1000002"/>
+ </keys_and_values>
+ </device>
+ <!-- Proxy Out Device -->
+ <device id="PAL_DEVICE_OUT_PROXY">
+ <keys_and_values>
+ <!-- DEVICERX - PROXY_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000007"/>
+ </keys_and_values>
+ </device>
+ <!-- In Telephony RX Device -->
+ <device id="PAL_DEVICE_IN_TELEPHONY_RX">
+ <keys_and_values>
+ <!-- DEVICETX - PROXY_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000008"/>
+ </keys_and_values>
+ <keys_and_values SubType="PAL_STREAM_PROXY_TX_TELEPHONY_RX">
+ <!-- DEVICETX - PROXY_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000008"/>
+ <!-- PROXY_TX_TYPE - PROXY_TX_VOICE_RX -->
+ <graph_kv key="0xD1000000" value="0xD1000003"/>
+ </keys_and_values>
+ </device>
+ <!-- In VI feedback Device -->
+ <device id="PAL_DEVICE_IN_VI_FEEDBACK">
+ <keys_and_values>
+ <!-- DEVICETX - VI_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000009"/>
+ </keys_and_values>
+ </device>
+ <!-- In CPS feedback Device -->
+ <device id="PAL_DEVICE_IN_CPS_FEEDBACK">
+ <keys_and_values>
+ <!-- DEVICETX - CPS_TX -->
+ <graph_kv key="0xA3000000" value="0xA300000E"/>
+ </keys_and_values>
+ </device>
+ <!-- Out hearing AID Device -->
+ <device id="PAL_DEVICE_OUT_HEARING_AID">
+ <keys_and_values>
+ <!-- DEVICERX - PROXY_RX_VOICE -->
+ <graph_kv key="0xA2000000" value="0xA2000008"/>
+ </keys_and_values>
+ </device>
+ <!-- Out Haptics Device -->
+ <device id="PAL_DEVICE_OUT_HAPTICS_DEVICE">
+ <keys_and_values>
+ <!-- DEVICERX - HAPTICS_DEVICE -->
+ <graph_kv key="0xA2000000" value="0xA2000009"/>
+ </keys_and_values>
+ </device>
+ <!-- In FM Tuner Device -->
+ <device id="PAL_DEVICE_IN_FM_TUNER">
+ <keys_and_values>
+ <!-- DEVICETX - FM_TX -->
+ <graph_kv key="0xA3000000" value="0xA300000A"/>
+ </keys_and_values>
+ </device>
+ <!-- Out Ultrasound Device -->
+ <device id="PAL_DEVICE_OUT_ULTRASOUND">
+ <keys_and_values>
+ <!-- DEVICERX - ULTRASOUND_RX -->
+ <graph_kv key="0xA2000000" value="0xA200000A"/>
+ </keys_and_values>
+ </device>
+ <!-- Out Ultrasound Device -->
+ <device id="PAL_DEVICE_OUT_ULTRASOUND_DEDICATED">
+ <keys_and_values>
+ <!-- DEVICERX - ULTRASOUND_RX -->
+ <graph_kv key="0xA2000000" value="0xA200000B"/>
+ </keys_and_values>
+ </device>
+ <!-- In Ultrasound Device -->
+ <device id="PAL_DEVICE_IN_ULTRASOUND_MIC">
+ <keys_and_values>
+ <!-- DEVICETX - ULTRASOUND_TX -->
+ <graph_kv key="0xA3000000" value="0xA300000B"/>
+ </keys_and_values>
+ </device>
+ <!-- In External EC Reference Device -->
+ <device id="PAL_DEVICE_IN_EXT_EC_REF">
+ <keys_and_values>
+ <!-- DEVICETX_EXT - EXT_EC_TX -->
+ <graph_kv key="0xD7000000" value="0xD7000001"/>
+ </keys_and_values>
+ </device>
+ <!-- BT A2DP OUT Device -->
+ <device id="PAL_DEVICE_OUT_BLUETOOTH_A2DP">
+ <keys_and_values CodecFormat="CODEC_TYPE_LDAC" AbrEnabled="TRUE,FALSE" Hostless="TRUE,FALSE">
+ <!-- DEVICERX - BT_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000003"/>
+ <!-- BT_PROFILE - A2DP -->
+ <graph_kv key="0xB4000000" value="0xB4000002"/>
+ <!-- BT_FORMAT - LDAC -->
+ <graph_kv key="0xB5000000" value="0xB5000002"/>
+ </keys_and_values>
+ <!-- In APTX_AD ABR is always enabled -->
+ <keys_and_values CodecFormat="CODEC_TYPE_APTX_AD" AbrEnabled="TRUE,FALSE" Hostless="TRUE,FALSE">
+ <!-- DEVICERX - BT_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000003"/>
+ <!-- BT_PROFILE - A2DP -->
+ <graph_kv key="0xB4000000" value="0xB4000002"/>
+ <!-- BT_FORMAT - APTX_ADAPTIVE -->
+ <graph_kv key="0xB5000000" value="0xB5000003"/>
+ </keys_and_values>
+ <keys_and_values CodecFormat="CODEC_TYPE_LC3" AbrEnabled="TRUE,FALSE" Hostless="TRUE">
+ <!-- DEVICERX - BT_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000003"/>
+ <!-- BT_PROFILE - A2DP -->
+ <graph_kv key="0xB4000000" value="0xB4000002"/>
+ <!-- BT_FORMAT - LC3 -->
+ <graph_kv key="0xB5000000" value="0xB5000005"/>
+ </keys_and_values>
+ <keys_and_values CodecFormat="CODEC_TYPE_LC3" AbrEnabled="TRUE,FALSE" Hostless="FALSE">
+ <!-- DEVICERX - BT_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000003"/>
+ <!-- BT_PROFILE - A2DP -->
+ <graph_kv key="0xB4000000" value="0xB4000002"/>
+ <!-- BT_FORMAT - LC3 -->
+ <graph_kv key="0xB5000000" value="0xB5000005"/>
+ </keys_and_values>
+ <keys_and_values CodecFormat="CODEC_TYPE_AAC" AbrEnabled="TRUE" Hostless="TRUE,FALSE">
+ <!-- DEVICERX - BT_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000003"/>
+ <!-- BT_PROFILE - A2DP -->
+ <graph_kv key="0xB4000000" value="0xB4000002"/>
+ <!-- BT_FORMAT - AAC_ABR -->
+ <graph_kv key="0xB5000000" value="0xB5000006"/>
+ </keys_and_values>
+ <keys_and_values CodecFormat="CODEC_TYPE_AAC,CODEC_TYPE_SBC,CODEC_TYPE_APTX,CODEC_TYPE_APTX_HD,CODEC_TYPE_APTX_DUAL_MONO" AbrEnabled="FALSE" Hostless="TRUE,FALSE">
+ <!-- DEVICERX - BT_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000003"/>
+ <!-- BT_PROFILE - A2DP -->
+ <graph_kv key="0xB4000000" value="0xB4000002"/>
+ <!-- BT_FORMAT - GENERIC -->
+ <graph_kv key="0xB5000000" value="0xB5000001"/>
+ </keys_and_values>
+ </device>
+ <!-- BT BLE OUT Device -->
+ <device id="PAL_DEVICE_OUT_BLUETOOTH_BLE">
+ <keys_and_values CodecFormat="CODEC_TYPE_LC3" AbrEnabled="TRUE,FALSE" Hostless="TRUE">
+ <!-- DEVICERX - BT_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000003"/>
+ <!-- BT_PROFILE - BLE -->
+ <graph_kv key="0xB4000000" value="0xB4000003"/>
+ <!-- BT_FORMAT - LC3 -->
+ <graph_kv key="0xB5000000" value="0xB5000005"/>
+ </keys_and_values>
+ <keys_and_values CodecFormat="CODEC_TYPE_LC3" AbrEnabled="TRUE,FALSE" Hostless="FALSE">
+ <!-- DEVICERX - BT_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000003"/>
+ <!-- BT_PROFILE - BLE -->
+ <graph_kv key="0xB4000000" value="0xB4000003"/>
+ <!-- BT_FORMAT - LC3 -->
+ <graph_kv key="0xB5000000" value="0xB5000005"/>
+ </keys_and_values>
+ <keys_and_values CodecFormat="CODEC_TYPE_APTX_AD_QLEA" AbrEnabled="TRUE,FALSE" Hostless="FALSE">
+ <!-- DEVICERX - BT_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000003"/>
+ <!-- BT_PROFILE - BLE -->
+ <graph_kv key="0xB4000000" value="0xB4000003"/>
+ <!-- BT_FORMAT - APTX_AD_QLEA -->
+ <graph_kv key="0xB5000000" value="0xB5000007"/>
+ </keys_and_values>
+ </device>
+ <!-- BT BLE BROADCAST OUT Device -->
+ <device id="PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST">
+ <keys_and_values CodecFormat="CODEC_TYPE_LC3" AbrEnabled="TRUE,FALSE" Hostless="FALSE">
+ <!-- DEVICERX - BT_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000003"/>
+ <!-- BT_PROFILE - BLE -->
+ <graph_kv key="0xB4000000" value="0xB4000003"/>
+ <!-- BT_FORMAT - LC3 -->
+ <graph_kv key="0xB5000000" value="0xB5000005"/>
+ </keys_and_values>
+ <keys_and_values CodecFormat="CODEC_TYPE_APTX_AD_QLEA" AbrEnabled="TRUE,FALSE" Hostless="FALSE">
+ <!-- DEVICERX - BT_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000003"/>
+ <!-- BT_PROFILE - BLE -->
+ <graph_kv key="0xB4000000" value="0xB4000003"/>
+ <!-- BT_FORMAT - APTX_AD_QLEA -->
+ <graph_kv key="0xB5000000" value="0xB5000007"/>
+ </keys_and_values>
+ </device>
+ <!-- BT A2DP IN Device -->
+ <device id="PAL_DEVICE_IN_BLUETOOTH_A2DP">
+ <keys_and_values CodecFormat="CODEC_TYPE_LDAC,CODEC_TYPE_APTX_AD,CODEC_TYPE_AAC" Hostless="TRUE,FALSE">
+ <!-- DEVICETX - BT_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000002"/>
+ </keys_and_values>
+ <keys_and_values CodecFormat="CODEC_TYPE_LC3" Hostless="TRUE">
+ <!-- DEVICETX - BT_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000002"/>
+ <!-- BT_PROFILE - A2DP -->
+ <graph_kv key="0xB4000000" value="0xB4000002"/>
+ <!-- BT_FORMAT - LC3 -->
+ <graph_kv key="0xB5000000" value="0xB5000005"/>
+ </keys_and_values>
+ <keys_and_values CodecFormat="CODEC_TYPE_LC3" Hostless="FALSE">
+ <!-- DEVICETX - BT_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000002"/>
+ <!-- BT_PROFILE - A2DP -->
+ <graph_kv key="0xB4000000" value="0xB4000002"/>
+ <!-- BT_FORMAT - LC3 -->
+ <graph_kv key="0xB5000000" value="0xB5000005"/>
+ </keys_and_values>
+ </device>
+ <!-- BT BLE IN Device -->
+ <device id="PAL_DEVICE_IN_BLUETOOTH_BLE">
+ <keys_and_values CodecFormat="CODEC_TYPE_LC3" Hostless="TRUE">
+ <!-- DEVICETX - BT_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000002"/>
+ <!-- BT_PROFILE - BLE -->
+ <graph_kv key="0xB4000000" value="0xB4000003"/>
+ <!-- BT_FORMAT - LC3 -->
+ <graph_kv key="0xB5000000" value="0xB5000005"/>
+ </keys_and_values>
+ <keys_and_values CodecFormat="CODEC_TYPE_LC3" Hostless="FALSE">
+ <!-- DEVICETX - BT_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000002"/>
+ <!-- BT_PROFILE - BLE -->
+ <graph_kv key="0xB4000000" value="0xB4000003"/>
+ <!-- BT_FORMAT - LC3 -->
+ <graph_kv key="0xB5000000" value="0xB5000005"/>
+ </keys_and_values>
+ <keys_and_values CodecFormat="CODEC_TYPE_APTX_AD_QLEA" Hostless="TRUE">
+ <!-- DEVICETX - BT_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000002"/>
+ <!-- BT_PROFILE - BLE -->
+ <graph_kv key="0xB4000000" value="0xB4000003"/>
+ <!-- BT_FORMAT - APTX_AD_QLEA -->
+ <graph_kv key="0xB5000000" value="0xB5000007"/>
+ </keys_and_values>
+ </device>
+ <!-- BT SCO OUT Device -->
+ <device id="PAL_DEVICE_OUT_BLUETOOTH_SCO">
+ <keys_and_values CodecFormat="CODEC_TYPE_INVALID">
+ <!-- DEVICERX - BT_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000003"/>
+ <!-- BT_PROFILE - SCO -->
+ <graph_kv key="0xB4000000" value="0xB4000001"/>
+ </keys_and_values>
+ <keys_and_values CodecFormat="CODEC_TYPE_APTX_AD_SPEECH">
+ <!-- DEVICERX - BT_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000003"/>
+ <!-- BT_PROFILE - SCO -->
+ <graph_kv key="0xB4000000" value="0xB4000001"/>
+ <!-- BT_FORMAT - SWB -->
+ <graph_kv key="0xB5000000" value="0xB5000004"/>
+ </keys_and_values>
+ <keys_and_values CodecFormat="CODEC_TYPE_LC3">
+ <!-- DEVICERX - BT_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000003"/>
+ <!-- BT_PROFILE - SCO -->
+ <graph_kv key="0xB4000000" value="0xB4000001"/>
+ <!-- BT_FORMAT - LC3 -->
+ <graph_kv key="0xB5000000" value="0xB5000005"/>
+ </keys_and_values>
+ </device>
+ <!-- BT SCO In Headset Device -->
+ <device id="PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET">
+ <keys_and_values CodecFormat="CODEC_TYPE_INVALID">
+ <!-- DEVICETX - BT_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000002"/>
+ <!-- BT_PROFILE - SCO -->
+ <graph_kv key="0xB4000000" value="0xB4000001"/>
+ </keys_and_values>
+ <keys_and_values CodecFormat="CODEC_TYPE_APTX_AD_SPEECH">
+ <!-- DEVICETX - BT_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000002"/>
+ <!-- BT_PROFILE - SCO -->
+ <graph_kv key="0xB4000000" value="0xB4000001"/>
+ <!-- BT_FORMAT - SWB -->
+ <graph_kv key="0xB5000000" value="0xB5000004"/>
+ </keys_and_values>
+ <keys_and_values CodecFormat="CODEC_TYPE_LC3">
+ <!-- DEVICERX - BT_RX -->
+ <graph_kv key="0xA3000000" value="0xA3000002"/>
+ <!-- BT_PROFILE - SCO -->
+ <graph_kv key="0xB4000000" value="0xB4000001"/>
+ <!-- BT_FORMAT - LC3 -->
+ <graph_kv key="0xB5000000" value="0xB5000005"/>
+ </keys_and_values>
+ </device>
+ <!-- Echo Ref Device -->
+ <device id="PAL_DEVICE_IN_ECHO_REF">
+ <keys_and_values>
+ <!-- DEVICETX - ECHO_REF_TX -->
+ <graph_kv key="0xA3000000" value="0xA300000D"/>
+ </keys_and_values>
+ </device>
+ </devices>
+ <devicepps>
+ <!-- OUT Speaker DevicePPs -->
+ <devicepp id="PAL_DEVICE_OUT_SPEAKER">
+ <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_PCM_OFFLOAD,PAL_STREAM_COMPRESSED,PAL_STREAM_LOW_LATENCY,PAL_STREAM_GENERIC,PAL_STREAM_SPATIAL_AUDIO">
+ <!-- DEVICERX - SPEAKER -->
+ <graph_kv key="0xA2000000" value="0xA2000001"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MBDRC -->
+ <graph_kv key="0xAC000000" value="0xAC000002"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_PCM_OFFLOAD,PAL_STREAM_COMPRESSED,PAL_STREAM_GENERIC,PAL_STREAM_LOW_LATENCY,PAL_STREAM_SPATIAL_AUDIO" CustomConfig="mspp">
+ <!-- DEVICERX - SPEAKER -->
+ <graph_kv key="0xA2000000" value="0xA2000001"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MSPP -->
+ <graph_kv key="0xAC000000" value="0xAC00000B"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_RAW">
+ <!-- DEVICERX - SPEAKER -->
+ <graph_kv key="0xA2000000" value="0xA2000001"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_DEFAULT -->
+ <graph_kv key="0xAC000000" value="0xAC000001"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_LOW_LATENCY" CustomConfig="speaker-safe">
+ <!-- DEVICERX - SPEAKER -->
+ <graph_kv key="0xA2000000" value="0xA2000001"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MBDRC -->
+ <graph_kv key="0xAC000000" value="0xAC000002"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOIP_RX">
+ <!-- DEVICERX - SPEAKER -->
+ <graph_kv key="0xA2000000" value="0xA2000001"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_VOIP_MBDRC -->
+ <graph_kv key="0xAC000000" value="0xAC000003"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_LOOPBACK" SubType="PAL_STREAM_LOOPBACK_HFP_RX">
+ <!-- DEVICERX - SPEAKER -->
+ <graph_kv key="0xA2000000" value="0xA2000001"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_HFPSINK -->
+ <graph_kv key="0xAC000000" value="0xAC000004"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
+ <!-- DEVICERX - SPEAKER -->
+ <graph_kv key="0xA2000000" value="0xA2000001"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_DEFAULT -->
+ <graph_kv key="0xAC000000" value="0xAC000005"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="rx-nn-ns,dual-mic-cascade,quad-mic-cascade">
+ <!-- DEVICERX - SPEAKER -->
+ <graph_kv key="0xA2000000" value="0xA2000001"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_DEFAULT RX_NN_NS/CASCADE -->
+ <graph_kv key="0xAC000000" value="0xAC000009"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_ULTRASOUND">
+ <!-- DEVICERX - SPEAKER -->
+ <graph_kv key="0xA2000000" value="0xA2000001"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_ULTRASOUND_GENERATOR -->
+ <graph_kv key="0xAC000000" value="0xAC000006"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- OUT Handset DevicePPs -->
+ <devicepp id="PAL_DEVICE_OUT_HANDSET">
+ <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_PCM_OFFLOAD,PAL_STREAM_COMPRESSED,PAL_STREAM_LOW_LATENCY,PAL_STREAM_GENERIC">
+ <!-- DEVICERX - HANDSET -->
+ <graph_kv key="0xA2000000" value="0xA2000004"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MBDRC -->
+ <graph_kv key="0xAC000000" value="0xAC000002"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_RAW">
+ <!-- DEVICERX - HANDSET -->
+ <graph_kv key="0xA2000000" value="0xA2000004"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_DEFAULT -->
+ <graph_kv key="0xAC000000" value="0xAC000001"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOIP_RX">
+ <!-- DEVICERX - HANDSET -->
+ <graph_kv key="0xA2000000" value="0xA2000004"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_VOIP_MBDRC -->
+ <graph_kv key="0xAC000000" value="0xAC000003"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
+ <!-- DEVICERX - HANDSET -->
+ <graph_kv key="0xA2000000" value="0xA2000004"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_DEFAULT -->
+ <graph_kv key="0xAC000000" value="0xAC000005"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_ULTRASOUND">
+ <!-- DEVICERX - HANDSET -->
+ <graph_kv key="0xA2000000" value="0xA2000004"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_ULTRASOUND_GENERATOR -->
+ <graph_kv key="0xAC000000" value="0xAC000006"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="dual-mic-rve">
+ <!-- DEVICERX - HANDSET -->
+ <graph_kv key="0xA2000000" value="0xA2000004"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_RVE -->
+ <graph_kv key="0xAC000000" value="0xAC000007"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="rx-nn-ns,dual-mic-cascade">
+ <!-- DEVICERX - HANDSET -->
+ <graph_kv key="0xA2000000" value="0xA2000004"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_VOICE RX_NN_NS/CASCADE -->
+ <graph_kv key="0xAC000000" value="0xAC000009"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- OUT Headset and Headphone Digital DevicePPs -->
+ <devicepp id="PAL_DEVICE_OUT_WIRED_HEADSET,PAL_DEVICE_OUT_WIRED_HEADPHONE">
+ <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_PCM_OFFLOAD,PAL_STREAM_COMPRESSED,PAL_STREAM_LOW_LATENCY,PAL_STREAM_GENERIC,PAL_STREAM_SPATIAL_AUDIO">
+ <!-- DEVICERX - HEADPHONES -->
+ <graph_kv key="0xA2000000" value="0xA2000002"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MBDRC -->
+ <graph_kv key="0xAC000000" value="0xAC000002"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_RAW">
+ <!-- DEVICERX - HEADPHONES -->
+ <graph_kv key="0xA2000000" value="0xA2000002"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_DEFAULT -->
+ <graph_kv key="0xAC000000" value="0xAC000001"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOIP_RX">
+ <!-- DEVICERX - HEADPHONES -->
+ <graph_kv key="0xA2000000" value="0xA2000002"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_VOIP_MBDRC -->
+ <graph_kv key="0xAC000000" value="0xAC000003"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
+ <!-- DEVICERX - HEADPHONES -->
+ <graph_kv key="0xA2000000" value="0xA2000002"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_DEFAULT -->
+ <graph_kv key="0xAC000000" value="0xAC000005"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="rx-nn-ns">
+ <!-- DEVICERX - HEADPHONES -->
+ <graph_kv key="0xA2000000" value="0xA2000002"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_DEFAULT RX_NN_NS -->
+ <graph_kv key="0xAC000000" value="0xAC000009"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- OUT Bluetooth A2DP DevicePPs -->
+ <devicepp id="PAL_DEVICE_OUT_BLUETOOTH_A2DP">
+ <keys_and_values StreamType="PAL_STREAM_COMPRESSED,PAL_STREAM_DEEP_BUFFER,PAL_STREAM_LOW_LATENCY,PAL_STREAM_PCM_OFFLOAD,PAL_STREAM_GENERIC,PAL_STREAM_SPATIAL_AUDIO">
+ <!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MBDRC -->
+ <graph_kv key="0xAC000000" value="0xAC000002"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOIP_RX" >
+ <!-- DEVICEPP_RX - DEVICEPP_RX_VOIP_MBDRC -->
+ <graph_kv key="0xAC000000" value="0xAC000003"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- OUT Bluetooth BLE DevicePPs -->
+ <devicepp id="PAL_DEVICE_OUT_BLUETOOTH_BLE">
+ <keys_and_values StreamType="PAL_STREAM_COMPRESSED,PAL_STREAM_DEEP_BUFFER,PAL_STREAM_LOW_LATENCY,PAL_STREAM_PCM_OFFLOAD,PAL_STREAM_SPATIAL_AUDIO,PAL_STREAM_GENERIC">
+ <!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MBDRC -->
+ <graph_kv key="0xAC000000" value="0xAC000002"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOIP_RX" >
+ <!-- DEVICEPP_RX - DEVICEPP_RX_VOIP_MBDRC -->
+ <graph_kv key="0xAC000000" value="0xAC000003"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
+ <!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_DEFAULT -->
+ <graph_kv key="0xAC000000" value="0xAC000005"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- OUT Bluetooth BLE BROADCAST DevicePPs -->
+ <devicepp id="PAL_DEVICE_OUT_BLUETOOTH_BLE_BROADCAST">
+ <keys_and_values StreamType="PAL_STREAM_COMPRESSED,PAL_STREAM_DEEP_BUFFER,PAL_STREAM_LOW_LATENCY,PAL_STREAM_PCM_OFFLOAD,PAL_STREAM_GENERIC">
+ <!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MBDRC -->
+ <graph_kv key="0xAC000000" value="0xAC000002"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- OUT BT SCO DevicePPs -->
+ <devicepp id="PAL_DEVICE_OUT_BLUETOOTH_SCO">
+ <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_PCM_OFFLOAD,PAL_STREAM_COMPRESSED,PAL_STREAM_LOW_LATENCY,PAL_STREAM_GENERIC,PAL_STREAM_SPATIAL_AUDIO">
+ <!-- DEVICERX - BT_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000003"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MBDRC -->
+ <graph_kv key="0xAC000000" value="0xAC000002"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOIP_RX">
+ <!-- DEVICERX - BT_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000003"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_VOIP_MBDRC -->
+ <graph_kv key="0xAC000000" value="0xAC000003"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
+ <!-- DEVICERX - BT_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000003"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_DEFAULT -->
+ <graph_kv key="0xAC000000" value="0xAC000005"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- OUT HDMI and AUX Digital DevicePPs -->
+ <devicepp id="PAL_DEVICE_OUT_HDMI,PAL_DEVICE_OUT_AUX_DIGITAL,PAL_DEVICE_OUT_AUX_DIGITAL_1">
+ <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_PCM_OFFLOAD,PAL_STREAM_COMPRESSED,PAL_STREAM_LOW_LATENCY,PAL_STREAM_GENERIC">
+ <!-- DEVICERX - HDMI_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000006"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MBDRC -->
+ <graph_kv key="0xAC000000" value="0xAC000002"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_RAW">
+ <!-- DEVICERX - HDMI_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000006"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_DEFAULT -->
+ <graph_kv key="0xAC000000" value="0xAC000001"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- OUT USB device and USB Headset DevicePPs -->
+ <devicepp id="PAL_DEVICE_OUT_USB_DEVICE,PAL_DEVICE_OUT_USB_HEADSET">
+ <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_PCM_OFFLOAD,PAL_STREAM_COMPRESSED,PAL_STREAM_LOW_LATENCY,PAL_STREAM_GENERIC,PAL_STREAM_SPATIAL_AUDIO">
+ <!-- DEVICERX - USB_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000005"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_AUDIO_MBDRC -->
+ <graph_kv key="0xAC000000" value="0xAC000002"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_RAW">
+ <!-- DEVICERX - USB_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000005"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_DEFAULT -->
+ <graph_kv key="0xAC000000" value="0xAC000001"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOIP_RX">
+ <!-- DEVICERX - USB_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000005"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_VOIP_MBDRC -->
+ <graph_kv key="0xAC000000" value="0xAC000003"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
+ <!-- DEVICERX - USB_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000005"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_DEFAULT -->
+ <graph_kv key="0xAC000000" value="0xAC000005"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- OUT Device Proxy DevicePPs -->
+ <devicepp id="PAL_DEVICE_OUT_PROXY">
+ <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_PCM_OFFLOAD,PAL_STREAM_COMPRESSED,PAL_STREAM_LOW_LATENCY">
+ <!-- DEVICERX - PROXY_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000007"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_DEFAULT -->
+ <graph_kv key="0xAC000000" value="0xAC000001"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
+ <!-- DEVICERX - PROXY_RX -->
+ <graph_kv key="0xA2000000" value="0xA2000007"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_DEFAULT -->
+ <graph_kv key="0xAC000000" value="0xAC000005"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- OUT Hearing Aid DevicePPs -->
+ <devicepp id="PAL_DEVICE_OUT_HEARING_AID">
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
+ <!-- DEVICERX - PROXY_RX_VOICE -->
+ <graph_kv key="0xA2000000" value="0xA2000008"/>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_VOICE_DEFAULT -->
+ <graph_kv key="0xAC000000" value="0xAC000005"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- IN Handset MIC DevicePPs -->
+ <devicepp id="PAL_DEVICE_IN_HANDSET_MIC">
+ <keys_and_values StreamType="PAL_STREAM_VOICE_RECOGNITION">
+ <!-- DEVICETX - HANDSETMIC -->
+ <graph_kv key="0xA3000000" value="0xA3000004"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_RECOGNITION -->
+ <graph_kv key="0xAD000000" value="0xAD000017"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_COMPRESSED">
+ <!-- DEVICETX - HANDSETMIC -->
+ <graph_kv key="0xA3000000" value="0xA3000004"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_SMECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000002"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_COMPRESSED" CustomConfig="unprocessed-hdr-mic-landscape,unprocessed-hdr-mic-portrait,unprocessed-hdr-mic-inverted-landscape,unprocessed-hdr-mic-inverted-portrait">
+ <!-- DEVICETX - HANDSETMIC -->
+ <graph_kv key="0xA3000000" value="0xA3000004"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_RECORD_ENQORE -->
+ <graph_kv key="0xAD000000" value="0xAD000023"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_COMPRESSED" CustomConfig="dual-mic">
+ <!-- DEVICETX - HANDSETMIC -->
+ <graph_kv key="0xA3000000" value="0xA3000004"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_ENDFIRE -->
+ <graph_kv key="0xAD000000" value="0xAD000003"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_COMPRESSED" CustomConfig="quad-mic">
+ <!-- DEVICETX - HANDSETMIC -->
+ <graph_kv key="0xA3000000" value="0xA3000004"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_PRO -->
+ <graph_kv key="0xAD000000" value="0xAD000004"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
+ <!-- DEVICETX - HANDSETMIC -->
+ <graph_kv key="0xA3000000" value="0xA3000004"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_SMECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000008"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="dual-mic">
+ <!-- DEVICETX - HANDSETMIC -->
+ <graph_kv key="0xA3000000" value="0xA3000004"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_ENDFIRE -->
+ <graph_kv key="0xAD000000" value="0xAD000009"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="quad-mic">
+ <!-- DEVICETX - HANDSETMIC -->
+ <graph_kv key="0xA3000000" value="0xA3000004"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_PRO -->
+ <graph_kv key="0xAD000000" value="0xAD00000A"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="nn-sm">
+ <!-- DEVICETX - HANDSETMIC -->
+ <graph_kv key="0xA3000000" value="0xA3000004"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_NN_SM -->
+ <graph_kv key="0xAD000000" value="0xAD00000F"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="dual-mic-rve">
+ <!-- DEVICETX - HANDSETMIC -->
+ <graph_kv key="0xA3000000" value="0xA3000004"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_ENDFIRE_RVE -->
+ <graph_kv key="0xAD000000" value="0xAD000013"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="dual-mic-cascade">
+ <!-- DEVICETX - HANDSETMIC -->
+ <graph_kv key="0xA3000000" value="0xA3000004"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_ENDFIRE_CASCADE -->
+ <graph_kv key="0xAD000000" value="0xAD00001F"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOIP_TX">
+ <!-- DEVICETX - HANDSETMIC -->
+ <graph_kv key="0xA3000000" value="0xA3000004"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_SMECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000007"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOIP_TX" CustomConfig="dual-mic">
+ <!-- DEVICETX - HANDSETMIC -->
+ <graph_kv key="0xA3000000" value="0xA3000004"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_ENDFIRE -->
+ <graph_kv key="0xAD000000" value="0xAD00000D"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOIP_TX" CustomConfig="quad-mic">
+ <!-- DEVICETX - HANDSETMIC -->
+ <graph_kv key="0xA3000000" value="0xA3000004"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_PRO -->
+ <graph_kv key="0xAD000000" value="0xAD000005"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOIP_TX" CustomConfig="nn-sm">
+ <!-- DEVICETX - HANDSETMIC -->
+ <graph_kv key="0xA3000000" value="0xA3000004"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_NN_SM -->
+ <graph_kv key="0xAD000000" value="0xAD000010"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- IN Speaker MIC DevicePPs -->
+ <devicepp id="PAL_DEVICE_IN_SPEAKER_MIC">
+ <keys_and_values StreamType="PAL_STREAM_VOICE_RECOGNITION">
+ <!-- DEVICETX - SPEAKER_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000001"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_RECOGNITION -->
+ <graph_kv key="0xAD000000" value="0xAD000017"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER, PAL_STREAM_COMPRESSED">
+ <!-- DEVICETX - SPEAKER_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000001"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_SMECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000002"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_COMPRESSED" CustomConfig="dual-mic">
+ <!-- DEVICETX - SPEAKER_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000001"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_ENDFIRE -->
+ <graph_kv key="0xAD000000" value="0xAD000003"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_COMPRESSED" CustomConfig="quad-mic">
+ <!-- DEVICETX - SPEAKER_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000001"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_PRO -->
+ <graph_kv key="0xAD000000" value="0xAD000004"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_COMPRESSED" CustomConfig="unprocessed-hdr-mic-landscape,unprocessed-hdr-mic-portrait,unprocessed-hdr-mic-inverted-landscape,unprocessed-hdr-mic-inverted-portrait">
+ <!-- DEVICETX - SPEAKER_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000001"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_RECORD_ENQORE -->
+ <graph_kv key="0xAD000000" value="0xAD000023"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
+ <!-- DEVICETX - SPEAKER_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000001"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_SMECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000008"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="dual-mic">
+ <!-- DEVICETX - SPEAKER_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000001"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_ENDFIRE -->
+ <graph_kv key="0xAD000000" value="0xAD000009"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="quad-mic">
+ <!-- DEVICETX - SPEAKER_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000001"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_PRO -->
+ <graph_kv key="0xAD000000" value="0xAD00000A"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="nn-sm">
+ <!-- DEVICETX - SPEAKER_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000001"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_NN_SM -->
+ <graph_kv key="0xAD000000" value="0xAD00000F"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="dual-mic-cascade">
+ <!-- DEVICETX - SPEAKER_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000001"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_ENDFIRE_CASCADE -->
+ <graph_kv key="0xAD000000" value="0xAD00001F"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="quad-mic-cascade">
+ <!-- DEVICETX - SPEAKER_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000001"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_PRO_CASCADE -->
+ <graph_kv key="0xAD000000" value="0xAD000020"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOIP_TX">
+ <!-- DEVICETX - SPEAKER_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000001"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_SMECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000007"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOIP_TX" CustomConfig="dual-mic">>
+ <!-- DEVICETX - SPEAKER_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000001"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_ENDFIRE -->
+ <graph_kv key="0xAD000000" value="0xAD00000D"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOIP_TX" CustomConfig="quad-mic">>
+ <!-- DEVICETX - SPEAKER_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000001"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_PRO -->
+ <graph_kv key="0xAD000000" value="0xAD000005"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOIP_TX" CustomConfig="nn-sm">>
+ <!-- DEVICETX - SPEAKER_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000001"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_NN_SM -->
+ <graph_kv key="0xAD000000" value="0xAD000010"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_LOOPBACK" SubType="PAL_STREAM_LOOPBACK_HFP_TX">
+ <!-- DEVICETX - SPEAKER_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000001"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_HFP_SINK_FLUENCE_SMECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000006"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- IN BT_SCO_Headset DevicePPs -->
+ <devicepp id="PAL_DEVICE_IN_BLUETOOTH_SCO_HEADSET">
+ <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_COMPRESSED">
+ <!-- DEVICETX - BT_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000002"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_SMECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000002"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
+ <!-- DEVICETX - BT_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000002"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_SMECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000008"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOIP_TX">
+ <!-- DEVICETX - BT_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000002"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_SMECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000007"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_RECOGNITION">
+ <!-- DEVICETX - BT_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000002"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_RECOGNITION -->
+ <graph_kv key="0xAD000000" value="0xAD000017"/>
+ </keys_and_values>
+ </devicepp>
+ <!--IN Wired headset_IN DevicePPs -->
+ <devicepp id="PAL_DEVICE_IN_WIRED_HEADSET">
+ <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_COMPRESSED">
+ <!-- DEVICETX - HEADPHONE_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000003"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_SMECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000002"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
+ <!-- DEVICETX - HEADPHONE_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000003"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_SMECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000008"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="nn-sm">
+ <!-- DEVICETX - HEADPHONE_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000003"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_NN -->
+ <graph_kv key="0xAD000000" value="0xAD00000F"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOIP_TX">
+ <!-- DEVICETX - HEADPHONE_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000003"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_SMECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000007"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_RECOGNITION">
+ <!-- DEVICETX - HEADPHONE_MIC -->
+ <graph_kv key="0xA3000000" value="0xA3000003"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_RECOGNITION -->
+ <graph_kv key="0xAD000000" value="0xAD000017"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- IN USB device and USB headset DevicePPs -->
+ <devicepp id="PAL_DEVICE_IN_USB_DEVICE,PAL_DEVICE_IN_USB_HEADSET">
+ <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER,PAL_STREAM_COMPRESSED">
+ <!-- DEVICETX - USB_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000005"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_SMECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000002"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
+ <!-- DEVICETX - USB_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000005"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_SMECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000008"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOIP_TX">
+ <!-- DEVICETX - USB_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000005"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_SMECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000007"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_RECOGNITION">
+ <!-- DEVICETX - USB_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000005"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_RECOGNITION -->
+ <graph_kv key="0xAD000000" value="0xAD000017"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- IN Handset_VA_MIC DevicePPs -->
+ <devicepp id="PAL_DEVICE_IN_HANDSET_VA_MIC">
+ <keys_and_values StreamType="PAL_STREAM_ACD,PAL_STREAM_VOICE_UI,PAL_STREAM_SENSOR_PCM_DATA"
+ DevicePPType="SINGLE_MIC_16KHZ_16BIT_FFECNS,DUAL_MIC_16KHZ_16BIT_FFECNS,TRI_MIC_16KHZ_16BIT_FFECNS,QUAD_MIC_16KHZ_16BIT_FFECNS">
+ <!-- DEVICETX - HANDSETMIC_VA -->
+ <graph_kv key="0xA3000000" value="0xA3000006"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_FLUENCE_FFECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000001"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_SENSOR_PCM_DATA"
+ DevicePPType="SINGLE_MIC_16KHZ_16BIT_FFEC">
+ <!-- DEVICETX - HANDSETMIC_VA -->
+ <graph_kv key="0xA3000000" value="0xA3000006"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_FLUENCE_FFEC -->
+ <graph_kv key="0xAD000000" value="0xAD000012"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_UI,PAL_STREAM_SENSOR_PCM_DATA"
+ DevicePPType="SINGLE_MIC_16KHZ_16BIT_FFNS,DUAL_MIC_16KHZ_16BIT_FFNS,TRI_MIC_16KHZ_16BIT_FFNS,QUAD_MIC_16KHZ_16BIT_FFNS">
+ <!-- DEVICETX - HANDSETMIC_VA -->
+ <graph_kv key="0xA3000000" value="0xA3000006"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_FLUENCE_FFNS_AAD -->
+ <graph_kv key="0xAD000000" value="0xAD00001A"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_UI,PAL_STREAM_SENSOR_PCM_DATA"
+ DevicePPType="SINGLE_MIC_16KHZ_16BIT_RAW_LPI,DUAL_MIC_16KHZ_16BIT_RAW_LPI">
+ <!-- DEVICETX - HANDSETMIC_VA -->
+ <graph_kv key="0xA3000000" value="0xA3000006"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_RAW_LPI -->
+ <graph_kv key="0xAD000000" value="0xAD00000C"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_UI"
+ DevicePPType="SINGLE_MIC_16KHZ_16BIT_RAW_LPI_AAD,DUAL_MIC_16KHZ_16BIT_RAW_LPI_AAD">
+ <!-- DEVICETX - HANDSETMIC_VA -->
+ <graph_kv key="0xA3000000" value="0xA3000006"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_RAW_LPI_AAD -->
+ <graph_kv key="0xAD000000" value="0xAD00001B"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_UI"
+ DevicePPType="SINGLE_MIC_16KHZ_16BIT_RAW_NLPI,DUAL_MIC_16KHZ_16BIT_RAW_NLPI">
+ <!-- DEVICETX - HANDSETMIC_VA -->
+ <graph_kv key="0xA3000000" value="0xA3000006"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_RAW_NLPI -->
+ <graph_kv key="0xAD000000" value="0xAD00000E"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_ACD"
+ DevicePPType="SINGLE_MIC_16KHZ_16BIT_LPI">
+ <!-- DEVICETX - HANDSETMIC_VA -->
+ <graph_kv key="0xA3000000" value="0xA3000006"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_AAD -->
+ <graph_kv key="0xAD000000" value="0xAD000019"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_UI"
+ DevicePPType="SINGLE_MIC_16KHZ_16BIT_CUSTOM_NS,DUAL_MIC_16KHZ_16BIT_CUSTOM_NS,TRI_MIC_16KHZ_16BIT_CUSTOM_NS,QUAD_MIC_16KHZ_16BIT_CUSTOM_NS">
+ <!-- DEVICETX - HANDSETMIC_VA -->
+ <graph_kv key="0xA3000000" value="0xA3000006"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_CUSTOM_NS -->
+ <graph_kv key="0xAD000000" value="0xAD000026"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_UI"
+ DevicePPType="SINGLE_MIC_16KHZ_16BIT_CUSTOM_ECNS,DUAL_MIC_16KHZ_16BIT_CUSTOM_ECNS,TRI_MIC_16KHZ_16BIT_CUSTOM_ECNS,QUAD_MIC_16KHZ_16BIT_CUSTOM_ECNS">
+ <!-- DEVICETX - HANDSETMIC_VA -->
+ <graph_kv key="0xA3000000" value="0xA3000006"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_CUSTOM_ECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000025"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- IN Headset VA MIC DevicePPs -->
+ <devicepp id="PAL_DEVICE_IN_HEADSET_VA_MIC">
+ <keys_and_values StreamType="PAL_STREAM_ACD,PAL_STREAM_VOICE_UI,PAL_STREAM_SENSOR_PCM_DATA"
+ DevicePPType="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFECNS">
+ <!-- DEVICETX - HEADSETMIC_VA -->
+ <graph_kv key="0xA3000000" value="0xA3000007"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_FLUENCE_FFECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000001"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_SENSOR_PCM_DATA"
+ DevicePPType="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFEC">
+ <!-- DEVICETX - HEADSETMIC_VA -->
+ <graph_kv key="0xA3000000" value="0xA3000007"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_FLUENCE_FFEC -->
+ <graph_kv key="0xAD000000" value="0xAD000012"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_UI,PAL_STREAM_SENSOR_PCM_DATA"
+ DevicePPType="SINGLE_MIC_16KHZ_16BIT_HEADSET_FFNS">
+ <!-- DEVICETX - HEADSETMIC_VA -->
+ <graph_kv key="0xA3000000" value="0xA3000007"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_FLUENCE_FFNS_AAD -->
+ <graph_kv key="0xAD000000" value="0xAD00001A"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_UI,PAL_STREAM_SENSOR_PCM_DATA"
+ DevicePPType="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI">
+ <!-- DEVICETX - HEADSETMIC_VA -->
+ <graph_kv key="0xA3000000" value="0xA3000007"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_RAW_LPI -->
+ <graph_kv key="0xAD000000" value="0xAD00000C"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_UI"
+ DevicePPType="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_LPI_AAD">
+ <!-- DEVICETX - HEADSETMIC_VA -->
+ <graph_kv key="0xA3000000" value="0xA3000007"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_RAW_LPI_AAD -->
+ <graph_kv key="0xAD000000" value="0xAD00001B"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_UI"
+ DevicePPType="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI">
+ <!-- DEVICETX - HEADSETMIC_VA -->
+ <graph_kv key="0xA3000000" value="0xA3000007"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_RAW_NLPI -->
+ <graph_kv key="0xAD000000" value="0xAD00000E"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_ACD"
+ DevicePPType="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI">
+ <!-- DEVICETX - HEADSETMIC_VA -->
+ <graph_kv key="0xA3000000" value="0xA3000007"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_AAD -->
+ <graph_kv key="0xAD000000" value="0xAD000019"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_UI"
+ DevicePPType="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_ECNS">
+ <!-- DEVICETX - HEADSETMIC_VA -->
+ <graph_kv key="0xA3000000" value="0xA3000007"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_CUSTOM_ECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000025"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOICE_UI"
+ DevicePPType="SINGLE_MIC_16KHZ_16BIT_HEADSET_CUSTOM_NS">
+ <!-- DEVICETX - HEADSETMIC_VA -->
+ <graph_kv key="0xA3000000" value="0xA3000007"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_CUSTOM_NS -->
+ <graph_kv key="0xAD000000" value="0xAD000026"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- IN BT A2DP DevicePPs -->
+ <devicepp id="PAL_DEVICE_IN_BLUETOOTH_A2DP">
+ <keys_and_values StreamType="PAL_STREAM_VOIP_TX" >
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_SMECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000007"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- IN BT BLE DevicePPs -->
+ <devicepp id="PAL_DEVICE_IN_BLUETOOTH_BLE">
+ <keys_and_values StreamType="PAL_STREAM_VOICE_CALL">
+ <!-- DEVICETX - BT_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000002"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_FLUENCE_SMECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000008"/>
+ </keys_and_values>
+ <keys_and_values StreamType="PAL_STREAM_VOIP_TX">
+ <!-- DEVICETX - BT_TX -->
+ <graph_kv key="0xA3000000" value="0xA3000002"/>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_SMECNS -->
+ <graph_kv key="0xAD000000" value="0xAD000007"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- IN Ultrasound DevicePPs -->
+ <devicepp id="PAL_DEVICE_IN_ULTRASOUND_MIC">
+ <keys_and_values>
+ <!-- DEVICEPP_TX - DEVICEPP_TX_ULTRASOUND_DETECTOR -->
+ <graph_kv key="0xAD000000" value="0xAD000011"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- OUT Ultrasound DevicePPs -->
+ <devicepp id="PAL_DEVICE_OUT_ULTRASOUND">
+ <keys_and_values>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_ULTRASOUND_GENERATOR -->
+ <graph_kv key="0xAC000000" value="0xAC000006"/>
+ </keys_and_values>
+ </devicepp>
+ <!-- OUT Ultrasound DevicePPs -->
+ <devicepp id="PAL_DEVICE_OUT_ULTRASOUND_DEDICATED">
+ <keys_and_values>
+ <!-- DEVICEPP_RX - DEVICEPP_RX_ULTRASOUND_GENERATOR -->
+ <graph_kv key="0xAC000000" value="0xAC000006"/>
+ </keys_and_values>
+ </devicepp>
+ </devicepps>
+</graph_key_value_pair_info>
diff --git a/resource_manager/inc/ResourceManager.h b/resource_manager/inc/ResourceManager.h
index 581c217..314adcf 100644
--- a/resource_manager/inc/ResourceManager.h
+++ b/resource_manager/inc/ResourceManager.h
@@ -196,8 +196,6 @@
typedef enum {
ST_PAUSE = 1,
ST_RESUME,
- ST_CONCURRENT_PAUSE,
- ST_CONCURRENT_RESUME,
ST_ENABLE_LPI,
ST_HANDLE_CONCURRENT_STREAM,
ST_HANDLE_CONNECT_DEVICE,
diff --git a/resource_manager/src/ResourceManager.cpp b/resource_manager/src/ResourceManager.cpp
index cad784e..cd27f5d 100644
--- a/resource_manager/src/ResourceManager.cpp
+++ b/resource_manager/src/ResourceManager.cpp
@@ -1438,7 +1438,8 @@
strstr(snd_card_name, "anorak") ||
strstr(snd_card_name, "diwali") ||
strstr(snd_card_name, "bengal") ||
- strstr(snd_card_name, "monaco")) {
+ strstr(snd_card_name, "monaco") ||
+ strstr(snd_card_name, "crow")) {
PAL_VERBOSE(LOG_TAG, "Found Codec sound card");
snd_card_found = true;
audio_hw_mixer = tmp_mixer;
@@ -4856,20 +4857,6 @@
PAL_ERR(LOG_TAG, "Failed to do resume stream");
}
break;
- case ST_CONCURRENT_PAUSE:
- if (str != (Stream *)data) {
- status = str->ConcurrentPause();
- if (status)
- PAL_ERR(LOG_TAG, "Failed to pause stream");
- }
- break;
- case ST_CONCURRENT_RESUME:
- if (str != (Stream *)data) {
- status = str->ConcurrentResume();
- if (status)
- PAL_ERR(LOG_TAG, "Failed to do resume stream");
- }
- break;
case ST_ENABLE_LPI: {
bool active = *(bool *)data;
status = str->EnableLPI(!active);
@@ -4992,16 +4979,16 @@
return;
if (active) {
- ++(*local_dis_count);
- if (*local_dis_count == 1) {
+ if (++(*local_dis_count) == 1) {
// pause all sva/acd streams
- HandleDetectionStreamAction(st_type, ST_CONCURRENT_PAUSE, NULL);
+ HandleDetectionStreamAction(st_type, ST_PAUSE, NULL);
}
} else {
- --(*local_dis_count);
- if (*local_dis_count == 0) {
+ if ((*local_dis_count) < 0) {
+ (*local_dis_count) = 0;
+ } else if ((*local_dis_count) > 0 && --(*local_dis_count) == 0) {
// resume all sva/acd streams
- HandleDetectionStreamAction(st_type, ST_CONCURRENT_RESUME, NULL);
+ HandleDetectionStreamAction(st_type, ST_RESUME, NULL);
}
}
}
diff --git a/session/src/PayloadBuilder.cpp b/session/src/PayloadBuilder.cpp
index 4631435..f995e99 100644
--- a/session/src/PayloadBuilder.cpp
+++ b/session/src/PayloadBuilder.cpp
@@ -2591,8 +2591,10 @@
goto free_sattr;
}
- filled_selector_pairs.push_back(std::make_pair(selector_type,
- s->getStreamSelector()));
+ if (s->getStreamSelector().length() != 0)
+ filled_selector_pairs.push_back(std::make_pair(selector_type,
+ s->getStreamSelector()));
+
PAL_INFO(LOG_TAG, "VUI module type:%s", s->getStreamSelector().c_str());
break;
case ACD_MODULE_TYPE_SEL:
@@ -2601,8 +2603,10 @@
goto free_sattr;
}
- filled_selector_pairs.push_back(std::make_pair(selector_type,
- s->getStreamSelector()));
+ if (s->getStreamSelector().length() != 0)
+ filled_selector_pairs.push_back(std::make_pair(selector_type,
+ s->getStreamSelector()));
+
PAL_INFO(LOG_TAG, "ACD module type:%s", s->getStreamSelector().c_str());
break;
case DEVICEPP_TYPE_SEL:
@@ -2611,8 +2615,10 @@
goto free_sattr;
}
- filled_selector_pairs.push_back(std::make_pair(selector_type,
- s->getDevicePPSelector()));
+ if (s->getDevicePPSelector().length() != 0)
+ filled_selector_pairs.push_back(std::make_pair(selector_type,
+ s->getDevicePPSelector()));
+
PAL_INFO(LOG_TAG, "devicePP_type:%s", s->getDevicePPSelector().c_str());
break;
case STREAM_TYPE_SEL:
diff --git a/session/src/SessionAlsaPcm.cpp b/session/src/SessionAlsaPcm.cpp
index 799740c..5850b01 100644
--- a/session/src/SessionAlsaPcm.cpp
+++ b/session/src/SessionAlsaPcm.cpp
@@ -1255,47 +1255,36 @@
PAL_INFO(LOG_TAG, "eventPayload is NULL");
}
} else if (sAttr.type == PAL_STREAM_ULTRA_LOW_LATENCY) {
- status = s->getAssociatedDevices(associatedDevices);
- for (int i = 0; i < associatedDevices.size(); i++) {
- status = associatedDevices[i]->getDeviceAttributes(&dAttr);
+ status = SessionAlsaUtils::getModuleInstanceId(mixer, pcmDevIds.at(0),
+ txAifBackEnds[0].second.data(),
+ TAG_STREAM_MFC_SR, &miid);
+ if (status != 0) {
+ PAL_ERR(LOG_TAG, "getModuleInstanceId failed\n");
+ goto exit;
+ }
+ PAL_DBG(LOG_TAG, "ULL record, miid : %x id = %d\n", miid, pcmDevIds.at(0));
+ if (isPalPCMFormat(sAttr.in_media_config.aud_fmt_id))
+ streamData.bitWidth = ResourceManager::palFormatToBitwidthLookup(sAttr.in_media_config.aud_fmt_id);
+ else
+ streamData.bitWidth = sAttr.in_media_config.bit_width;
+ streamData.sampleRate = sAttr.in_media_config.sample_rate;
+ streamData.numChannel = sAttr.in_media_config.ch_info.channels;
+ streamData.ch_info = nullptr;
+ builder->payloadMFCConfig(&payload, &payloadSize, miid, &streamData);
+ if (payloadSize && payload) {
+ status = updateCustomPayload(payload, payloadSize);
+ freeCustomPayload(&payload, &payloadSize);
if (0 != status) {
- PAL_ERR(LOG_TAG, "get Device Attributes Failed\n");
- continue;
+ PAL_ERR(LOG_TAG, "updateCustomPayload Failed\n");
+ goto exit;
}
- if ((dAttr.id == PAL_DEVICE_IN_USB_DEVICE) ||
- (dAttr.id == PAL_DEVICE_IN_USB_HEADSET)) {
- status = SessionAlsaUtils::getModuleInstanceId(mixer, pcmDevIds.at(0),
- txAifBackEnds[0].second.data(),
- TAG_STREAM_MFC_SR, &miid);
- if (status != 0) {
- PAL_ERR(LOG_TAG, "getModuleInstanceId failed\n");
- continue;
- }
- PAL_DBG(LOG_TAG, "ULL record, miid : %x id = %d\n", miid, pcmDevIds.at(0));
- if (isPalPCMFormat(sAttr.in_media_config.aud_fmt_id))
- streamData.bitWidth = ResourceManager::palFormatToBitwidthLookup(sAttr.in_media_config.aud_fmt_id);
- else
- streamData.bitWidth = sAttr.in_media_config.bit_width;
- streamData.sampleRate = sAttr.in_media_config.sample_rate;
- streamData.numChannel = sAttr.in_media_config.ch_info.channels;
- streamData.ch_info = nullptr;
- builder->payloadMFCConfig(&payload, &payloadSize, miid, &streamData);
- if (payloadSize && payload) {
- status = updateCustomPayload(payload, payloadSize);
- freeCustomPayload(&payload, &payloadSize);
- if (0 != status) {
- PAL_ERR(LOG_TAG, "updateCustomPayload Failed\n");
- continue;
- }
- }
- status = SessionAlsaUtils::setMixerParameter(mixer, pcmDevIds.at(0),
+ }
+ status = SessionAlsaUtils::setMixerParameter(mixer, pcmDevIds.at(0),
customPayload, customPayloadSize);
- freeCustomPayload();
- if (status != 0) {
- PAL_ERR(LOG_TAG, "setMixerParameter failed");
- continue;
- }
- }
+ freeCustomPayload();
+ if (status != 0) {
+ PAL_ERR(LOG_TAG, "setMixerParameter failed");
+ goto exit;
}
}
if (ResourceManager::isLpiLoggingEnabled()) {
diff --git a/session/src/SessionAlsaUtils.cpp b/session/src/SessionAlsaUtils.cpp
old mode 100755
new mode 100644
index 329eefb..f1e1ab8
--- a/session/src/SessionAlsaUtils.cpp
+++ b/session/src/SessionAlsaUtils.cpp
@@ -2085,6 +2085,7 @@
std::shared_ptr<Device> dev = nullptr;
int sub = 1;
uint32_t i;
+ int devCount = 0;
switch (streamType) {
case PAL_STREAM_COMPRESSED:
@@ -2162,7 +2163,25 @@
goto freeMetaData;
}
- if (dev->getDeviceCount() > 1) {
+ devCount = dev->getDeviceCount();
+
+ // Do not clear device metadata for A2DP device if SCO device is active
+ if ((devCount == 1) && rm->isBtDevice(dAttr.id) && !rm->isBtScoDevice(dAttr.id)) {
+ dev = nullptr;
+ struct pal_device scoDAttr;
+ scoDAttr.id = PAL_DEVICE_OUT_BLUETOOTH_SCO;
+
+ dev = Device::getInstance(&scoDAttr, rm);
+ if (dev == 0) {
+ PAL_ERR(LOG_TAG, "device_id[%d] Instance query failed", dAttr.id );
+ status = -EINVAL;
+ goto freeMetaData;
+ }
+
+ devCount += dev->getDeviceCount();
+ }
+
+ if (devCount > 1) {
PAL_INFO(LOG_TAG, "No need to free device metadata since active streams present on device");
} else {
mixer_ctl_set_array(beMetaDataMixerCtrl, (void*)deviceMetaData.buf,
@@ -2244,6 +2263,9 @@
uint8_t* payload = NULL;
size_t payloadSize = 0;
int sub = 1;
+ uint32_t miid;
+ struct sessionToPayloadParam streamData = {};
+ PayloadBuilder* builder = new PayloadBuilder();
std::shared_ptr<ResourceManager> rm = ResourceManager::getInstance();
status = rmHandle->getVirtualAudioMixer(&mixerHandle);
@@ -2324,6 +2346,35 @@
goto exit;
}
}
+ if (sAttr.direction == PAL_AUDIO_INPUT && streamType == PAL_STREAM_ULTRA_LOW_LATENCY) {
+ status = SessionAlsaUtils::getModuleInstanceId(mixerHandle, pcmDevIds.at(0),
+ aifBackEndsToConnect[0].second.data(),
+ TAG_STREAM_MFC_SR, &miid);
+ if (status != 0) {
+ PAL_ERR(LOG_TAG, "getModuleInstanceId failed\n");
+ goto exit;
+ }
+ PAL_DBG(LOG_TAG, "ULL record, miid : %x id = %d\n", miid, pcmDevIds.at(0));
+ if (isPalPCMFormat(sAttr.in_media_config.aud_fmt_id))
+ streamData.bitWidth = ResourceManager::palFormatToBitwidthLookup(
+ sAttr.in_media_config.aud_fmt_id);
+ else
+ streamData.bitWidth = sAttr.in_media_config.bit_width;
+ streamData.sampleRate = sAttr.in_media_config.sample_rate;
+ streamData.numChannel = sAttr.in_media_config.ch_info.channels;
+ streamData.ch_info = nullptr;
+ builder->payloadMFCConfig(&payload, &payloadSize, miid, &streamData);
+ if (payloadSize && payload) {
+ sess->getCustomPayload(&payload, &payloadSize);
+ }
+ status = SessionAlsaUtils::setMixerParameter(mixerHandle, pcmDevIds.at(0),
+ payload, payloadSize);
+ sess->freeCustomPayload();
+ if (status != 0) {
+ PAL_ERR(LOG_TAG, "setMixerParameter failed");
+ goto exit;
+ }
+ }
connectCtrl = mixer_get_ctl_by_name(mixerHandle, connectCtrlName.str().data());
if (!connectCtrl) {
@@ -2334,6 +2385,10 @@
status = mixer_ctl_set_enum_by_string(connectCtrl, aifBackEndsToConnect[0].second.data());
exit:
+ if(builder) {
+ delete builder;
+ builder = NULL;
+ }
return status;
}
diff --git a/stream/inc/Stream.h b/stream/inc/Stream.h
index dafe8d5..6385a0e 100644
--- a/stream/inc/Stream.h
+++ b/stream/inc/Stream.h
@@ -306,8 +306,6 @@
/* Detection stream related APIs */
virtual int32_t Resume() { return 0; }
virtual int32_t Pause() { return 0; }
- virtual int32_t ConcurrentPause() { return 0; }
- virtual int32_t ConcurrentResume() { return 0; }
virtual int32_t EnableLPI(bool is_enable) { return 0; }
virtual int32_t HandleConcurrentStream(bool active) { return 0; }
virtual int32_t DisconnectDevice(pal_device_id_t device_id) { return 0; }
diff --git a/stream/inc/StreamACD.h b/stream/inc/StreamACD.h
index 4ac9d39..d4b9e2b 100644
--- a/stream/inc/StreamACD.h
+++ b/stream/inc/StreamACD.h
@@ -130,8 +130,6 @@
int32_t Resume() override;
int32_t Pause() override;
- int32_t ConcurrentResume() { return Resume(); }
- int32_t ConcurrentPause() { return Pause(); }
int32_t HandleConcurrentStream(bool active) override;
int32_t EnableLPI(bool is_enable) override;
diff --git a/stream/inc/StreamSensorPCMData.h b/stream/inc/StreamSensorPCMData.h
index b50c236..9080d8b 100644
--- a/stream/inc/StreamSensorPCMData.h
+++ b/stream/inc/StreamSensorPCMData.h
@@ -57,8 +57,6 @@
int32_t close() override;
int32_t Resume() override;
int32_t Pause() override;
- int32_t ConcurrentResume() { return Resume(); }
- int32_t ConcurrentPause() { return Pause(); }
int32_t EnableLPI(bool is_enable) override;
int32_t HandleConcurrentStream(bool active) override;
int32_t DisconnectDevice(pal_device_id_t device_id) override;
diff --git a/stream/inc/StreamSoundTrigger.h b/stream/inc/StreamSoundTrigger.h
index 31427ad..035c1d7 100644
--- a/stream/inc/StreamSoundTrigger.h
+++ b/stream/inc/StreamSoundTrigger.h
@@ -160,8 +160,6 @@
int32_t ConnectDevice(pal_device_id_t device_id) override;
int32_t Resume() override;
int32_t Pause() override;
- int32_t ConcurrentResume() override;
- int32_t ConcurrentPause() override;
int32_t GetCurrentStateId();
int32_t HandleConcurrentStream(bool active);
int32_t EnableLPI(bool is_enable);
@@ -588,7 +586,5 @@
// flag to indicate whether we should update common capture profile in RM
bool common_cp_update_disable_;
bool second_stage_processing_;
- // flag to indicate whether current start/stop is called by client
- bool is_client_start_stop_;
};
#endif // STREAMSOUNDTRIGGER_H_
diff --git a/stream/src/StreamInCall.cpp b/stream/src/StreamInCall.cpp
index 13ecf01..3052d22 100644
--- a/stream/src/StreamInCall.cpp
+++ b/stream/src/StreamInCall.cpp
@@ -949,7 +949,9 @@
PAL_ERR(LOG_TAG, "stream open failed. status %d", status);
goto exit;
}
+ rm->unlockActiveStream();
status = start();
+ rm->lockActiveStream();
if (0 != status) {
PAL_ERR(LOG_TAG, "stream start failed. status %d", status);
goto exit;
@@ -968,7 +970,9 @@
PAL_ERR(LOG_TAG, "stream open failed. status %d", status);
goto exit;
}
+ rm->unlockActiveStream();
status = start();
+ rm->lockActiveStream();
if (0 != status) {
PAL_ERR(LOG_TAG, "stream start failed. status %d", status);
goto exit;
diff --git a/stream/src/StreamSensorPCMData.cpp b/stream/src/StreamSensorPCMData.cpp
index a760b1e..3332ec5 100644
--- a/stream/src/StreamSensorPCMData.cpp
+++ b/stream/src/StreamSensorPCMData.cpp
@@ -196,17 +196,17 @@
goto exit;
}
+ status = device->open();
+ if (0 != status) {
+ PAL_ERR(LOG_TAG, "Error: device [%d] open failed with status %d",
+ device->getSndDeviceId(), status);
+ goto exit;
+ }
+
if (currentState != STREAM_PAUSED) {
mDevices.clear();
mDevices.push_back(device);
- status = device->open();
- if (0 != status) {
- PAL_ERR(LOG_TAG, "Error: device [%d] open failed with status %d",
- device->getSndDeviceId(), status);
- goto exit;
- }
-
status = session->open(this);
if (0 != status) {
PAL_ERR(LOG_TAG, "Error:session open failed with status %d", status);
diff --git a/stream/src/StreamSoundTrigger.cpp b/stream/src/StreamSoundTrigger.cpp
index ca9e1f8..afad0bb 100644
--- a/stream/src/StreamSoundTrigger.cpp
+++ b/stream/src/StreamSoundTrigger.cpp
@@ -118,7 +118,6 @@
mutex_unlocked_after_cb_ = false;
common_cp_update_disable_ = false;
second_stage_processing_ = false;
- is_client_start_stop_ = false;
gsl_engine_model_ = nullptr;
gsl_conf_levels_ = nullptr;
gsl_engine_ = nullptr;
@@ -330,16 +329,27 @@
int32_t status = 0;
stream_state_t prev_state;
+ /*
+ * Guard with mActiveStreamMutex to avoid concurrent
+ * RX stream getting released during EC enable
+ */
+ rm->lockActiveStream();
PAL_DBG(LOG_TAG, "Enter, stream direction %d", mStreamAttr->direction);
std::lock_guard<std::mutex> lck(mStreamMutex);
+ // cache current state after mutex locked
+ prev_state = currentState;
+ currentState = STREAM_STARTED;
- is_client_start_stop_ = true;
rejection_notified_ = false;
std::shared_ptr<StEventConfig> ev_cfg(
new StStartRecognitionEventConfig(false));
status = cur_state_->ProcessEvent(ev_cfg);
+ // restore cached state if start fails
+ if (status)
+ currentState = prev_state;
+ rm->unlockActiveStream();
PAL_DBG(LOG_TAG, "Exit, status %d", status);
return status;
}
@@ -347,15 +357,21 @@
int32_t StreamSoundTrigger::stop() {
int32_t status = 0;
+ /*
+ * Guard with mActiveStreamMutex to avoid concurrent
+ * RX stream getting released during EC disable
+ */
+ rm->lockActiveStream();
PAL_DBG(LOG_TAG, "Enter, stream direction %d", mStreamAttr->direction);
std::lock_guard<std::mutex> lck(mStreamMutex);
+ currentState = STREAM_STOPPED;
- is_client_start_stop_ = true;
std::shared_ptr<StEventConfig> ev_cfg(
new StStopRecognitionEventConfig(false));
status = cur_state_->ProcessEvent(ev_cfg);
+ rm->unlockActiveStream();
PAL_DBG(LOG_TAG, "Exit, status %d", status);
return status;
}
@@ -742,40 +758,6 @@
return status;
}
-int32_t StreamSoundTrigger::ConcurrentResume() {
- int32_t status = 0;
-
- PAL_DBG(LOG_TAG, "Enter");
- std::lock_guard<std::mutex> lck(mStreamMutex);
- std::shared_ptr<StEventConfig> ev_cfg(new StResumeEventConfig());
- common_cp_update_disable_ = true;
- status = cur_state_->ProcessEvent(ev_cfg);
- common_cp_update_disable_ = false;
- if (status) {
- PAL_ERR(LOG_TAG, "Resume failed");
- }
- PAL_DBG(LOG_TAG, "Exit, status %d", status);
-
- return status;
-}
-
-int32_t StreamSoundTrigger::ConcurrentPause() {
- int32_t status = 0;
-
- PAL_DBG(LOG_TAG, "Enter");
- std::lock_guard<std::mutex> lck(mStreamMutex);
- std::shared_ptr<StEventConfig> ev_cfg(new StPauseEventConfig());
- common_cp_update_disable_ = true;
- status = cur_state_->ProcessEvent(ev_cfg);
- common_cp_update_disable_ = false;
- if (status) {
- PAL_ERR(LOG_TAG, "Pause failed");
- }
- PAL_DBG(LOG_TAG, "Exit, status %d", status);
-
- return status;
-}
-
int32_t StreamSoundTrigger::isSampleRateSupported(uint32_t sampleRate) {
int32_t rc = 0;
@@ -2105,16 +2087,6 @@
if (st_stream_.paused_) {
break; // Concurrency is active, start later.
}
- stream_state_t prev_state;
- bool is_client_start = false;
-
- // update flag to local variable as we may unlock stream mutex below
- if (ev_cfg->id_ == ST_EV_START_RECOGNITION &&
- st_stream_.is_client_start_stop_) {
- is_client_start = st_stream_.is_client_start_stop_;
- st_stream_.is_client_start_stop_ = false;
- }
-
StStartRecognitionEventConfigData *data =
(StStartRecognitionEventConfigData *)ev_cfg->data_.get();
if (!st_stream_.rec_config_) {
@@ -2123,23 +2095,6 @@
break;
}
- if (!st_stream_.common_cp_update_disable_) {
- /*
- * common_cp_update_disable_ is true for following cases
- * 1. Concurrency stream handling
- * 2. SSR Up/Down handling
- * in these cases active stream mutex is already locked.
- */
- st_stream_.mStreamMutex.unlock();
- st_stream_.rm->lockActiveStream();
- st_stream_.mStreamMutex.lock();
- }
- if (is_client_start) {
- // cache current state after mutex locked
- prev_state = st_stream_.currentState;
- st_stream_.currentState = STREAM_STARTED;
- }
-
/* Update cap dev based on mode and configuration and start it */
struct pal_device dattr;
bool backend_update = false;
@@ -2177,8 +2132,6 @@
cap_prof = st_stream_.rm->GetSoundTriggerCaptureProfile();
if (!cap_prof) {
PAL_ERR(LOG_TAG, "Invalid capture profile");
- if (!st_stream_.common_cp_update_disable_)
- st_stream_.rm->unlockActiveStream();
goto err_exit;
}
@@ -2192,9 +2145,7 @@
status = dev->open();
if (0 != status) {
PAL_ERR(LOG_TAG, "Device open failed, status %d", status);
- if (!st_stream_.common_cp_update_disable_)
- st_stream_.rm->unlockActiveStream();
- goto err_exit;
+ break;
}
st_stream_.device_opened_ = true;
}
@@ -2207,21 +2158,11 @@
PAL_ERR(LOG_TAG, "Device start failed, status %d", status);
dev->close();
st_stream_.device_opened_ = false;
- if (!st_stream_.common_cp_update_disable_)
- st_stream_.rm->unlockActiveStream();
- goto err_exit;
- } else {
+ break;
+ } else if (!rm->isDeviceActive_l(dev, &st_stream_)) {
st_stream_.rm->registerDevice(dev, &st_stream_);
- if (!st_stream_.common_cp_update_disable_)
- st_stream_.rm->unlockActiveStream();
}
PAL_DBG(LOG_TAG, "device started");
- } else {
- status = -EINVAL;
- PAL_ERR(LOG_TAG, "no device attached");
- if (!st_stream_.common_cp_update_disable_)
- st_stream_.rm->unlockActiveStream();
- goto err_exit;
}
/* Start the engines */
@@ -2231,7 +2172,7 @@
if (0 != status) {
PAL_ERR(LOG_TAG, "Start st engine %d failed, status %d",
eng->GetEngineId(), status);
- goto err_start_exit;
+ goto err_exit;
} else {
tmp_engines.push_back(eng->GetEngine());
}
@@ -2243,32 +2184,17 @@
TransitTo(ST_STATE_ACTIVE);
break;
- err_start_exit:
+ err_exit:
for (auto& eng: tmp_engines)
eng->StopRecognition(&st_stream_);
if (st_stream_.mDevices.size() > 0) {
- if (!st_stream_.common_cp_update_disable_) {
- st_stream_.mStreamMutex.unlock();
- st_stream_.rm->lockActiveStream();
- st_stream_.mStreamMutex.lock();
- st_stream_.rm->deregisterDevice(
- st_stream_.mDevices[0], &st_stream_);
- st_stream_.rm->unlockActiveStream();
- } else {
- st_stream_.rm->deregisterDevice(
- st_stream_.mDevices[0], &st_stream_);
- }
+ if (rm->isDeviceActive_l(st_stream_.mDevices[0], &st_stream_))
+ st_stream_.rm->deregisterDevice(st_stream_.mDevices[0], &st_stream_);
st_stream_.mDevices[0]->stop();
st_stream_.mDevices[0]->close();
st_stream_.device_opened_ = false;
}
- err_exit:
- if (is_client_start) {
- // restore cached state if start fails
- st_stream_.currentState = prev_state;
- PAL_INFO(LOG_TAG, "Current state %d", st_stream_.currentState);
- }
break;
}
@@ -2382,7 +2308,8 @@
dev->close();
st_stream_.device_opened_ = false;
} else if (st_stream_.isActive() && !st_stream_.paused_) {
- st_stream_.rm->registerDevice(dev, &st_stream_);
+ if (!rm->isDeviceActive_l(dev, &st_stream_))
+ st_stream_.rm->registerDevice(dev, &st_stream_);
if (st_stream_.second_stage_processing_) {
/* Start the engines */
for (auto& eng: st_stream_.engines_) {
@@ -2559,23 +2486,6 @@
case ST_EV_STOP_RECOGNITION: {
// Do not update capture profile when pausing stream
bool backend_update = false;
- bool is_client_stop = false;
-
- if (ev_cfg->id_ == ST_EV_STOP_RECOGNITION &&
- st_stream_.is_client_start_stop_) {
- is_client_stop = st_stream_.is_client_start_stop_;
- st_stream_.is_client_start_stop_ = false;
- }
-
- if (!st_stream_.common_cp_update_disable_) {
- st_stream_.mStreamMutex.unlock();
- st_stream_.rm->lockActiveStream();
- st_stream_.mStreamMutex.lock();
- }
-
- if (is_client_stop)
- st_stream_.currentState = STREAM_STOPPED;
-
if (!st_stream_.common_cp_update_disable_ &&
(ev_cfg->id_ == ST_EV_STOP_RECOGNITION ||
ev_cfg->id_ == ST_EV_UNLOAD_SOUND_MODEL)) {
@@ -2593,10 +2503,9 @@
auto& dev = st_stream_.mDevices[0];
PAL_VERBOSE(LOG_TAG, "Deregister device %d-%s", dev->getSndDeviceId(),
dev->getPALDeviceName().c_str());
- st_stream_.rm->deregisterDevice(dev, &st_stream_);
+ if (rm->isDeviceActive_l(dev, &st_stream_))
+ st_stream_.rm->deregisterDevice(dev, &st_stream_);
}
- if (!st_stream_.common_cp_update_disable_)
- st_stream_.rm->unlockActiveStream();
for (auto& eng: st_stream_.engines_) {
PAL_VERBOSE(LOG_TAG, "Stop engine %d", eng->GetEngineId());
status = eng->GetEngine()->StopRecognition(&st_stream_);
@@ -2671,7 +2580,8 @@
}
}
for (auto& device: st_stream_.mDevices) {
- st_stream_.rm->deregisterDevice(device, &st_stream_);
+ if (rm->isDeviceActive_l(device, &st_stream_))
+ st_stream_.rm->deregisterDevice(device, &st_stream_);
st_stream_.gsl_engine_->DisconnectSessionDevice(&st_stream_,
st_stream_.mStreamAttr->type, device);
@@ -2756,7 +2666,7 @@
st_stream_.mDevices.pop_back();
dev->close();
st_stream_.device_opened_ = false;
- } else {
+ } else if (!rm->isDeviceActive_l(dev, &st_stream_)) {
st_stream_.rm->registerDevice(dev, &st_stream_);
}
connect_err:
@@ -2841,13 +2751,6 @@
switch (ev_cfg->id_) {
case ST_EV_START_RECOGNITION: {
- stream_state_t prev_state;
- if (st_stream_.is_client_start_stop_) {
- // cache current state after mutex locked
- prev_state = st_stream_.currentState;
- st_stream_.currentState = STREAM_STARTED;
- }
-
// Client restarts next recognition without config changed.
st_stream_.CancelDelayedStop();
@@ -2865,12 +2768,7 @@
TransitTo(ST_STATE_ACTIVE);
} else {
TransitTo(ST_STATE_LOADED);
- if (st_stream_.is_client_start_stop_) {
- // restore cached state if start fails
- st_stream_.currentState = prev_state;
- }
}
- st_stream_.is_client_start_stop_ = false;
rm->releaseWakeLock();
break;
}
@@ -2882,30 +2780,14 @@
}
case ST_EV_UNLOAD_SOUND_MODEL:
case ST_EV_STOP_RECOGNITION: {
- bool is_client_stop = false;
- if (ev_cfg->id_ == ST_EV_STOP_RECOGNITION &&
- st_stream_.is_client_start_stop_) {
- is_client_stop = st_stream_.is_client_start_stop_;
- st_stream_.is_client_start_stop_ = false;
- }
-
- if (!st_stream_.common_cp_update_disable_) {
- st_stream_.mStreamMutex.unlock();
- st_stream_.rm->lockActiveStream();
- st_stream_.mStreamMutex.lock();
- }
-
- if (is_client_stop)
- st_stream_.currentState = STREAM_STOPPED;
-
if (st_stream_.mDevices.size() > 0) {
auto& dev = st_stream_.mDevices[0];
PAL_VERBOSE(LOG_TAG, "Deregister device %d-%s", dev->getSndDeviceId(),
dev->getPALDeviceName().c_str());
- st_stream_.rm->deregisterDevice(dev, &st_stream_);
+ if (rm->isDeviceActive_l(dev, &st_stream_))
+ st_stream_.rm->deregisterDevice(dev, &st_stream_);
}
- if (!st_stream_.common_cp_update_disable_)
- st_stream_.rm->unlockActiveStream();
+
st_stream_.CancelDelayedStop();
for (auto& eng: st_stream_.engines_) {
PAL_VERBOSE(LOG_TAG, "Stop engine %d", eng->GetEngineId());
@@ -2948,19 +2830,13 @@
PAL_DBG(LOG_TAG, "Same recognition config, skip update");
break;
}
- if (!st_stream_.common_cp_update_disable_) {
- st_stream_.mStreamMutex.unlock();
- st_stream_.rm->lockActiveStream();
- st_stream_.mStreamMutex.lock();
- }
if (st_stream_.mDevices.size() > 0) {
auto& dev = st_stream_.mDevices[0];
PAL_VERBOSE(LOG_TAG, "Deregister device %d-%s", dev->getSndDeviceId(),
dev->getPALDeviceName().c_str());
- st_stream_.rm->deregisterDevice(dev, &st_stream_);
+ if (rm->isDeviceActive_l(dev, &st_stream_))
+ st_stream_.rm->deregisterDevice(dev, &st_stream_);
}
- if (!st_stream_.common_cp_update_disable_)
- st_stream_.rm->unlockActiveStream();
/*
* Client can update config for next recognition.
* Get to loaded state as START event will start recognition.
@@ -3009,7 +2885,8 @@
auto& dev = st_stream_.mDevices[0];
PAL_VERBOSE(LOG_TAG, "Deregister device %d-%s", dev->getSndDeviceId(),
dev->getPALDeviceName().c_str());
- st_stream_.rm->deregisterDevice(dev, &st_stream_);
+ if (rm->isDeviceActive_l(dev, &st_stream_))
+ st_stream_.rm->deregisterDevice(dev, &st_stream_);
}
st_stream_.CancelDelayedStop();
@@ -3118,12 +2995,6 @@
break;
}
case ST_EV_START_RECOGNITION: {
- stream_state_t prev_state;
- if (st_stream_.is_client_start_stop_) {
- // cache current state after mutex locked
- prev_state = st_stream_.currentState;
- st_stream_.currentState = STREAM_STARTED;
- }
/*
* Can happen if client requests next recognition without any config
* change with/without reading buffers after sending detection event.
@@ -3153,12 +3024,7 @@
TransitTo(ST_STATE_ACTIVE);
} else {
TransitTo(ST_STATE_LOADED);
- if (st_stream_.is_client_start_stop_) {
- // restore cached state if start fails
- st_stream_.currentState = prev_state;
- }
}
- st_stream_.is_client_start_stop_ = false;
rm->releaseWakeLock();
break;
}
@@ -3170,20 +3036,13 @@
PAL_DBG(LOG_TAG, "Same recognition config, skip update");
break;
}
- if (!st_stream_.common_cp_update_disable_) {
- st_stream_.mStreamMutex.unlock();
- st_stream_.rm->lockActiveStream();
- st_stream_.mStreamMutex.lock();
- }
-
if (st_stream_.mDevices.size() > 0) {
auto& dev = st_stream_.mDevices[0];
PAL_VERBOSE(LOG_TAG, "Deregister device %d-%s", dev->getSndDeviceId(),
dev->getPALDeviceName().c_str());
- st_stream_.rm->deregisterDevice(dev, &st_stream_);
+ if (rm->isDeviceActive_l(dev, &st_stream_))
+ st_stream_.rm->deregisterDevice(dev, &st_stream_);
}
- if (!st_stream_.common_cp_update_disable_)
- st_stream_.rm->unlockActiveStream();
/*
* Can happen if client doesn't read buffers after sending detection
@@ -3237,31 +3096,14 @@
[[fallthrough]];
}
case ST_EV_UNLOAD_SOUND_MODEL:
- case ST_EV_STOP_RECOGNITION: {
- bool is_client_stop = false;
- if (ev_cfg->id_ == ST_EV_STOP_RECOGNITION &&
- st_stream_.is_client_start_stop_) {
- is_client_stop = st_stream_.is_client_start_stop_;
- st_stream_.is_client_start_stop_ = false;
- }
-
- if (!st_stream_.common_cp_update_disable_) {
- st_stream_.mStreamMutex.unlock();
- st_stream_.rm->lockActiveStream();
- st_stream_.mStreamMutex.lock();
- }
-
- if (is_client_stop)
- st_stream_.currentState = STREAM_STOPPED;
-
+ case ST_EV_STOP_RECOGNITION: {
if (st_stream_.mDevices.size() > 0) {
auto& dev = st_stream_.mDevices[0];
PAL_VERBOSE(LOG_TAG, "Deregister device %d-%s", dev->getSndDeviceId(),
dev->getPALDeviceName().c_str());
- st_stream_.rm->deregisterDevice(dev, &st_stream_);
+ if (rm->isDeviceActive_l(dev, &st_stream_))
+ st_stream_.rm->deregisterDevice(dev, &st_stream_);
}
- if (!st_stream_.common_cp_update_disable_)
- st_stream_.rm->unlockActiveStream();
// Possible with deffered stop if client doesn't start next recognition.
if (st_stream_.force_nlpi_vote) {
@@ -3402,7 +3244,8 @@
auto& dev = st_stream_.mDevices[0];
PAL_VERBOSE(LOG_TAG, "Deregister device %d-%s", dev->getSndDeviceId(),
dev->getPALDeviceName().c_str());
- st_stream_.rm->deregisterDevice(dev, &st_stream_);
+ if (rm->isDeviceActive_l(dev, &st_stream_))
+ st_stream_.rm->deregisterDevice(dev, &st_stream_);
}
st_stream_.CancelDelayedStop();
@@ -3597,12 +3440,6 @@
break;
}
case ST_EV_START_RECOGNITION: {
- stream_state_t prev_state;
- if (st_stream_.is_client_start_stop_) {
- // cache current state after mutex locked
- prev_state = st_stream_.currentState;
- st_stream_.currentState = STREAM_STARTED;
- }
if (st_stream_.state_for_restore_ != ST_STATE_LOADED) {
PAL_ERR(LOG_TAG, "Invalid operation, client state = %d now",
st_stream_.state_for_restore_);
@@ -3613,21 +3450,13 @@
if (!st_stream_.rec_config_) {
PAL_ERR(LOG_TAG, "Recognition config not set %d", data->restart_);
status = -EINVAL;
- } else {
- st_stream_.state_for_restore_ = ST_STATE_ACTIVE;
+ break;
}
+ st_stream_.state_for_restore_ = ST_STATE_ACTIVE;
}
- if (status && st_stream_.is_client_start_stop_) {
- // restore cached state if start fails
- st_stream_.currentState = prev_state;
- }
- st_stream_.is_client_start_stop_ = false;
break;
}
case ST_EV_STOP_RECOGNITION: {
- if (st_stream_.is_client_start_stop_)
- st_stream_.currentState = STREAM_STOPPED;
-
if (st_stream_.state_for_restore_ != ST_STATE_ACTIVE) {
PAL_ERR(LOG_TAG, "Invalid operation, client state = %d now",
st_stream_.state_for_restore_);
@@ -3635,7 +3464,6 @@
} else {
st_stream_.state_for_restore_ = ST_STATE_LOADED;
}
- st_stream_.is_client_start_stop_ = false;
break;
}
case ST_EV_PAUSE: {