Browse Source

sm8450-common: Update audio configs from V13.0.4.0.TLCMIXM

Change-Id: Id3d049019501165595818fd088ed5350b51f719d
Arian 2 years ago
parent
commit
03d405a3a4

+ 1 - 1
audio/audio_effects.xml

@@ -43,7 +43,7 @@
         <library name="shoebox" path="libshoebox.so"/>
         <library name="misoundfx" path="libmisoundfx.so"/>
         <!--DOLBY DAP-->
-        <library name="dap" path="libswdap.so"/>
+        <library name="dap" path="libhwdap.so"/>
         <!--DOLBY END-->
         <!--DOLBY GAME-->
         <library name="gamedap" path="libswgamedap.so"/>

+ 4 - 0
audio/audio_policy_configuration.xml

@@ -63,6 +63,10 @@
                     <profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
                              samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
                 </mixPort>
+                <mixPort name="raw" role="source" flags="AUDIO_OUTPUT_FLAG_FAST AUDIO_OUTPUT_FLAG_RAW">
+                    <profile name="" format="AUDIO_FORMAT_PCM_24_BIT_PACKED"
+                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+                </mixPort>
                 <mixPort name="haptics output" role="source">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                              samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO_HAPTIC_A"/>

+ 27 - 0
audio/card-defs.xml

@@ -346,5 +346,32 @@
         </mixer_plugin>
     </mixer>
 
+</card>
+
+<card>
+    <id>101</id>
+    <name>waipiovirtualsndcard-1</name>
+
+    <pcm-device>
+        <id>150</id>
+        <name>PCM150</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>

+ 5 - 12
audio/media_codecs_c2_audio.xml

@@ -44,23 +44,11 @@
             <Limit name="bitrate" range="1-9600" />
             <Limit name="concurrent-instances" max="2" />
         </MediaCodec>
-        <MediaCodec name="c2.qti.flac.sw.decoder" type="audio/flac">
-            <Limit name="channel-count" max="8" />
-            <Limit name="sample-rate" ranges="8000-192000" />
-            <Limit name="bitrate" range="1-9216000" />
-            <Limit name="concurrent-instances" max="2" />
-        </MediaCodec>
         <MediaCodec name="c2.qti.dsd.sw.decoder" type="audio/dsd" rank="0">
             <Limit name="channel-count" max="6" />
             <Limit name="sample-rate" ranges="8000-22579200" />
             <Limit name="concurrent-instances" max="2" />
         </MediaCodec>
-        <MediaCodec name="c2.qti.aac.hw.decoder" type="audio/mp4a-latm">
-            <Limit name="channel-count" max="6" />
-            <Limit name="sample-rate" ranges="8000-96000" />
-            <Limit name="bitrate" range="8000-1536000" />
-            <Limit name="concurrent-instances" max="2" />
-        </MediaCodec>
         <MediaCodec name="c2.qti.alac.hw.decoder" type="audio/alac" rank="1">
             <Limit name="channel-count" max="8" />
             <Limit name="sample-rate" ranges="8000-192000" />
@@ -93,30 +81,35 @@
             <Limit name="sample-rate" ranges="8000" />
             <Limit name="bitrate" range="4750-12200" />
             <Limit name="concurrent-instances" max="2" />
+            <Feature name="special-codec" required="true" />
         </MediaCodec>
         <MediaCodec name="c2.qti.amrwb.hw.encoder" type="audio/amr-wb">
             <Limit name="channel-count" max="1" />
             <Limit name="sample-rate" ranges="16000" />
             <Limit name="bitrate" range="6600-23850" />
             <Limit name="concurrent-instances" max="2" />
+            <Feature name="special-codec" required="true" />
         </MediaCodec>
         <MediaCodec name="c2.qti.aac.hw.encoder" type="audio/mp4a-latm">
             <Limit name="channel-count" max="2" />
             <Limit name="sample-rate" ranges="8000-48000" />
             <Limit name="bitrate" range="4000-192000" />
             <Limit name="concurrent-instances" max="2" />
