Merge "config: lahaina: set correct backend name for speaker-stereo-protected"
diff --git a/configs/bengal/sound_trigger_mixer_paths_scubaqrd.xml b/configs/bengal/sound_trigger_mixer_paths_scubaqrd.xml
index 6e20be9..ebacdae 100644
--- a/configs/bengal/sound_trigger_mixer_paths_scubaqrd.xml
+++ b/configs/bengal/sound_trigger_mixer_paths_scubaqrd.xml
@@ -224,8 +224,9 @@
<path name="listen-ape-handset-mic">
<ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
- <ctl name="VA DEC0 MUX" value="MSM_DMIC" />
- <ctl name="VA DMIC MUX0" value="DMIC1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC0" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
</path>
<path name="listen-ape-handset-mic-preproc">
@@ -234,12 +235,15 @@
<path name="listen-ape-handset-dmic">
<ctl name="VA_CDC_DMA_TX_0 Channels" value="Two" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="SWR_MIC0" />
<ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="ADC1_MIXER Switch" value="1" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX1" value="SWR_MIC1" />
<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="DMIC2" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="ADC2 MUX" value="INP3" />
</path>
<path name="listen-ape-headset-mic">
diff --git a/configs/lito/audio_policy_configuration_odm.xml b/configs/lito/audio_policy_configuration_odm.xml
index 78185d0..4577fe7 100644
--- a/configs/lito/audio_policy_configuration_odm.xml
+++ b/configs/lito/audio_policy_configuration_odm.xml
@@ -148,6 +148,10 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
</devicePort>
+ <devicePort tagName="Line" type="AUDIO_DEVICE_OUT_LINE" role="sink">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="48000" channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </devicePort>
<devicePort tagName="BT SCO" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO" role="sink">
</devicePort>
<devicePort tagName="BT SCO Headset" type="AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET" role="sink">
@@ -206,6 +210,8 @@
sources="primary output,raw,deep_buffer,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="Wired Headphones"
sources="primary output,raw,deep_buffer,compressed_offload,voip_rx,mmap_no_irq_out"/>
+ <route type="mix" sink="Line"
+ sources="primary output,raw,deep_buffer,compressed_offload,voip_rx,mmap_no_irq_out"/>
<route type="mix" sink="BT SCO"
sources="primary output,raw,deep_buffer,voip_rx"/>
<route type="mix" sink="BT SCO Headset"
diff --git a/configs/lito/lito.mk b/configs/lito/lito.mk
index a906cdb..d17fcde 100644
--- a/configs/lito/lito.mk
+++ b/configs/lito/lito.mk
@@ -156,6 +156,7 @@
AUDIO_DLKM += audio_wcd_core.ko
AUDIO_DLKM += audio_swr_ctrl.ko
AUDIO_DLKM += audio_wsa881x.ko
+AUDIO_DLKM += audio_wsa883x.ko
AUDIO_DLKM += audio_platform.ko
AUDIO_DLKM += audio_hdmi.ko
AUDIO_DLKM += audio_stub.ko
@@ -194,6 +195,7 @@
vendor/qcom/opensource/audio-hal/primary-hal/configs/lito/sound_trigger_mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_qrd.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/lito/sound_trigger_mixer_paths_cdp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_cdp.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/lito/sound_trigger_mixer_paths_lagoonqrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_lagoonqrd.xml \
+ vendor/qcom/opensource/audio-hal/primary-hal/configs/lito/sound_trigger_mixer_paths_lagoonmtp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/sound_trigger_mixer_paths_lagoonmtp.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/lito/mixer_paths.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/lito/mixer_paths_lagoonmtp.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_lagoonmtp.xml \
vendor/qcom/opensource/audio-hal/primary-hal/configs/lito/mixer_paths_qrd.xml:$(TARGET_COPY_OUT_VENDOR)/etc/mixer_paths_qrd.xml \
diff --git a/configs/lito/mixer_paths_lagoonmtp.xml b/configs/lito/mixer_paths_lagoonmtp.xml
index 0641a56..8db7ff9 100644
--- a/configs/lito/mixer_paths_lagoonmtp.xml
+++ b/configs/lito/mixer_paths_lagoonmtp.xml
@@ -2662,11 +2662,11 @@
</path>
<path name="speaker-mic">
- <path name="dmic5" />
+ <path name="dmic2" />
</path>
<path name="speaker-mic-liquid">
- <path name="dmic5" />
+ <path name="dmic2" />
</path>
<path name="speaker-mic-sbc">
@@ -2723,7 +2723,7 @@
</path>
<path name="handset-mic">
- <path name="dmic2" />
+ <path name="dmic3" />
</path>
<path name="headphones">
@@ -2952,7 +2952,7 @@
<path name="handset-dmic-endfire">
<ctl name="TX_CDC_DMA_TX_3 Channels" value="Two" />
<ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
- <ctl name="TX DMIC MUX1" value="DMIC1" />
+ <ctl name="TX DMIC MUX1" value="DMIC2" />
<ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
<ctl name="TX DMIC MUX2" value="DMIC3" />
</path>
@@ -2960,9 +2960,9 @@
<path name="speaker-dmic-endfire">
<ctl name="TX_CDC_DMA_TX_3 Channels" value="Two" />
<ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
- <ctl name="TX DMIC MUX1" value="DMIC4" />
+ <ctl name="TX DMIC MUX1" value="DMIC2" />
<ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
- <ctl name="TX DMIC MUX2" value="DMIC1" />
+ <ctl name="TX DMIC MUX2" value="DMIC3" />
</path>
<path name="dmic-endfire">
@@ -3029,9 +3029,9 @@
<path name="speaker-dmic-broadside">
<ctl name="TX_CDC_DMA_TX_3 Channels" value="Two" />
<ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
- <ctl name="TX DMIC MUX1" value="DMIC4" />
+ <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 DMIC MUX2" value="DMIC2" />
</path>
<path name="dmic-broadside">
@@ -3047,19 +3047,19 @@
<path name="three-mic">
<ctl name="TX_CDC_DMA_TX_3 Channels" value="Three" />
<ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
- <ctl name="TX DMIC MUX1" value="DMIC3" />
+ <ctl name="TX DMIC MUX1" value="DMIC1" />
<ctl name="TX_AIF1_CAP Mixer DEC2" value="1" />
- <ctl name="TX DMIC MUX2" value="DMIC0" />
+ <ctl name="TX DMIC MUX2" value="DMIC2" />
<ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
- <ctl name="TX DMIC MUX3" value="DMIC2" />
+ <ctl name="TX DMIC MUX3" value="DMIC3" />
</path>
<path name="speaker-tmic">
<ctl name="TX_CDC_DMA_TX_3 Channels" value="Three" />
<ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
- <ctl name="TX DMIC MUX1" value="DMIC4" />
+ <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 DMIC MUX2" value="DMIC2" />
<ctl name="TX_AIF1_CAP Mixer DEC3" value="1" />
<ctl name="TX DMIC MUX3" value="DMIC3" />
</path>
@@ -3072,9 +3072,9 @@
<path name="speaker-qmic">
<ctl name="TX_CDC_DMA_TX_3 Channels" value="Four" />
<ctl name="TX_AIF1_CAP Mixer DEC1" value="1" />
- <ctl name="TX DMIC MUX1" value="DMIC4" />
+ <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 DMIC MUX2" value="DMIC2" />
<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" />
@@ -3149,6 +3149,7 @@
</path>
<path name="voice-tty-hco-headset-mic">
+
<ctl name="TX DEC6 MUX" value="SWR_MIC" />
<ctl name="TX SMIC MUX6" value="ADC1" />
<ctl name="TX_CDC_DMA_TX_3 Channels" value="One" />
diff --git a/configs/lito/sound_trigger_mixer_paths_lagoonmtp.xml b/configs/lito/sound_trigger_mixer_paths_lagoonmtp.xml
new file mode 100644
index 0000000..026d556
--- /dev/null
+++ b/configs/lito/sound_trigger_mixer_paths_lagoonmtp.xml
@@ -0,0 +1,310 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--- Copyright (c) 2014, 2020, The Linux Foundation. All rights reserved. -->
+<!--- -->
+<!--- Redistribution and use in source and binary forms, with or without -->
+<!--- modification, are permitted provided that the following conditions are -->
+<!--- met: -->
+<!--- * Redistributions of source code must retain the above copyright -->
+<!--- notice, this list of conditions and the following disclaimer. -->
+<!--- * Redistributions in binary form must reproduce the above -->
+<!--- copyright notice, this list of conditions and the following -->
+<!--- disclaimer in the documentation and/or other materials provided -->
+<!--- with the distribution. -->
+<!--- * Neither the name of The Linux Foundation nor the names of its -->
+<!--- contributors may be used to endorse or promote products derived -->
+<!--- from this software without specific prior written permission. -->
+<!--- -->
+<!--- THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED -->
+<!--- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -->
+<!--- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT -->
+<!--- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS -->
+<!--- BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -->
+<!--- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -->
+<!--- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR -->
+<!--- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, -->
+<!--- WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -->
+<!--- OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN -->
+<!--- IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -->
+
+<mixer>
+ <!-- These are the initial mixer settings -->
+ <ctl name="LSM1 Mixer VA_CDC_DMA_TX_0" value="0" />
+ <ctl name="LSM2 Mixer VA_CDC_DMA_TX_0" value="0" />
+ <ctl name="LSM3 Mixer VA_CDC_DMA_TX_0" value="0" />
+ <ctl name="LSM4 Mixer VA_CDC_DMA_TX_0" value="0" />
+ <ctl name="LSM5 Mixer VA_CDC_DMA_TX_0" value="0" />
+ <ctl name="LSM6 Mixer VA_CDC_DMA_TX_0" value="0" />
+ <ctl name="LSM7 Mixer VA_CDC_DMA_TX_0" value="0" />
+ <ctl name="LSM8 Mixer VA_CDC_DMA_TX_0" value="0" />
+ <ctl name="LSM1 Port" value="None" />
+ <ctl name="LSM2 Port" value="None" />
+ <ctl name="LSM3 Port" value="None" />
+ <ctl name="LSM4 Port" value="None" />
+ <ctl name="LSM5 Port" value="None" />
+ <ctl name="LSM6 Port" value="None" />
+ <ctl name="LSM7 Port" value="None" />
+ <ctl name="LSM8 Port" value="None" />
+ <ctl name="VA_CDC_DMA_TX_0 Channels" value="One" />
+ <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_AIF1_CAP Mixer DEC4" value="0" />
+ <ctl name="VA_AIF1_CAP Mixer DEC5" value="0" />
+ <ctl name="VA_AIF1_CAP Mixer DEC6" value="0" />
+ <ctl name="VA_AIF1_CAP Mixer DEC7" 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 DEC4 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC5 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC6 MUX" value="MSM_DMIC" />
+ <ctl name="VA DEC7 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 DMIC MUX4" value="ZERO" />
+ <ctl name="VA DMIC MUX5" value="ZERO" />
+ <ctl name="VA DMIC MUX6" value="ZERO" />
+ <ctl name="VA DMIC MUX7" 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 SMIC MUX4" value="ZERO" />
+ <ctl name="VA SMIC MUX5" value="ZERO" />
+ <ctl name="VA SMIC MUX6" value="ZERO" />
+ <ctl name="VA SMIC MUX7" value="ZERO" />
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="None"/>
+ <ctl name="EC Reference Channels" value="Zero"/>
+ <ctl name="EC Reference Bit Format" value="0"/>
+ <ctl name="EC Reference SampleRate" value="0"/>
+ <ctl name="ADC2_MIXER Switch" value="0" />
+ <ctl name="LPI Enable" value="0" />
+ <ctl name="ADC2 Volume" value="12" />
+
+ <path name="listen-voice-wakeup-1">
+ <ctl name="LSM1 Mixer VA_CDC_DMA_TX_0" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-2">
+ <ctl name="LSM2 Mixer VA_CDC_DMA_TX_0" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-3">
+ <ctl name="LSM3 Mixer VA_CDC_DMA_TX_0" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-4">
+ <ctl name="LSM4 Mixer VA_CDC_DMA_TX_0" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-5">
+ <ctl name="LSM5 Mixer VA_CDC_DMA_TX_0" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-6">
+ <ctl name="LSM6 Mixer VA_CDC_DMA_TX_0" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-7">
+ <ctl name="LSM7 Mixer VA_CDC_DMA_TX_0" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-8">
+ <ctl name="LSM8 Mixer VA_CDC_DMA_TX_0" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-1 preproc">
+ <path name="listen-voice-wakeup-1" />
+ </path>
+
+ <path name="listen-voice-wakeup-2 preproc">
+ <path name="listen-voice-wakeup-2" />
+ </path>
+
+ <path name="listen-voice-wakeup-3 preproc">
+ <path name="listen-voice-wakeup-3" />
+ </path>
+
+ <path name="listen-voice-wakeup-4 preproc">
+ <path name="listen-voice-wakeup-4" />
+ </path>
+
+ <path name="listen-voice-wakeup-5 preproc">
+ <path name="listen-voice-wakeup-5" />
+ </path>
+
+ <path name="listen-voice-wakeup-6 preproc">
+ <path name="listen-voice-wakeup-6" />
+ </path>
+
+ <path name="listen-voice-wakeup-7 preproc">
+ <path name="listen-voice-wakeup-7" />
+ </path>
+
+ <path name="listen-voice-wakeup-8 preproc">
+ <path name="listen-voice-wakeup-8" />
+ </path>
+
+ <path name="listen-voice-wakeup-1 port">
+ <ctl name="LSM1 Port" value="VA_CDC_DMA_TX_0" />
+ <ctl name="LPI Enable" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-2 port">
+ <ctl name="LSM2 Port" value="VA_CDC_DMA_TX_0" />
+ <ctl name="LPI Enable" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-3 port">
+ <ctl name="LSM3 Port" value="VA_CDC_DMA_TX_0" />
+ <ctl name="LPI Enable" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-4 port">
+ <ctl name="LSM4 Port" value="VA_CDC_DMA_TX_0" />
+ <ctl name="LPI Enable" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-5 port">
+ <ctl name="LSM5 Port" value="VA_CDC_DMA_TX_0" />
+ <ctl name="LPI Enable" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-6 port">
+ <ctl name="LSM6 Port" value="VA_CDC_DMA_TX_0" />
+ <ctl name="LPI Enable" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-7 port">
+ <ctl name="LSM7 Port" value="VA_CDC_DMA_TX_0" />
+ <ctl name="LPI Enable" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-8 port">
+ <ctl name="LSM8 Port" value="VA_CDC_DMA_TX_0" />
+ <ctl name="LPI Enable" value="1" />
+ </path>
+
+ <path name="listen-voice-wakeup-1 preproc port">
+ <ctl name="LSM1 Port" value="ADM_LSM_TX" />
+ <ctl name="LPI Enable" value="0" />
+ </path>
+
+ <path name="listen-voice-wakeup-2 preproc port">
+ <ctl name="LSM2 Port" value="ADM_LSM_TX" />
+ <ctl name="LPI Enable" value="0" />
+ </path>
+
+ <path name="listen-voice-wakeup-3 preproc port">
+ <ctl name="LSM3 Port" value="ADM_LSM_TX" />
+ <ctl name="LPI Enable" value="0" />
+ </path>
+
+ <path name="listen-voice-wakeup-4 preproc port">
+ <ctl name="LSM4 Port" value="ADM_LSM_TX" />
+ <ctl name="LPI Enable" value="0" />
+ </path>
+
+ <path name="listen-voice-wakeup-5 preproc port">
+ <ctl name="LSM5 Port" value="ADM_LSM_TX" />
+ <ctl name="LPI Enable" value="0" />
+ </path>
+
+ <path name="listen-voice-wakeup-6 preproc port">
+ <ctl name="LSM6 Port" value="ADM_LSM_TX" />
+ <ctl name="LPI Enable" value="0" />
+ </path>
+
+ <path name="listen-voice-wakeup-7 preproc port">
+ <ctl name="LSM7 Port" value="ADM_LSM_TX" />
+ <ctl name="LPI Enable" value="0" />
+ </path>
+
+ <path name="listen-voice-wakeup-8 preproc port">
+ <ctl name="LSM8 Port" value="ADM_LSM_TX" />
+ <ctl name="LPI Enable" value="0" />
+ </path>
+
+ <path name="listen-ape-handset-mic">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="MSM_DMIC" />
+ <ctl name="VA DMIC MUX0" value="DMIC2" />
+ </path>
+
+ <path name="listen-ape-handset-mic-preproc">
+ <path name="listen-ape-handset-mic" />
+ </path>
+
+ <path name="listen-ape-handset-dmic">
+ <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="MSM_DMIC" />
+ <ctl name="VA DEC1 MUX" value="MSM_DMIC" />
+ <ctl name="VA DMIC MUX0" value="DMIC1" />
+ <ctl name="VA DMIC MUX1" value="DMIC2" />
+ </path>
+
+ <path name="listen-ape-handset-tmic">
+ <ctl name="VA_CDC_DMA_TX_0 Channels" value="Three" />
+ <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="DMIC2" />
+ <ctl name="VA DMIC MUX2" value="DMIC3" />
+ </path>
+
+ <path name="listen-ape-handset-qmic">
+ <ctl name="VA_CDC_DMA_TX_0 Channels" value="Four" />
+ <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="DMIC2" />
+ <ctl name="VA DMIC MUX2" value="DMIC3" />
+ <ctl name="VA DMIC MUX3" value="DMIC0" />
+ </path>
+
+ <path name="listen-ape-headset-mic">
+ <ctl name="VA_AIF1_CAP Mixer DEC0" value="1" />
+ <ctl name="VA DEC0 MUX" value="SWR_MIC" />
+ <ctl name="VA SMIC MUX0" value="ADC1" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
+ <ctl name="ADC2 MUX" value="INP2" />
+ </path>
+
+ <path name="echo-reference">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="WSA_CDC_DMA_RX_0"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ <ctl name="EC Reference Bit Format" value="S16_LE"/>
+ <ctl name="EC Reference SampleRate" value="48000"/>
+ </path>
+
+ <path name="echo-reference headset">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="WSA_CDC_DMA_RX_0"/>
+ <ctl name="EC Reference Channels" value="One"/>
+ <ctl name="EC Reference Bit Format" value="S16_LE"/>
+ <ctl name="EC Reference SampleRate" value="48000"/>
+ </path>
+
+ <path name="echo-reference a2dp">
+ <ctl name="AUDIO_REF_EC_UL1 MUX" value="SLIM_7_RX"/>
+ <ctl name="EC Reference Channels" value="Two"/>
+ <ctl name="EC Reference Bit Format" value="S16_LE"/>
+ <ctl name="EC Reference SampleRate" value="48000"/>
+ </path>
+
+</mixer>
diff --git a/configs/msm8937/msm8937.mk b/configs/msm8937/msm8937.mk
index 1874f29..e8c8ea0 100644
--- a/configs/msm8937/msm8937.mk
+++ b/configs/msm8937/msm8937.mk
@@ -224,6 +224,11 @@
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio.flac.sw.decoder.24bit=true
+#timeout crash duration set to 20sec before system is ready.
+#timeout duration updates to default timeout of 5sec once the system is ready.
+PRODUCT_PRODUCT_PROPERTIES += \
+vendor.audio.hal.boot.timeout.ms=20000
+
#Set AudioFlinger client heap size
PRODUCT_PROPERTY_OVERRIDES += \
ro.af.client_heap_size_kbyte=7168
diff --git a/configs/msm8953/msm8953.mk b/configs/msm8953/msm8953.mk
index ab7c855..b2bb40b 100644
--- a/configs/msm8953/msm8953.mk
+++ b/configs/msm8953/msm8953.mk
@@ -228,6 +228,11 @@
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio.flac.sw.decoder.24bit=true
+#timeout crash duration set to 20sec before system is ready.
+#timeout duration updates to default timeout of 5sec once the system is ready.
+PRODUCT_PRODUCT_PROPERTIES += \
+vendor.audio.hal.boot.timeout.ms=20000
+
#read wsatz name from thermal zone type
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio.read.wsatz.type=true
@@ -248,6 +253,7 @@
endor.audio.feature.spkr_prot.enable=true \
vendor.audio.feature.dsm_feedback.enable=false \
vendor.audio.feature.ssrec.enable=true \
+vendor.audio.feature.compr_voip.enable=true \
vendor.audio.feature.kpi_optimize.enable=true \
vendor.audio.feature.usb_offload.enable=false \
vendor.audio.feature.usb_offload_burst_mode.enable=false \
diff --git a/configs/msmnile_au/mixer_paths_adp.xml b/configs/msmnile_au/mixer_paths_adp.xml
index fbdc7be..826ee15 100644
--- a/configs/msmnile_au/mixer_paths_adp.xml
+++ b/configs/msmnile_au/mixer_paths_adp.xml
@@ -607,10 +607,6 @@
<path name="compress-offload-playback">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia4" value="1" />
- <ctl name="QUAT_TDM_RX_0 Channels" value="Six" />
- <ctl name="QUAT_TDM_RX_0 Audio Mixer MultiMedia4" value="1" />
- <ctl name="QUIN_TDM_RX_0 Channels" value="Two" />
- <ctl name="QUIN_TDM_RX_0 Audio Mixer MultiMedia4" value="1" />
</path>
<path name="compress-offload-playback speaker-protected">
@@ -714,10 +710,6 @@
<path name="compress-offload-playback2">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia7" value="1" />
- <ctl name="QUAT_TDM_RX_0 Channels" value="Six" />
- <ctl name="QUAT_TDM_RX_0 Audio Mixer MultiMedia7" value="1" />
- <ctl name="QUIN_TDM_RX_0 Channels" value="Two" />
- <ctl name="QUIN_TDM_RX_0 Audio Mixer MultiMedia7" value="1" />
</path>
<path name="compress-offload-playback2 display-port">
@@ -1308,10 +1300,6 @@
<path name="media-playback">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia1" value="1" />
- <ctl name="QUAT_TDM_RX_0 Channels" value="Six" />
- <ctl name="QUAT_TDM_RX_0 Audio Mixer MultiMedia1" value="1" />
- <ctl name="QUIN_TDM_RX_0 Channels" value="Two" />
- <ctl name="QUIN_TDM_RX_0 Audio Mixer MultiMedia1" value="1" />
</path>
<path name="sys-notification-playback">
diff --git a/configs/msmsteppe/msmsteppe.mk b/configs/msmsteppe/msmsteppe.mk
index 5b53343..2940d4b 100644
--- a/configs/msmsteppe/msmsteppe.mk
+++ b/configs/msmsteppe/msmsteppe.mk
@@ -298,6 +298,11 @@
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio.flac.sw.decoder.24bit=true
+#timeout crash duration set to 20sec before system is ready.
+#timeout duration updates to default timeout of 5sec once the system is ready.
+PRODUCT_PRODUCT_PROPERTIES += \
+vendor.audio.hal.boot.timeout.ms=20000
+
#split a2dp DSP supported encoder list
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.bt.a2dp_offload_cap=sbc-aptx-aptxtws-aptxhd-aac
diff --git a/configs/msmsteppe_au/mixer_paths_adp.xml b/configs/msmsteppe_au/mixer_paths_adp.xml
index 2e06f21..b6db9c5 100644
--- a/configs/msmsteppe_au/mixer_paths_adp.xml
+++ b/configs/msmsteppe_au/mixer_paths_adp.xml
@@ -524,8 +524,6 @@
<path name="compress-offload-playback">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia4" value="1" />
- <ctl name="QUAT_TDM_RX_0 Channels" value="Six" />
- <ctl name="QUAT_TDM_RX_0 Audio Mixer MultiMedia4" value="1" />
</path>
<path name="compress-offload-playback speaker-protected">
@@ -601,8 +599,6 @@
<path name="compress-offload-playback2">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia7" value="1" />
- <ctl name="QUAT_TDM_RX_0 Channels" value="Six" />
- <ctl name="QUAT_TDM_RX_0 Audio Mixer MultiMedia7" value="1" />
</path>
<path name="compress-offload-playback2 display-port">
@@ -1146,8 +1142,6 @@
<path name="media-playback">
<ctl name="TERT_TDM_RX_0 Channels" value="Six" />
<ctl name="TERT_TDM_RX_0 Audio Mixer MultiMedia1" value="1" />
- <ctl name="QUAT_TDM_RX_0 Channels" value="Six" />
- <ctl name="QUAT_TDM_RX_0 Audio Mixer MultiMedia1" value="1" />
</path>
<path name="sys-notification-playback">
diff --git a/configs/sdm660/sdm660.mk b/configs/sdm660/sdm660.mk
index 6e0d066..3707cb8 100644
--- a/configs/sdm660/sdm660.mk
+++ b/configs/sdm660/sdm660.mk
@@ -227,6 +227,11 @@
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio.flac.sw.decoder.24bit=true
+#timeout crash duration set to 20sec before system is ready.
+#timeout duration updates to default timeout of 5sec once the system is ready.
+PRODUCT_PRODUCT_PROPERTIES += \
+vendor.audio.hal.boot.timeout.ms=20000
+
#split a2dp DSP supported encoder list
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.bt.a2dp_offload_cap=sbc-aptx-aptxhd-aac
diff --git a/configs/sdm710/sdm710.mk b/configs/sdm710/sdm710.mk
index 7f119dd..167dfcf 100644
--- a/configs/sdm710/sdm710.mk
+++ b/configs/sdm710/sdm710.mk
@@ -312,6 +312,11 @@
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio.flac.sw.decoder.24bit=true
+#timeout crash duration set to 20sec before system is ready.
+#timeout duration updates to default timeout of 5sec once the system is ready.
+PRODUCT_PRODUCT_PROPERTIES += \
+vendor.audio.hal.boot.timeout.ms=20000
+
#split a2dp DSP supported encoder list
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.bt.a2dp_offload_cap=sbc-aptx-aptxhd-aac-ldac
diff --git a/configs/sdm845/sdm845.mk b/configs/sdm845/sdm845.mk
index b0eef83..80291aa 100644
--- a/configs/sdm845/sdm845.mk
+++ b/configs/sdm845/sdm845.mk
@@ -249,6 +249,11 @@
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio.flac.sw.decoder.24bit=true
+#timeout crash duration set to 20sec before system is ready.
+#timeout duration updates to default timeout of 5sec once the system is ready.
+PRODUCT_PRODUCT_PROPERTIES += \
+vendor.audio.hal.boot.timeout.ms=20000
+
#split a2dp DSP supported encoder list
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.bt.a2dp_offload_cap=sbc-aptx-aptxtws-aptxhd-aac-ldac
diff --git a/configs/trinket/trinket.mk b/configs/trinket/trinket.mk
index 3083575..cfe927f 100644
--- a/configs/trinket/trinket.mk
+++ b/configs/trinket/trinket.mk
@@ -200,6 +200,11 @@
PRODUCT_PROPERTY_OVERRIDES += \
vendor.audio.flac.sw.decoder.24bit=true
+#timeout crash duration set to 20sec before system is ready.
+#timeout duration updates to default timeout of 5sec once the system is ready.
+PRODUCT_PRODUCT_PROPERTIES += \
+vendor.audio.hal.boot.timeout.ms=20000
+
#split a2dp DSP supported encoder list
PRODUCT_PROPERTY_OVERRIDES += \
persist.vendor.bt.a2dp_offload_cap=sbc-aptx-aptxtws-aptxhd-aac
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 87d1ff6..5f53431 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -1633,6 +1633,15 @@
new_uc->dev d11 (a1), d2 (a2) B1, B2
resolution: compared to case 1, for this case, d1 and d11 are related
then need to do the same as case 2 to siwtch to new uc
+
+case 9
+ uc->dev d1 (a1), d2(a2) B1 B2
+ new_uc->dev d1 (a1), d22 (a2) B1, B2
+ resolution: disable enable uc-dev on d2 since backends match
+ we cannot enable two streams on two different devices if they
+ share the same backend. This is special case for combo use case
+ with a2dp and sco devices which uses same backend.
+ e.g. speaker-a2dp and speaker-btsco
*/
static snd_device_t derive_playback_snd_device(void * platform,
struct audio_usecase *uc,
@@ -1679,6 +1688,9 @@
if (platform_check_backends_match(d3[0], d3[1])) {
return d2; // case 5
} else {
+ if ((list_length(&a1) > 1) && (list_length(&a2) > 1) &&
+ platform_check_backends_match(d1, d2))
+ return d2; //case 9
if (list_length(&a1) > 1)
return d1; //case 7
// check if d1 is related to any of d3's
@@ -1735,7 +1747,8 @@
* with new AFE encoder format based on a2dp state
*/
if ((SND_DEVICE_OUT_BT_A2DP == snd_device ||
- SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP == snd_device) &&
+ SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP == snd_device ||
+ SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_A2DP == snd_device) &&
audio_extn_a2dp_is_force_device_switch()) {
force_routing = true;
force_restart_session = true;
diff --git a/hal/msm8974/hw_info.c b/hal/msm8974/hw_info.c
index fd3aba3..651634c 100644
--- a/hal/msm8974/hw_info.c
+++ b/hal/msm8974/hw_info.c
@@ -531,6 +531,10 @@
sizeof("bengal-idp-snd-card"))) {
strlcpy(hw_info->name, "bengal", sizeof(hw_info->name));
hw_info->is_stereo_spkr = false;
+ } else if (!strncmp(snd_card_name, "bengal-scubaidp-snd-card",
+ sizeof("bengal-scubaidp-snd-card"))) {
+ strlcpy(hw_info->name, "bengal", sizeof(hw_info->name));
+ hw_info->is_stereo_spkr = false;
} else if (!strncmp(snd_card_name, "kona-mtp-snd-card",
sizeof("kona-mtp-snd-card"))) {
strlcpy(hw_info->name, "kona", sizeof(hw_info->name));
@@ -820,6 +824,29 @@
}
}
+static void update_hardware_info_msm8952(struct hardware_info *hw_info, const char *snd_card_name)
+{
+ if (!strcmp(snd_card_name, "msm8952-snd-card")) {
+ strlcpy(hw_info->name, "msm8952", sizeof(hw_info->name));
+ } else if (!strcmp(snd_card_name, "msm8952-snd-card-mtp")) {
+ strlcpy(hw_info->name, "msm8952", sizeof(hw_info->name));
+ } else if (!strcmp(snd_card_name, "msm8952-tomtom-snd-card")) {
+ strlcpy(hw_info->name, "msm8952", sizeof(hw_info->name));
+ } else if (!strcmp(snd_card_name, "msm8952-tasha-snd-card")) {
+ strlcpy(hw_info->name, "msm8952", sizeof(hw_info->name));
+ } else if (!strcmp(snd_card_name, "msm8952-tashalite-snd-card")) {
+ strlcpy(hw_info->name, "msm8952", sizeof(hw_info->name));
+ } else if (!strcmp(snd_card_name, "msm8952-skum-snd-card")) {
+ strlcpy(hw_info->name, "msm8952", sizeof(hw_info->name));
+ } else if (!strcmp(snd_card_name, "msm8952-sku1-snd-card")) {
+ strlcpy(hw_info->name, "msm8937", sizeof(hw_info->name));
+ } else if (!strcmp(snd_card_name, "msm8952-sku2-snd-card")) {
+ strlcpy(hw_info->name, "msm8937", sizeof(hw_info->name));
+ } else if (!strcmp(snd_card_name, "msm8952-sku3-tasha-snd-card")) {
+ strlcpy(hw_info->name, "msm8952", sizeof(hw_info->name));
+ }
+}
+
void *hw_info_init(const char *snd_card_name)
{
struct hardware_info *hw_info;
@@ -898,6 +925,9 @@
} else if (strstr(snd_card_name, "msm8953")) {
ALOGV("MSM8953 - variant soundcard");
update_hardware_info_msm8953(hw_info, snd_card_name);
+ } else if (strstr(snd_card_name, "msm8952")) {
+ ALOGV("MSM8952 - variant soundcard");
+ update_hardware_info_msm8952(hw_info, snd_card_name);
} else {
ALOGE("%s: Unsupported target %s:",__func__, snd_card_name);
free(hw_info);
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 029afb0..f8f0d69 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -72,6 +72,7 @@
#define PLATFORM_INFO_XML_PATH_I2S "/etc/audio_platform_info_extcodec.xml"
#define PLATFORM_INFO_XML_PATH_WSA "/etc/audio_platform_info_wsa.xml"
#define PLATFORM_INFO_XML_PATH_TDM "/etc/audio_platform_info_tdm.xml"
+#define PLATFORM_INFO_XML_PATH_SCUBA_IDP "/etc/audio_platform_info_scubaidp.xml"
#else
#define PLATFORM_INFO_XML_PATH_INTCODEC "/vendor/etc/audio_platform_info_intcodec.xml"
#define PLATFORM_INFO_XML_PATH_SKUSH "/vendor/etc/audio_platform_info_skush.xml"
@@ -84,6 +85,7 @@
#define PLATFORM_INFO_XML_PATH_I2S "/vendor/etc/audio_platform_info_i2s.xml"
#define PLATFORM_INFO_XML_PATH_WSA "/vendor/etc/audio_platform_info_wsa.xml"
#define PLATFORM_INFO_XML_PATH_TDM "/vendor/etc/audio_platform_info_tdm.xml"
+#define PLATFORM_INFO_XML_PATH_SCUBA_IDP "/vendor/etc/audio_platform_info_scubaidp.xml"
#endif
#include <linux/msm_audio.h>
@@ -1792,6 +1794,8 @@
sizeof("atoll-qrd-snd-card")) ||
!strncmp(snd_card_name, "bengal-idp-snd-card",
sizeof("bengal-idp-snd-card")) ||
+ !strncmp(snd_card_name, "bengal-scubaidp-snd-card",
+ sizeof("bengal-scubaidp-snd-card")) ||
!strncmp(snd_card_name, "bengal-qrd-snd-card",
sizeof("bengal-qrd-snd-card")) ||
!strncmp(snd_card_name, "msm8937-snd-card-mtp",
@@ -2304,6 +2308,8 @@
backend_tag_table[SND_DEVICE_IN_BT_A2DP] = strdup("bt-a2dp-cap");
backend_tag_table[SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP] = strdup("speaker-and-bt-a2dp");
backend_tag_table[SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_A2DP] = strdup("speaker-safe-and-bt-a2dp");
+ backend_tag_table[SND_DEVICE_OUT_SPEAKER_SAFE_AND_HEADPHONES] = strdup("speaker-safe-and-headphones");
+ backend_tag_table[SND_DEVICE_OUT_SPEAKER_SAFE_AND_LINE] = strdup("speaker-safe-and-line");
backend_tag_table[SND_DEVICE_OUT_USB_HEADSET_SPEC] = strdup("usb-headset");
backend_tag_table[SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_HEADPHONES] = strdup("speaker-and-headphones");
backend_tag_table[SND_DEVICE_OUT_VOICE_SPEAKER_AND_VOICE_ANC_HEADSET] = strdup("speaker-and-headphones");
@@ -3350,6 +3356,9 @@
else if (!strncmp(snd_card_name, "bengal-qrd-snd-card",
sizeof("bengal-qrd-snd-card")))
platform_info_init(PLATFORM_INFO_XML_PATH_QRD, my_data, PLATFORM);
+ else if (!strncmp(snd_card_name, "bengal-scubaidp-snd-card",
+ sizeof("bengal-scubaidp-snd-card")))
+ platform_info_init(PLATFORM_INFO_XML_PATH_SCUBA_IDP, my_data, PLATFORM);
else if (!strncmp(snd_card_name, "qcs405-wsa-snd-card",
sizeof("qcs405-wsa-snd-card")))
platform_info_init(PLATFORM_INFO_XML_PATH_WSA, my_data, PLATFORM);
@@ -3719,7 +3728,8 @@
if (default_rx_backend)
free(default_rx_backend);
default_rx_backend = strdup("WSA_CDC_DMA_RX_0");
- if(!strncmp(snd_card_name, "bengal", strlen("bengal"))) {
+ if(!strncmp(snd_card_name, "bengal", strlen("bengal")) &&
+ strncmp(snd_card_name, "bengal-scuba", strlen("bengal-scuba"))) {
my_data->current_backend_cfg[DEFAULT_CODEC_BACKEND].bitwidth_mixer_ctl =
strdup("RX_CDC_DMA_RX_1 Format");
my_data->current_backend_cfg[DEFAULT_CODEC_BACKEND].samplerate_mixer_ctl =
@@ -3727,6 +3737,9 @@
default_rx_backend = strdup("RX_CDC_DMA_RX_1");
my_data->is_multiple_sample_rate_combo_supported = false;
}
+
+ if (!strncmp(snd_card_name, "bengal-scuba", strlen("bengal-scuba")))
+ my_data->is_multiple_sample_rate_combo_supported = false;
} else if (!strncmp(snd_card_name, "sdm660", strlen("sdm660")) ||
!strncmp(snd_card_name, "sdm670", strlen("sdm670")) ||
!strncmp(snd_card_name, "qcs605", strlen("qcs605"))) {