Merge "hal: add voice stereo speaker(-protected) with vbat"
diff --git a/configs/lahaina/audio_platform_info.xml b/configs/lahaina/audio_platform_info.xml
index dc1cbf1..bafbb34 100644
--- a/configs/lahaina/audio_platform_info.xml
+++ b/configs/lahaina/audio_platform_info.xml
@@ -174,6 +174,8 @@
<device name="SND_DEVICE_IN_HANDSET_GENERIC_QMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO" interface="WSA_CDC_DMA_RX_0"/>
+ <device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT" interface="WSA_CDC_DMA_RX_0"/>
+ <device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_VBAT" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT" interface="WSA_CDC_DMA_RX_0"/>
diff --git a/configs/lahaina/audio_platform_info_hdk.xml b/configs/lahaina/audio_platform_info_hdk.xml
index 3c074af..fe0446a 100644
--- a/configs/lahaina/audio_platform_info_hdk.xml
+++ b/configs/lahaina/audio_platform_info_hdk.xml
@@ -188,6 +188,8 @@
<device name="SND_DEVICE_IN_HANDSET_GENERIC_QMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO" interface="WSA_CDC_DMA_RX_0"/>
+ <device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT" interface="WSA_CDC_DMA_RX_0"/>
+ <device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_VBAT" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT" interface="WSA_CDC_DMA_RX_0"/>
diff --git a/configs/lahaina/audio_platform_info_intcodec.xml b/configs/lahaina/audio_platform_info_intcodec.xml
index fc4e9eb..64e6cef 100644
--- a/configs/lahaina/audio_platform_info_intcodec.xml
+++ b/configs/lahaina/audio_platform_info_intcodec.xml
@@ -183,6 +183,7 @@
<device name="SND_DEVICE_IN_HANDSET_GENERIC_QMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO" interface="WSA_CDC_DMA_RX_0"/>
+ <device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_VBAT" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT" interface="WSA_CDC_DMA_RX_0"/>
@@ -197,6 +198,7 @@
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED" interface="WSA_CDC_DMA_RX_0"/>
+ <device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED_VBAT" interface="WSA_CDC_DMA_RX_0"/>
diff --git a/configs/lahaina/audio_platform_info_qrd.xml b/configs/lahaina/audio_platform_info_qrd.xml
index e87b3aa..6d45569 100644
--- a/configs/lahaina/audio_platform_info_qrd.xml
+++ b/configs/lahaina/audio_platform_info_qrd.xml
@@ -182,6 +182,7 @@
<device name="SND_DEVICE_IN_HANDSET_GENERIC_QMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO" interface="WSA_CDC_DMA_RX_0"/>
+ <device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_VBAT" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT" interface="WSA_CDC_DMA_RX_0"/>
@@ -196,6 +197,7 @@
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED" interface="WSA_CDC_DMA_RX_0"/>
+ <device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED_VBAT" interface="WSA_CDC_DMA_RX_0"/>
diff --git a/configs/lahaina/audio_platform_info_shimaidp.xml b/configs/lahaina/audio_platform_info_shimaidp.xml
index 68287fc..89a6f28 100644
--- a/configs/lahaina/audio_platform_info_shimaidp.xml
+++ b/configs/lahaina/audio_platform_info_shimaidp.xml
@@ -177,6 +177,8 @@
<device name="SND_DEVICE_IN_HANDSET_GENERIC_QMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO" interface="WSA_CDC_DMA_RX_0"/>
+ <device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT" interface="WSA_CDC_DMA_RX_0"/>
+ <device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_VBAT" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT" interface="WSA_CDC_DMA_RX_0"/>
diff --git a/configs/lahaina/audio_platform_info_shimaqrd.xml b/configs/lahaina/audio_platform_info_shimaqrd.xml
index 38f4129..6154ffc 100644
--- a/configs/lahaina/audio_platform_info_shimaqrd.xml
+++ b/configs/lahaina/audio_platform_info_shimaqrd.xml
@@ -178,6 +178,8 @@
<device name="SND_DEVICE_IN_HANDSET_GENERIC_QMIC" interface="TX_CDC_DMA_TX_3"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO" interface="WSA_CDC_DMA_RX_0"/>
+ <device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT" interface="WSA_CDC_DMA_RX_0"/>
+ <device name="SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_VBAT" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2" interface="WSA_CDC_DMA_RX_0"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT" interface="WSA_CDC_DMA_RX_0"/>
diff --git a/configs/lahaina/mixer_paths.xml b/configs/lahaina/mixer_paths.xml
index 57b3553..e216047 100644
--- a/configs/lahaina/mixer_paths.xml
+++ b/configs/lahaina/mixer_paths.xml
@@ -2143,6 +2143,18 @@
<ctl name="Voip_Tx Mixer USB_AUDIO_TX_Voip" value="1" />
</path>
+ <path name="compress-voip-call voice-speaker-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
+ <path name="compress-voip-call voice-speaker-2-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
+ <path name="compress-voip-call voice-speaker-stereo-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
<path name="voicemmode1-call">
<ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="1" />
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
@@ -2216,6 +2228,18 @@
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
</path>
+ <path name="voicemmode1-call voice-speaker-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
+ <path name="voicemmode1-call voice-speaker-2-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
+ <path name="voicemmode1-call voice-speaker-stereo-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
<path name="voicemmode2-call">
<ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="1" />
<ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="1" />
@@ -2289,6 +2313,18 @@
<ctl name="VoiceMMode2_Tx Mixer PROXY_TX_MMode2" value="1" />
</path>
+ <path name="voicemmode2-call voice-speaker-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
+ <path name="voicemmode2-call voice-speaker-2-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
+ <path name="voicemmode2-call voice-speaker-stereo-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
<!-- VoIP Rx settings -->
<path name="audio-playback-voip">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
@@ -2713,6 +2749,10 @@
<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="voice-speaker-protected-vbat">
<path name="voice-speaker-protected" />
<ctl name="WSA_RX INT0 VBAT WSA RX0 VBAT Enable" value="1" />
@@ -2849,6 +2889,10 @@
<path name="speaker-vbat-mono-2" />
</path>
+ <path name="voice-speaker-stereo-vbat">
+ <path name="speaker-vbat" />
+ </path>
+
<path name="voice-speaker-mic">
<path name="speaker-mic" />
</path>
diff --git a/configs/lahaina/mixer_paths_cdp.xml b/configs/lahaina/mixer_paths_cdp.xml
index 19afa37..a37e135 100644
--- a/configs/lahaina/mixer_paths_cdp.xml
+++ b/configs/lahaina/mixer_paths_cdp.xml
@@ -2011,6 +2011,18 @@
<ctl name="Voip_Tx Mixer USB_AUDIO_TX_Voip" value="1" />
</path>
+ <path name="compress-voip-call voice-speaker-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
+ <path name="compress-voip-call voice-speaker-2-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
+ <path name="compress-voip-call voice-speaker-stereo-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
<path name="voicemmode1-call">
<ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="1" />
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
@@ -2074,6 +2086,18 @@
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
</path>
+ <path name="voicemmode1-call voice-speaker-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
+ <path name="voicemmode1-call voice-speaker-2-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
+ <path name="voicemmode1-call voice-speaker-stereo-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
<path name="voicemmode2-call">
<ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="1" />
<ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="1" />
@@ -2137,6 +2161,18 @@
<ctl name="VoiceMMode2_Tx Mixer PROXY_TX_MMode2" value="1" />
</path>
+ <path name="voicemmode2-call voice-speaker-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
+ <path name="voicemmode2-call voice-speaker-2-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
+ <path name="voicemmode2-call voice-speaker-stereo-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
<!-- VoIP Rx settings -->
<path name="audio-playback-voip">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
@@ -2606,6 +2642,10 @@
<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">
</path>
@@ -2733,6 +2773,10 @@
<path name="speaker-vbat-mono-2" />
</path>
+ <path name="voice-speaker-stereo-vbat">
+ <path name="speaker-vbat" />
+ </path>
+
<path name="voice-speaker-mic">
<path name="speaker-mic" />
</path>
diff --git a/configs/lahaina/mixer_paths_hdk.xml b/configs/lahaina/mixer_paths_hdk.xml
index f7f1e20..16ca341 100644
--- a/configs/lahaina/mixer_paths_hdk.xml
+++ b/configs/lahaina/mixer_paths_hdk.xml
@@ -2167,6 +2167,18 @@
<ctl name="Voip_Tx Mixer USB_AUDIO_TX_Voip" value="1" />
</path>
+ <path name="compress-voip-call voice-speaker-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
+ <path name="compress-voip-call voice-speaker-2-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
+ <path name="compress-voip-call voice-speaker-stereo-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
<path name="voicemmode1-call">
<ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="1" />
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
@@ -2245,6 +2257,18 @@
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
</path>
+ <path name="voicemmode1-call voice-speaker-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
+ <path name="voicemmode1-call voice-speaker-2-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
+ <path name="voicemmode1-call voice-speaker-stereo-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
<path name="voicemmode2-call">
<ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="1" />
<ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="1" />
@@ -2323,6 +2347,18 @@
<ctl name="VoiceMMode2_Tx Mixer PROXY_TX_MMode2" value="1" />
</path>
+ <path name="voicemmode2-call voice-speaker-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
+ <path name="voicemmode2-call voice-speaker-2-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
+ <path name="voicemmode2-call voice-speaker-stereo-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
<!-- VoIP Rx settings -->
<path name="audio-playback-voip">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
@@ -2725,6 +2761,10 @@
<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">
</path>
@@ -2871,6 +2911,10 @@
<path name="speaker-vbat-mono-2" />
</path>
+ <path name="voice-speaker-stereo-vbat">
+ <path name="speaker-vbat" />
+ </path>
+
<path name="voice-speaker-mic">
<path name="speaker-mic" />
</path>
diff --git a/configs/lahaina/mixer_paths_qrd.xml b/configs/lahaina/mixer_paths_qrd.xml
index 0198858..392a9db 100644
--- a/configs/lahaina/mixer_paths_qrd.xml
+++ b/configs/lahaina/mixer_paths_qrd.xml
@@ -2135,6 +2135,18 @@
<ctl name="Voip_Tx Mixer USB_AUDIO_TX_Voip" value="1" />
</path>
+ <path name="compress-voip-call voice-speaker-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
+ <path name="compress-voip-call voice-speaker-2-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
+ <path name="compress-voip-call voice-speaker-stereo-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
<path name="voicemmode1-call">
<ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="1" />
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
@@ -2208,6 +2220,18 @@
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
</path>
+ <path name="voicemmode1-call voice-speaker-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
+ <path name="voicemmode1-call voice-speaker-2-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
+ <path name="voicemmode1-call voice-speaker-stereo-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
<path name="voicemmode2-call">
<ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="1" />
<ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="1" />
@@ -2281,6 +2305,18 @@
<ctl name="VoiceMMode2_Tx Mixer PROXY_TX_MMode2" value="1" />
</path>
+ <path name="voicemmode2-call voice-speaker-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
+ <path name="voicemmode2-call voice-speaker-2-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
+ <path name="voicemmode2-call voice-speaker-stereo-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
<!-- VoIP Rx settings -->
<path name="audio-playback-voip">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
@@ -2737,6 +2773,10 @@
<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">
</path>
@@ -2865,6 +2905,10 @@
<path name="speaker-vbat-mono-2" />
</path>
+ <path name="voice-speaker-stereo-vbat">
+ <path name="speaker-vbat" />
+ </path>
+
<path name="voice-speaker-mic">
<path name="speaker-mic" />
</path>
diff --git a/configs/lahaina/mixer_paths_shimaidp.xml b/configs/lahaina/mixer_paths_shimaidp.xml
index 35fc799..64982cf 100644
--- a/configs/lahaina/mixer_paths_shimaidp.xml
+++ b/configs/lahaina/mixer_paths_shimaidp.xml
@@ -2086,6 +2086,18 @@
<ctl name="Voip_Tx Mixer USB_AUDIO_TX_Voip" value="1" />
</path>
+ <path name="compress-voip-call voice-speaker-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
+ <path name="compress-voip-call voice-speaker-2-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
+ <path name="compress-voip-call voice-speaker-stereo-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
<path name="voicemmode1-call">
<ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="1" />
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
@@ -2159,6 +2171,18 @@
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
</path>
+ <path name="voicemmode1-call voice-speaker-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
+ <path name="voicemmode1-call voice-speaker-2-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
+ <path name="voicemmode1-call voice-speaker-stereo-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
<path name="voicemmode2-call">
<ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="1" />
<ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="1" />
@@ -2232,6 +2256,18 @@
<ctl name="VoiceMMode2_Tx Mixer PROXY_TX_MMode2" value="1" />
</path>
+ <path name="voicemmode2-call voice-speaker-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
+ <path name="voicemmode2-call voice-speaker-2-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
+ <path name="voicemmode2-call voice-speaker-stereo-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
<!-- VoIP Rx settings -->
<path name="audio-playback-voip">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
@@ -2662,6 +2698,10 @@
<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">
</path>
@@ -2775,6 +2815,10 @@
<path name="speaker-vbat-mono-2" />
</path>
+ <path name="voice-speaker-stereo-vbat">
+ <path name="speaker-vbat" />
+ </path>
+
<path name="voice-speaker-mic">
<path name="speaker-mic" />
</path>
diff --git a/configs/lahaina/mixer_paths_shimaidps.xml b/configs/lahaina/mixer_paths_shimaidps.xml
index 3e16615..1008f2d 100644
--- a/configs/lahaina/mixer_paths_shimaidps.xml
+++ b/configs/lahaina/mixer_paths_shimaidps.xml
@@ -1975,6 +1975,18 @@
<ctl name="Voip_Tx Mixer USB_AUDIO_TX_Voip" value="1" />
</path>
+ <path name="compress-voip-call voice-speaker-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
+ <path name="compress-voip-call voice-speaker-2-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
+ <path name="compress-voip-call voice-speaker-stereo-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
<path name="voicemmode1-call">
<ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="1" />
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
@@ -2038,6 +2050,18 @@
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
</path>
+ <path name="voicemmode1-call voice-speaker-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
+ <path name="voicemmode1-call voice-speaker-2-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
+ <path name="voicemmode1-call voice-speaker-stereo-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
<path name="voicemmode2-call">
<ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="1" />
<ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="1" />
@@ -2101,6 +2125,18 @@
<ctl name="VoiceMMode2_Tx Mixer PROXY_TX_MMode2" value="1" />
</path>
+ <path name="voicemmode2-call voice-speaker-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
+ <path name="voicemmode2-call voice-speaker-2-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
+ <path name="voicemmode2-call voice-speaker-stereo-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
<!-- VoIP Rx settings -->
<path name="audio-playback-voip">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
@@ -2548,6 +2584,10 @@
<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">
</path>
@@ -2675,6 +2715,10 @@
<path name="speaker-vbat-mono-2" />
</path>
+ <path name="voice-speaker-stereo-vbat">
+ <path name="speaker-vbat" />
+ </path>
+
<path name="voice-speaker-mic">
<path name="speaker-mic" />
</path>
diff --git a/configs/lahaina/mixer_paths_shimaqrd.xml b/configs/lahaina/mixer_paths_shimaqrd.xml
index a587377..8b7353c 100644
--- a/configs/lahaina/mixer_paths_shimaqrd.xml
+++ b/configs/lahaina/mixer_paths_shimaqrd.xml
@@ -2164,6 +2164,18 @@
<ctl name="Voip_Tx Mixer USB_AUDIO_TX_Voip" value="1" />
</path>
+ <path name="compress-voip-call voice-speaker-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
+ <path name="compress-voip-call voice-speaker-2-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
+ <path name="compress-voip-call voice-speaker-stereo-vbat">
+ <path name="compress-voip-call"/>
+ </path>
+
<path name="voicemmode1-call">
<ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode1" value="1" />
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
@@ -2242,6 +2254,18 @@
<ctl name="VoiceMMode1_Tx Mixer TX_CDC_DMA_TX_3_MMode1" value="1" />
</path>
+ <path name="voicemmode1-call voice-speaker-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
+ <path name="voicemmode1-call voice-speaker-2-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
+ <path name="voicemmode1-call voice-speaker-stereo-vbat">
+ <path name="voicemmode1-call"/>
+ </path>
+
<path name="voicemmode2-call">
<ctl name="WSA_CDC_DMA_RX_0_Voice Mixer VoiceMMode2" value="1" />
<ctl name="VoiceMMode2_Tx Mixer TX_CDC_DMA_TX_3_MMode2" value="1" />
@@ -2320,6 +2344,18 @@
<ctl name="VoiceMMode2_Tx Mixer PROXY_TX_MMode2" value="1" />
</path>
+ <path name="voicemmode2-call voice-speaker-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
+ <path name="voicemmode2-call voice-speaker-2-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
+ <path name="voicemmode2-call voice-speaker-stereo-vbat">
+ <path name="voicemmode2-call"/>
+ </path>
+
<!-- VoIP Rx settings -->
<path name="audio-playback-voip">
<ctl name="WSA_CDC_DMA_RX_0 Audio Mixer MultiMedia10" value="1" />
@@ -2643,7 +2679,6 @@
<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>
@@ -2745,6 +2780,10 @@
<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">
</path>
@@ -2869,6 +2908,10 @@
<path name="speaker-vbat-mono-2" />
</path>
+ <path name="voice-speaker-stereo-vbat">
+ <path name="speaker-vbat" />
+ </path>
+
<path name="voice-speaker-mic">
<path name="speaker-mic" />
</path>
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 4ee49c4..d9957ef 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -442,6 +442,7 @@
[SND_DEVICE_OUT_VOICE_HANDSET] = "voice-handset",
[SND_DEVICE_OUT_VOICE_SPEAKER] = "voice-speaker",
[SND_DEVICE_OUT_VOICE_SPEAKER_STEREO] = "voice-speaker-stereo",
+ [SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT] = "vbat-voice-speaker-stereo",
[SND_DEVICE_OUT_VOICE_SPEAKER_WSA] = "wsa-voice-speaker",
[SND_DEVICE_OUT_VOICE_SPEAKER_VBAT] = "vbat-voice-speaker",
[SND_DEVICE_OUT_VOICE_SPEAKER_2] = "voice-speaker-2",
@@ -481,6 +482,7 @@
[SND_DEVICE_OUT_SPEAKER_PROTECTED] = "speaker-protected",
[SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED] = "voice-speaker-protected",
[SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED] = "voice-speaker-stereo-protected",
+ [SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT] = "voice-speaker-stereo-protected-vbat",
[SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED] = "voice-speaker-2-protected",
[SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT] = "speaker-protected-vbat",
[SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT] = "voice-speaker-protected-vbat",
@@ -625,6 +627,7 @@
[SND_DEVICE_OUT_VOICE_LINE] = 10,
[SND_DEVICE_OUT_VOICE_SPEAKER] = 14,
[SND_DEVICE_OUT_VOICE_SPEAKER_STEREO] = 15,
+ [SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT] = 15,
[SND_DEVICE_OUT_VOICE_SPEAKER_2] = 14,
[SND_DEVICE_OUT_VOICE_SPEAKER_WSA] = 135,
[SND_DEVICE_OUT_VOICE_SPEAKER_2_WSA] = 135,
@@ -667,6 +670,7 @@
[SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT] = 101,
[SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED_VBAT] = 101,
[SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED] = 124,
+ [SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT] = 124,
[SND_DEVICE_OUT_SPEAKER_PROTECTED_RAS] = 134,
[SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT_RAS] = 134,
[SND_DEVICE_OUT_VOIP_HANDSET] = 133,
@@ -783,6 +787,7 @@
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_WSA)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_VBAT)},
+ {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_2)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_2_WSA)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT)},
@@ -821,6 +826,7 @@
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED)},
+ {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT)},
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED_VBAT)},
@@ -1627,6 +1633,7 @@
backend_tag_table[SND_DEVICE_OUT_HEADPHONES_DSD] = strdup("headphones-dsd");
backend_tag_table[SND_DEVICE_OUT_HEADPHONES_44_1] = strdup("headphones-44.1");
backend_tag_table[SND_DEVICE_OUT_VOICE_SPEAKER_VBAT] = strdup("vbat-voice-speaker");
+ backend_tag_table[SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT] = strdup("vbat-voice-speaker-stereo");
backend_tag_table[SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT] = strdup("vbat-voice-speaker-2");
backend_tag_table[SND_DEVICE_OUT_BT_A2DP] = strdup("bt-a2dp");
backend_tag_table[SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP] = strdup("speaker-and-bt-a2dp");
@@ -1658,6 +1665,7 @@
hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER_VBAT] = strdup("SLIMBUS_0_RX");
hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER_2] = strdup("SLIMBUS_0_RX");
hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT] = strdup("SLIMBUS_0_RX");
+ hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT] = strdup("SLIMBUS_0_RX");
hw_interface_table[SND_DEVICE_OUT_VOICE_HEADPHONES] = strdup("SLIMBUS_6_RX");
hw_interface_table[SND_DEVICE_OUT_VOICE_LINE] = strdup("SLIMBUS_6_RX");
hw_interface_table[SND_DEVICE_OUT_HDMI] = strdup("HDMI");
@@ -1689,6 +1697,7 @@
hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED] = strdup("SLIMBUS_0_RX");
hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED] = strdup("SLIMBUS_0_RX");
hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED] = strdup("SLIMBUS_0_RX");
+ hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT] = strdup("SLIMBUS_0_RX");
hw_interface_table[SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT] = strdup("SLIMBUS_0_RX");
hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT] = strdup("SLIMBUS_0_RX");
hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED_VBAT] = strdup("SLIMBUS_0_RX");
@@ -3055,7 +3064,8 @@
}
if ((snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_VBAT ||
- snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT) &&
+ snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT ||
+ snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT) &&
!(usecase->type == VOICE_CALL || usecase->type == VOIP_CALL)) {
ALOGI("%s: Not adding vbat speaker device to non voice use cases", __func__);
return;
@@ -3799,6 +3809,7 @@
return ret;
if ((out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER ||
+ out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT ||
out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2 ||
out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_VBAT ||
out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT) &&
@@ -3842,6 +3853,8 @@
out_snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED;
else if (out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO)
out_snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED;
+ else if (out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT)
+ out_snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT;
else if (out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2 ||
out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2_WSA)
out_snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED;
@@ -3878,6 +3891,7 @@
if ((out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER ||
out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2 ||
out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO ||
+ out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT ||
out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_VBAT ||
out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT) &&
audio_extn_spkr_prot_is_enabled()) {
@@ -4393,7 +4407,9 @@
snd_device = SND_DEVICE_OUT_BT_A2DP;
} else if (devices & AUDIO_DEVICE_OUT_SPEAKER) {
if (my_data->is_vbat_speaker) {
- if (my_data->mono_speaker == SPKR_1)
+ if (my_data->voice_speaker_stereo)
+ snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT;
+ else if (my_data->mono_speaker == SPKR_1)
snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_VBAT;
else
snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT;
@@ -7930,6 +7946,7 @@
snd_device == SND_DEVICE_OUT_VOICE_SPEAKER ||
snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2 ||
snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO ||
+ snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT ||
snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_WSA ||
snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2_WSA) {
ret = true;
@@ -8014,6 +8031,7 @@
snd_device == SND_DEVICE_OUT_VOICE_SPEAKER ||
snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2 ||
snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO ||
+ snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT ||
snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_WSA ||
snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2_WSA) {
ret = true;
@@ -8051,6 +8069,9 @@
case SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT:
acdb_id = platform_get_snd_device_acdb_id(SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED_VBAT);
break;
+ case SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT:
+ acdb_id = platform_get_snd_device_acdb_id(SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT);
+ break;
default:
acdb_id = -EINVAL;
break;
@@ -8075,6 +8096,8 @@
return SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED;
case SND_DEVICE_OUT_VOICE_SPEAKER_STEREO:
return SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED;
+ case SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT:
+ return SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT;
case SND_DEVICE_OUT_SPEAKER_VBAT:
return SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT;
case SND_DEVICE_OUT_VOICE_SPEAKER_VBAT:
@@ -8092,6 +8115,7 @@
case SND_DEVICE_OUT_SPEAKER_PROTECTED:
case SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT:
case SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED:
+ case SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT:
return SND_DEVICE_IN_CAPTURE_VI_FEEDBACK;
case SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED:
case SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT:
diff --git a/hal/msm8916/platform.h b/hal/msm8916/platform.h
index 3c94532..f228b80 100644
--- a/hal/msm8916/platform.h
+++ b/hal/msm8916/platform.h
@@ -100,6 +100,7 @@
SND_DEVICE_OUT_VOICE_HANDSET,
SND_DEVICE_OUT_VOICE_SPEAKER,
SND_DEVICE_OUT_VOICE_SPEAKER_STEREO,
+ SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT,
SND_DEVICE_OUT_VOICE_SPEAKER_WSA,
SND_DEVICE_OUT_VOICE_SPEAKER_VBAT,
SND_DEVICE_OUT_VOICE_SPEAKER_2,
@@ -140,6 +141,7 @@
SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED,
SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED,
SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED,
+ SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT,
SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT,
SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT,
SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED_VBAT,
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 9550f5a..ce31cea 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -552,6 +552,7 @@
[SND_DEVICE_OUT_VOICE_HAC_HANDSET] = "voice-hac-handset",
[SND_DEVICE_OUT_VOICE_SPEAKER] = "voice-speaker",
[SND_DEVICE_OUT_VOICE_SPEAKER_STEREO] = "voice-speaker-stereo",
+ [SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT] = "voice-speaker-stereo-vbat",
[SND_DEVICE_OUT_VOICE_SPEAKER_WSA] = "wsa-voice-speaker",
[SND_DEVICE_OUT_VOICE_SPEAKER_VBAT] = "voice-speaker-vbat",
[SND_DEVICE_OUT_VOICE_SPEAKER_2] = "voice-speaker-2",
@@ -607,6 +608,7 @@
[SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED] = "voice-speaker-protected",
[SND_DEVICE_OUT_VOICE_SPEAKER_HFP] = "voice-speaker-hfp",
[SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED] = "voice-speaker-stereo-protected",
+ [SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT] = "voice-speaker-stereo-protected-vbat",
[SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED] = "voice-speaker-2-protected",
[SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT] = "speaker-protected-vbat",
[SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT] = "voice-speaker-protected-vbat",
@@ -847,6 +849,7 @@
[SND_DEVICE_OUT_VOICE_HANDSET] = 7,
[SND_DEVICE_OUT_VOICE_SPEAKER] = 14,
[SND_DEVICE_OUT_VOICE_SPEAKER_STEREO] = 15,
+ [SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT] = 15,
[SND_DEVICE_OUT_VOICE_SPEAKER_VBAT] = 14,
[SND_DEVICE_OUT_VOICE_SPEAKER_2] = 14,
[SND_DEVICE_OUT_VOICE_SPEAKER_WSA] = 135,
@@ -912,6 +915,7 @@
[SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT] = 101,
[SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED_VBAT] = 101,
[SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED] = 124,
+ [SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT] = 124,
[SND_DEVICE_OUT_SPEAKER_PROTECTED_RAS] = 134,
[SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT_RAS] = 134,
[SND_DEVICE_OUT_VOICE_HEARING_AID] = 45,
@@ -1096,6 +1100,7 @@
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_HANDSET)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_STEREO)},
+ {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_WSA)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_HFP)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_VBAT)},
@@ -1154,6 +1159,7 @@
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED)},
+ {TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT)},
{TO_NAME_INDEX(SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT)},
{TO_NAME_INDEX(SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED_VBAT)},
@@ -1848,6 +1854,7 @@
snd_device == SND_DEVICE_OUT_SPEAKER_VBAT ||
snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_VBAT ||
snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT ||
+ snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT ||
snd_device == SND_DEVICE_OUT_VOICE_SPEAKER ||
snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2 ||
snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO ||
@@ -2343,6 +2350,7 @@
backend_tag_table[SND_DEVICE_OUT_HEADPHONES_44_1] = strdup("headphones-44.1");
backend_tag_table[SND_DEVICE_OUT_VOICE_SPEAKER_VBAT] = strdup("voice-speaker-vbat");
backend_tag_table[SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT] = strdup("voice-speaker-2-vbat");
+ backend_tag_table[SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT] = strdup("voice-speaker-stereo-vbat");
backend_tag_table[SND_DEVICE_OUT_BT_A2DP] = strdup("bt-a2dp");
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");
@@ -2389,6 +2397,7 @@
hw_interface_table[SND_DEVICE_OUT_VOICE_HAC_HANDSET] = strdup("SLIMBUS_0_RX");
hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER] = strdup("SLIMBUS_0_RX");
hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER_STEREO] = strdup("SLIMBUS_0_RX");
+ hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT] = strdup("SLIMBUS_0_RX");
hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER_VBAT] = strdup("SLIMBUS_0_RX");
hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER_2] = strdup("SLIMBUS_0_RX");
hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT] = strdup("SLIMBUS_0_RX");
@@ -2445,6 +2454,7 @@
hw_interface_table[SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_SCO_SWB] = strdup("QUAT_TDM_RX_0-and-SLIMBUS_7_RX");
hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED] = strdup("SLIMBUS_0_RX");
hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED] = strdup("SLIMBUS_0_RX");
+ hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT] = strdup("SLIMBUS_0_RX");
hw_interface_table[SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT] = strdup("SLIMBUS_0_RX");
hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT] = strdup("SLIMBUS_0_RX");
hw_interface_table[SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED_VBAT] = strdup("SLIMBUS_0_RX");
@@ -4428,7 +4438,8 @@
}
if ((snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_VBAT ||
- snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT) &&
+ snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT ||
+ snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT) &&
!(usecase->type == VOICE_CALL || usecase->type == VOIP_CALL)) {
ALOGI("%s: Not adding vbat speaker device to non voice use cases", __func__);
return;
@@ -5521,6 +5532,7 @@
if ((out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER ||
out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO ||
+ out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT ||
out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2 ||
out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_VBAT ||
out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT) &&
@@ -5564,6 +5576,8 @@
out_snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED;
else if (out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO)
out_snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED;
+ else if (out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT)
+ out_snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT;
else if (out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_VBAT)
out_snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT;
else if (out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2 ||
@@ -5600,6 +5614,7 @@
if ((out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER ||
out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2 ||
out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO ||
+ out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT ||
out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_VBAT ||
out_snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT) &&
audio_extn_spkr_prot_is_enabled()) {
@@ -6507,7 +6522,12 @@
compare_device_type(&devices, AUDIO_DEVICE_OUT_SPEAKER_SAFE)) {
if (my_data->is_vbat_speaker || my_data->is_bcl_speaker) {
if (hw_info_is_stereo_spkr(my_data->hw_info)) {
- if (my_data->mono_speaker == SPKR_1)
+ if (my_data->fluence_type & FLUENCE_QUAD_MIC &&
+ hw_info_use_mono_spkr_for_qmic(my_data->hw_info))
+ snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_VBAT;
+ else if (my_data->voice_speaker_stereo)
+ snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT;
+ else if (my_data->mono_speaker == SPKR_1)
snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_VBAT;
else
snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT;
@@ -11516,6 +11536,7 @@
snd_device == SND_DEVICE_OUT_SPEAKER_VBAT ||
snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_VBAT ||
snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT ||
+ snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT ||
snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_STEREO ||
snd_device == SND_DEVICE_OUT_VOICE_SPEAKER ||
snd_device == SND_DEVICE_OUT_VOICE_SPEAKER_2 ||
@@ -11556,6 +11577,9 @@
case SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT:
acdb_id = platform_get_snd_device_acdb_id(SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED_VBAT);
break;
+ case SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT:
+ acdb_id = platform_get_snd_device_acdb_id(SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT);
+ break;
default:
acdb_id = -EINVAL;
break;
@@ -11589,6 +11613,8 @@
return SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT;
case SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT:
return SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED_VBAT;
+ case SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT:
+ return SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT;
default:
return snd_device;
}
@@ -11599,6 +11625,7 @@
case SND_DEVICE_OUT_SPEAKER_PROTECTED:
case SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT:
case SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED:
+ case SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT:
return SND_DEVICE_IN_CAPTURE_VI_FEEDBACK;
case SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED:
case SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT:
diff --git a/hal/msm8974/platform.h b/hal/msm8974/platform.h
index 16a5270..cec5b1e 100644
--- a/hal/msm8974/platform.h
+++ b/hal/msm8974/platform.h
@@ -82,6 +82,7 @@
SND_DEVICE_OUT_VOICE_HANDSET,
SND_DEVICE_OUT_VOICE_SPEAKER,
SND_DEVICE_OUT_VOICE_SPEAKER_STEREO,
+ SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_VBAT,
SND_DEVICE_OUT_VOICE_SPEAKER_VBAT,
SND_DEVICE_OUT_VOICE_SPEAKER_2,
SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT,
@@ -141,6 +142,7 @@
SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED,
SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED,
SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED,
+ SND_DEVICE_OUT_VOICE_SPEAKER_STEREO_PROTECTED_VBAT,
SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT,
SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT,
SND_DEVICE_OUT_VOICE_SPEAKER_2_PROTECTED_VBAT,