+            <Feature name="special-codec" required="true" />
         </MediaCodec>
         <MediaCodec name="c2.qti.evrc.hw.encoder" type="audio/evrc" rank="0">
             <Limit name="channel-count" max="1" />
             <Limit name="sample-rate" ranges="8000" />
             <Limit name="bitrate" range="1-9600" />
             <Limit name="concurrent-instances" max="2" />
+            <Feature name="special-codec" required="true" />
         </MediaCodec>
         <MediaCodec name="c2.qti.qcelp.hw.encoder" type="audio/qcelp" rank="0">
             <Limit name="channel-count" max="1" />
             <Limit name="sample-rate" ranges="8000" />
             <Limit name="bitrate" range="1-13600" />
             <Limit name="concurrent-instances" max="2" />
+            <Feature name="special-codec" required="true" />
         </MediaCodec>
     </Encoders>
 </Included>

+ 61 - 6
audio/mixer_paths_waipio_mtp.xml

@@ -2561,6 +2561,29 @@
         <ctl name="VA DMIC MUX3" value="DMIC0" />
     </path>
 
+    <path name="va-mic-back-mic">
+        <ctl name="VA_CDC_DMA_TX_0 Channels" value="Two" />
+        <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="TX1 MODE" value="ADC_LP" />
+        <ctl name="VA SMIC MUX0" value="SWR_MIC4" />
+        <ctl name="VA SMIC MUX1" value="SWR_MIC9" />
+        <ctl name="ADC1 ChMap" value="SWRM_TX2_CH1" />
+        <ctl name="VA_AMIC1_MIXER Switch" value="1" />
+        <ctl name="ADC1_MIXER Switch" value="1" />
+        <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+        <ctl name="VA_AMIC5_MIXER Switch" value="1" />
+        <ctl name="ADC4 MUX" value="INP5" />
+        <ctl name="ADC4_MIXER Switch" value="1" />
+        <ctl name="ADC1 Volume" value="8" />
+        <ctl name="ADC4 Volume" value="8" />
+    </path>
+
     <path name="va-mic">
         <path name="va-mic-mono" />
     </path>
@@ -2571,12 +2594,11 @@
         <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="TX3 MODE" value="ADC_LP" />
-        <ctl name="VA SMIC MUX0" value="SWR_MIC9" />
-        <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
-        <ctl name="VA_AMIC5_MIXER Switch" value="1" />
-        <ctl name="ADC4 MUX" value="INP5" />
-        <ctl name="ADC4_MIXER Switch" value="1" />
+        <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="VA_AMIC1_MIXER Switch" value="1" />
+        <ctl name="ADC1_MIXER Switch" value="1" />
     </path>
 
     <path name="va-mic-dmic-lpi">
@@ -3492,4 +3514,37 @@
     <path name="call-proxy-in">
     </path>
 
+   <path name="camcorder-tmic-azoom">
+        <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 Volume" value="8" />
+        <ctl name="TX1 MODE" value="ADC_LP" />
+        <ctl name="ADC1_MIXER Switch" value="1" />
+        <ctl name="AMIC1_MIXER Switch" value="1" />
+
+        <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 MUX" value="INP5" />
+        <ctl name="ADC4 Volume" value="8" />
+        <ctl name="ADC4 ChMap" value="SWRM_TX3_CH2" />
+        <ctl name="TX3 MODE" value="ADC_LP" />
+        <ctl name="ADC4_MIXER Switch" value="1" />
+        <ctl name="AMIC5_MIXER Switch" value="1" />
+
+        <ctl name="TX DEC4 MUX" value="SWR_MIC" />
+        <ctl name="TX SMIC MUX4" value="SWR_MIC5" />
+        <ctl name="TX_AIF1_CAP Mixer DEC4" value="1" />
+        <ctl name="ADC2 ChMap" value="SWRM_TX2_CH2" />
+        <ctl name="ADC2 MUX" value="INP3" />
+        <ctl name="ADC2 Volume" value="8" />
+        <ctl name="TX1 MODE" value="ADC_LP" />
+        <ctl name="ADC2_BCS Disable" value="1" />
+        <ctl name="HDR12 MUX" value="NO_HDR12" />
+        <ctl name="ADC2_MIXER Switch" value="1" />
+        <ctl name="AMIC3_MIXER Switch" value="1" />
+    </path>
+
 </mixer>

+ 32 - 18
audio/resourcemanager_waipio_mtp.xml

@@ -37,14 +37,23 @@
         <param key="context_manager_enable" value ="false" />
         <param key="upd_dedicated_be" value ="true" />
         <param key="dual_mono" value ="false" />
+        <param key="signal_handler" value ="true" />
     </config_params>
     <config_volume>
         <use_volume_set_param>1</use_volume_set_param>
         <supported_streams>
             <supported_stream>PAL_STREAM_COMPRESSED</supported_stream>
+            <supported_stream>PAL_STREAM_PCM_OFFLOAD</supported_stream>
             <supported_stream>PAL_STREAM_VOIP_RX</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" />
@@ -82,20 +91,20 @@
     </low_power_vote_streams>
     <group_device_cfg>
         <upd_rx>
-            <devicepp_mfc sample_rate="48000" channels="2" bit_width="PAL_AUDIO_FMT_PCM_S24_LE" />
-            <group_dev sample_rate = "96000" channels="3" bit_width="PAL_AUDIO_FMT_PCM_S24_LE" slot_mask="7" />
+            <devicepp_mfc sample_rate="48000" channels="2" bit_width="24" />
+            <group_dev sample_rate = "96000" channels="3" bit_fmt="PAL_AUDIO_FMT_PCM_S24_LE" slot_mask="7" />
         </upd_rx>
         <handset>
-            <devicepp_mfc sample_rate="48000" channels="2" bit_width="PAL_AUDIO_FMT_PCM_S24_LE" />
-            <group_dev sample_rate = "96000" channels="3" bit_width="PAL_AUDIO_FMT_PCM_S24_LE" slot_mask="7" />
+            <devicepp_mfc sample_rate="48000" channels="2" bit_width="24" />
+            <group_dev sample_rate = "96000" channels="3" bit_fmt="PAL_AUDIO_FMT_PCM_S24_LE" slot_mask="7" />
         </handset>
         <speaker>
-            <devicepp_mfc sample_rate="48000" channels="2" bit_width="PAL_AUDIO_FMT_PCM_S24_LE" />
-            <group_dev sample_rate = "96000" channels="3" bit_width="PAL_AUDIO_FMT_PCM_S24_LE" slot_mask="7" />
+            <devicepp_mfc sample_rate="48000" channels="2" bit_width="24" />
+            <group_dev sample_rate = "96000" channels="3" bit_fmt="PAL_AUDIO_FMT_PCM_S24_LE" slot_mask="7" />
         </speaker>
         <speaker_voice>
-            <devicepp_mfc sample_rate="48000" channels="2" bit_width="PAL_AUDIO_FMT_PCM_S24_LE" />
-            <group_dev sample_rate = "96000" channels="3" bit_width="PAL_AUDIO_FMT_PCM_S24_LE" slot_mask="7" />
+            <devicepp_mfc sample_rate="48000" channels="2" bit_width="24" />
+            <group_dev sample_rate = "96000" channels="3" bit_fmt="PAL_AUDIO_FMT_PCM_S24_LE" slot_mask="7" />
         </speaker_voice>
     </group_device_cfg>
     <device_profile>
@@ -250,6 +259,8 @@
             </usecase>
             <ec_rx_device>
                 <id>PAL_DEVICE_OUT_SPEAKER</id>
+                <id>PAL_DEVICE_OUT_WIRED_HEADSET</id>
+                <id>PAL_DEVICE_OUT_WIRED_HEADPHONE</id>
             </ec_rx_device>
         </in-device>
         <in-device>
@@ -389,6 +400,8 @@
             <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>
@@ -543,7 +556,6 @@
           <usecase>
               <name>PAL_STREAM_VOICE_CALL</name>
               <priority>2</priority>
-              <snd_device_name>voice-handset</snd_device_name>
               <custom-config key="HAC">
                  <snd_device_name>voice-handset-hac</snd_device_name> <!-- override sound device name with HAC handset -->
               </custom-config>
@@ -551,6 +563,9 @@
           <usecase>
               <name>PAL_STREAM_VOIP_RX</name>
               <priority>3</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>
@@ -792,7 +807,6 @@
             <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>
@@ -836,10 +850,10 @@
             <param support_nlpi_switch="true" />
             <param lpi_enable="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" />
+            <param concurrent_capture="false" />
+            <param concurrent_voice_call="false" />
+            <param concurrent_voip_call="false" />
+            <param low_latency_bargein_enable="true" />
         </common_config>
         <capture_profile_list>
             <capture_profile name="SINGLE_MIC_16KHZ_16BIT_HEADSET_LPI">
@@ -1002,7 +1016,7 @@
             <param concurrent_capture="false" />
             <param concurrent_voice_call="false" />
             <param concurrent_voip_call="false" />
-            <param low_latency_bargein_enable="false" />
+            <param low_latency_bargein_enable="true" />
             <param mmap_enable="true" />
             <param mmap_buffer_duration="5000" />
             <param mmap_frame_length="5" /> <!-- 5ms duration of data -->
@@ -1192,7 +1206,7 @@
             <param vendor_uuid="68ab2d40-e860-11e3-95ef-0002a5d5c51c"/>
             <!-- durations in us -->
             <param kw_start_tolerance="360000" />
-            <param kw_end_tolerance="240000" />
+            <param kw_end_tolerance="100000" />
             <param data_before_kw_start="360000" />
             <param data_after_kw_end="480000" />
             <param merge_first_stage_sound_models="false"/>
@@ -1344,8 +1358,8 @@
             <param client_capture_read_delay="2000" />
             <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="SINGLE_MIC_16KHZ_16BIT_RAW_NLPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI"/>
-                <high_performance_and_charging capture_profile_handset="SINGLE_MIC_16KHZ_16BIT_RAW_NLPI" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI"/>
+                <high_performance capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI"/>
+                <high_performance_and_charging capture_profile_handset="DUAL_MIC_16KHZ_16BIT_FFECNS" capture_profile_headset="SINGLE_MIC_16KHZ_16BIT_HEADSET_RAW_NLPI"/>
             </operating_modes>
             <module_params>
                 <param module_type="HOTWORD" />

+ 153 - 1
audio/usecaseKvManager.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 <!-- Copyright (c) 2021, The Linux Foundation. All rights reserved.            -->
+<!-- Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.  -->
 <!--                                                                           -->
 <!-- Redistribution and use in source and binary forms, with or without        -->
 <!-- modification, are permitted provided that the following conditions are    -->
@@ -25,6 +26,41 @@
 <!-- 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>
@@ -73,6 +109,20 @@
                 <!-- INSTANCE - INSTANCE_2 -->
                 <graph_kv key="0xAB000000" value="0x2"/>
             </keys_and_values>
+            <keys_and_values Direction="TX" Instance="3">
+                <!-- STREAMTX - PCM_RECORD -->
+                <graph_kv key="0xB1000000" value="0xB1000001"/>
+                <!-- INSTANCE - INSTANCE_3 -->
+                <graph_kv key="0xAB000000" value="0x3"/>
+            </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>
         <!-- Compressed-playback stream -->
         <stream type="PAL_STREAM_COMPRESSED">
@@ -182,6 +232,22 @@
                 <!-- 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_1 -->
+                <graph_kv key="0xAB000000" value="0x2"/>
+            </keys_and_values>
         </stream>
         <!-- PCM-Offload stream -->
         <stream type="PAL_STREAM_PCM_OFFLOAD">
@@ -197,6 +263,8 @@
             <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 -->
@@ -814,6 +882,12 @@
         </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">
                 <!-- DEVICETX - HANDSETMIC -->
                 <graph_kv key="0xA3000000" value="0xA3000004"/>
@@ -838,6 +912,12 @@
                 <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_ENDFIRE -->
                 <graph_kv key="0xAD000000" value="0xAD000072"/>
             </keys_and_values>
+            <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER" CustomConfig="camcorder_zoom">
+                <!-- DEVICETX - HANDSETMIC -->
+                <graph_kv key="0xA3000000" value="0xA3000004"/>
+                <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_ENDFIRE -->
+                <graph_kv key="0xAD000000" value="0xAD000072"/>
+            </keys_and_values>
             <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER" CustomConfig="dual-mic">
                 <!-- DEVICETX - HANDSETMIC -->
                 <graph_kv key="0xA3000000" value="0xA3000004"/>
@@ -916,6 +996,18 @@
                 <!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_NN_SM -->
                 <graph_kv key="0xAD000000" value="0xAD000010"/>
             </keys_and_values>
+            <!--keys_and_values StreamType="PAL_STREAM_ULTRA_LOW_LATENCY"-->
+                <!-- 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_LOW_LATENCY">
+                <!-- DEVICETX - HANDSETMIC -->
+                <graph_kv key="0xA3000000" value="0xA3000004"/>
+                <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_ENDFIRE -->
+                <graph_kv key="0xAD000000" value="0xAD000003"/>
+            </keys_and_values>
         </devicepp>
         <!-- IN Speaker MIC DevicePPs -->
         <devicepp id="PAL_DEVICE_IN_SPEAKER_MIC">
@@ -931,12 +1023,24 @@
                 <!-- DEVICEPP_TX - DEVICEPP_TX_RECORDING_DUALADC -->
                 <graph_kv key="0xAD000000" value="0xAD000072"/>
             </keys_and_values>
+            <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER" CustomConfig="camcorder_zoom">
+                <!-- 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" 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" CustomConfig="wired-headphone">
+                <!-- 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" CustomConfig="quad-mic">
                 <!-- DEVICETX - SPEAKER_MIC -->
                 <graph_kv key="0xA3000000" value="0xA3000001"/>
@@ -955,6 +1059,12 @@
                 <!-- 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="wired-headphone">
+                <!-- DEVICETX - SPEAKER_MIC -->
+                <graph_kv key="0xA3000000" value="0xA3000001"/>
+                <!-- DEVICEPP_TX - DEVICEPP_TX_VOICE_WIRED_HEADPHONE -->
+                <graph_kv key="0xAD000000" value="0xAD000082"/>
+            </keys_and_values>
             <keys_and_values StreamType="PAL_STREAM_VOICE_CALL" CustomConfig="quad-mic">
                 <!-- DEVICETX - SPEAKER_MIC -->
                 <graph_kv key="0xA3000000" value="0xA3000001"/>
@@ -979,6 +1089,12 @@
                 <!-- 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="wired-headphone">>
+                <!-- DEVICETX - SPEAKER_MIC -->
+                <graph_kv key="0xA3000000" value="0xA3000001"/>
+                <!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_WIRED_HEADPHONE -->
+                <graph_kv key="0xAD000000" value="0xAD000083"/>
+            </keys_and_values>
             <keys_and_values StreamType="PAL_STREAM_VOIP_TX" CustomConfig="quad-mic">>
                 <!-- DEVICETX - SPEAKER_MIC -->
                 <graph_kv key="0xA3000000" value="0xA3000001"/>
@@ -1057,6 +1173,18 @@
                 <!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_SMECNS -->
                 <graph_kv key="0xAD000000" value="0xAD000007"/>
             </keys_and_values>
+            <!--keys_and_values StreamType="PAL_STREAM_ULTRA_LOW_LATENCY"-->
+                <!-- DEVICETX - HEADPHONE_MIC -->
+                <!--graph_kv key="0xA3000000" value="0xA3000003"/-->
+                <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_ENDFIRE -->
+                <!--graph_kv key="0xAD000000" value="0xAD000003"/-->
+            <!--/keys_and_values-->
+            <keys_and_values StreamType="PAL_STREAM_LOW_LATENCY">
+                <!-- DEVICETX - HEADPHONE_MIC -->
+                <graph_kv key="0xA3000000" value="0xA3000003"/>
+                <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_ENDFIRE -->
+                <graph_kv key="0xAD000000" value="0xAD000003"/>
+            </keys_and_values>
         </devicepp>
         <!-- IN USB device and USB headset DevicePPs -->
         <devicepp id="PAL_DEVICE_IN_USB_DEVICE,PAL_DEVICE_IN_USB_HEADSET">
@@ -1066,6 +1194,12 @@
                 <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_SMECNS -->
                 <graph_kv key="0xAD000000" value="0xAD000002"/>
             </keys_and_values>
+            <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER" CustomConfig="va-mic-enroll">
+                <!-- DEVICETX - USB_TX -->
+                <graph_kv key="0xA3000000" value="0xA3000005"/>
+                <!-- DEVICEPP_TX - DEVICEPP_TX_RECORDING_VA_ENROLL -->
+                <graph_kv key="0xAD000000" value="0xAD000073"/>
+            </keys_and_values>
             <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER">
                 <!-- DEVICETX - USB_TX -->
                 <graph_kv key="0xA3000000" value="0xA3000005"/>
@@ -1078,6 +1212,12 @@
                 <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_SMECNS -->
                 <graph_kv key="0xAD000000" value="0xAD000002"/>
             </keys_and_values>
+            <keys_and_values StreamType="PAL_STREAM_DEEP_BUFFER" CustomConfig="voice_recog">
+                <!-- DEVICETX - USB_TX -->
+                <graph_kv key="0xA3000000" value="0xA3000005"/>
+                <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_ENDFIRE -->
+                <graph_kv key="0xAD000000" value="0xad000003"/>
+            </keys_and_values>
             <keys_and_values StreamType="PAL_STREAM_LOOPBACK" SubType="PAL_STREAM_LOOPBACK_KARAOKE">
                 <!-- DEVICETX - USB_TX -->
                 <graph_kv key="0xA3000000" value="0xA3000005"/>
@@ -1096,11 +1236,23 @@
                 <!-- DEVICEPP_TX - DEVICEPP_TX_VOIP_FLUENCE_SMECNS -->
                 <graph_kv key="0xAD000000" value="0xAD000007"/>
             </keys_and_values>
+            <!--keys_and_values StreamType="PAL_STREAM_ULTRA_LOW_LATENCY"-->
+                <!-- DEVICETX - USB_TX -->
+                <!--graph_kv key="0xA3000000" value="0xA3000005"/-->
+                <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_ENDFIRE -->
+                <!--graph_kv key="0xAD000000" value="0xAD000003"/-->
+            <!--/keys_and_values-->
+            <keys_and_values StreamType="PAL_STREAM_LOW_LATENCY">
+                <!-- DEVICETX - USB_TX -->
+                <graph_kv key="0xA3000000" value="0xA3000005"/>
+                <!-- DEVICEPP_TX - DEVICEPP_TX_AUDIO_FLUENCE_ENDFIRE -->
+                <graph_kv key="0xAD000000" value="0xAD000003"/>
+            </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">
+                DevicePPType="SINGLE_MIC_16KHZ_16BIT_FFECNS,DUAL_MIC_16KHZ_16BIT_FFECNS,TRI_MIC_16KHZ_16BIT_FFECNS,QUAD_MIC_16KHZ_16BIT_FFECNS,DUAL_BACK_MIC_16KHZ_16BIT_FFECNS">
                 <!-- DEVICETX - HANDSETMIC_VA -->
                 <graph_kv key="0xA3000000" value="0xA3000006"/>
                 <!-- DEVICEPP_TX - DEVICEPP_TX_FLUENCE_FFECNS -->