Merge "configs: msm8937: Add support for hfp pcm loopback id."
diff --git a/configs/lahaina/yupik_overlay/sound_trigger_mixer_paths_yupikidp_overlay.xml b/configs/lahaina/yupik_overlay/sound_trigger_mixer_paths_yupikidp_overlay.xml
index 5c8abb8..7a6e6cb 100644
--- a/configs/lahaina/yupik_overlay/sound_trigger_mixer_paths_yupikidp_overlay.xml
+++ b/configs/lahaina/yupik_overlay/sound_trigger_mixer_paths_yupikidp_overlay.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--- Copyright (c) 2020, The Linux Foundation. All rights reserved. -->
+<!--- Copyright (c) 2020-2021, The Linux Foundation. All rights reserved. -->
<!--- -->
<!--- Redistribution and use in source and binary forms, with or without -->
<!--- modification, are permitted provided that the following conditions are -->
@@ -38,7 +38,7 @@
<ctl name="VA_CDC_DMA_TX_0 Channels" value="One"/>
<ctl name="VA_AIF1_CAP Mixer DEC0" value="1"/>
<ctl name="VA DEC0 MUX" value="MSM_DMIC"/>
- <ctl name="VA DMIC MUX0" value="DMIC0"/>
+ <ctl name="VA DMIC MUX0" value="DMIC3"/>
</path>
<path name="listen-ape-handset-dmic">
<ctl name="VA_CDC_DMA_TX_0 Channels" value="Two"/>
@@ -46,8 +46,8 @@
<ctl name="VA_AIF1_CAP Mixer DEC1" value="1"/>
<ctl name="VA DEC0 MUX" value="MSM_DMIC"/>
<ctl name="VA DEC1 MUX" value="MSM_DMIC"/>
- <ctl name="VA DMIC MUX0" value="DMIC0"/>
- <ctl name="VA DMIC MUX1" value="DMIC1"/>
+ <ctl name="VA DMIC MUX0" value="DMIC3"/>
+ <ctl name="VA DMIC MUX1" value="DMIC0"/>
</path>
<path name="listen-ape-handset-tmic">
<ctl name="VA_CDC_DMA_TX_0 Channels" value="Three"/>
@@ -57,9 +57,9 @@
<ctl name="VA DEC0 MUX" value="MSM_DMIC"/>
<ctl name="VA DEC1 MUX" value="MSM_DMIC"/>
<ctl name="VA DEC2 MUX" value="MSM_DMIC"/>
- <ctl name="VA DMIC MUX0" value="DMIC0"/>
- <ctl name="VA DMIC MUX1" value="DMIC2"/>
- <ctl name="VA DMIC MUX2" value="DMIC3"/>
+ <ctl name="VA DMIC MUX0" value="DMIC3"/>
+ <ctl name="VA DMIC MUX1" value="DMIC0"/>
+ <ctl name="VA DMIC MUX2" value="DMIC2"/>
</path>
<path name="listen-ape-handset-qmic">
<ctl name="VA_CDC_DMA_TX_0 Channels" value="Four"/>
@@ -71,9 +71,9 @@
<ctl name="VA DEC1 MUX" value="MSM_DMIC"/>
<ctl name="VA DEC2 MUX" value="MSM_DMIC"/>
<ctl name="VA DEC3 MUX" value="MSM_DMIC"/>
- <ctl name="VA DMIC MUX0" value="DMIC0"/>
- <ctl name="VA DMIC MUX1" value="DMIC1"/>
+ <ctl name="VA DMIC MUX0" value="DMIC3"/>
+ <ctl name="VA DMIC MUX1" value="DMIC0"/>
<ctl name="VA DMIC MUX2" value="DMIC2"/>
- <ctl name="VA DMIC MUX3" value="DMIC3"/>
+ <ctl name="VA DMIC MUX3" value="DMIC1"/>
</path>
</mixer>
diff --git a/configs/lahaina/yupik_overlay/sound_trigger_mixer_paths_yupikqrd_overlay.xml b/configs/lahaina/yupik_overlay/sound_trigger_mixer_paths_yupikqrd_overlay.xml
index 34cc1e6..9e94102 100644
--- a/configs/lahaina/yupik_overlay/sound_trigger_mixer_paths_yupikqrd_overlay.xml
+++ b/configs/lahaina/yupik_overlay/sound_trigger_mixer_paths_yupikqrd_overlay.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--- Copyright (c) 2020, The Linux Foundation. All rights reserved. -->
+<!--- Copyright (c) 2020-2021, The Linux Foundation. All rights reserved. -->
<!--- -->
<!--- Redistribution and use in source and binary forms, with or without -->
<!--- modification, are permitted provided that the following conditions are -->
@@ -41,9 +41,9 @@
<ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
<ctl name="VA SMIC MUX0" value="SWR_MIC1" />
<ctl name="ADC2 ChMap" value="SWRM_TX1_CH2" />
- <ctl name="ADC2_MIXER Switch" value="1" />
<ctl name="ADC2 MUX" value="INP3" />
<ctl name="HDR12 MUX" value="NO_HDR12" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
</path>
<path name="listen-ape-handset-mic-preproc">
<path name="listen-ape-handset-mic" />
@@ -55,17 +55,17 @@
<ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
<ctl name="VA SMIC MUX0" value="SWR_MIC1" />
<ctl name="ADC2 ChMap" value="SWRM_TX1_CH2" />
- <ctl name="ADC2_MIXER Switch" value="1" />
<ctl name="ADC2 MUX" value="INP3" />
<ctl name="HDR12 MUX" value="NO_HDR12" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
<ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
- <ctl name="VA DEC1 MUX" value="SWR_MIC0" />
+ <ctl name="VA DEC1 MUX" value="SWR_MIC" />
<ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
<ctl name="VA SMIC MUX1" value="SWR_MIC4" />
<ctl name="ADC3 ChMap" value="SWRM_TX2_CH1" />
- <ctl name="ADC3_MIXER Switch" value="1" />
<ctl name="ADC3 MUX" value="INP4" />
<ctl name="HDR34 MUX" value="NO_HDR34" />
+ <ctl name="ADC3_MIXER Switch" value="1" />
</path>
<path name="listen-ape-handset-tmic">
<ctl name="VA_CDC_DMA_TX_0 Channels" value="Three" />
@@ -74,9 +74,9 @@
<ctl name="VA_DEC0 MODE" value="ADC_LOW_PWR" />
<ctl name="VA SMIC MUX0" value="SWR_MIC1" />
<ctl name="ADC2 ChMap" value="SWRM_TX1_CH2" />
- <ctl name="ADC2_MIXER Switch" value="1" />
<ctl name="ADC2 MUX" value="INP3" />
<ctl name="HDR12 MUX" value="NO_HDR12" />
+ <ctl name="ADC2_MIXER Switch" value="1" />
<ctl name="VA_AIF1_CAP Mixer DEC1" value="1" />
<ctl name="VA DEC1 MUX" value="SWR_MIC" />
<ctl name="VA_DEC1 MODE" value="ADC_LOW_PWR" />
@@ -88,9 +88,9 @@
<ctl name="VA_DEC2 MODE" value="ADC_LOW_PWR" />
<ctl name="VA SMIC MUX2" value="SWR_MIC4" />
<ctl name="ADC3 ChMap" value="SWRM_TX2_CH1" />
- <ctl name="ADC3_MIXER Switch" value="1" />
<ctl name="ADC3 MUX" value="INP4" />
<ctl name="HDR34 MUX" value="NO_HDR34" />
+ <ctl name="ADC3_MIXER Switch" value="1" />
</path>
<path name="echo-reference">
<ctl name="AUDIO_REF_EC_UL1 MUX" value="WSA_CDC_DMA_RX_0"/>
diff --git a/configs/sdm660/audio_policy_configuration.xml b/configs/sdm660/audio_policy_configuration.xml
index 884aca8..1d70af6 100644
--- a/configs/sdm660/audio_policy_configuration.xml
+++ b/configs/sdm660/audio_policy_configuration.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Copyright (c) 2016-2020 The Linux Foundation. All rights reserved
+<!-- Copyright (c) 2016-2021 The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 The Android Open Source Project
@@ -163,6 +163,17 @@
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</mixPort>
+ <mixPort name="usb_surround_sound" role="sink">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
+ channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ <profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
+ samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
+ channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ <profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
+ samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
+ channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ </mixPort>
<mixPort name="voip_tx" role="sink"
flags="AUDIO_INPUT_FLAG_VOIP_TX">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -341,7 +352,9 @@
<route type="mix" sink="voice_rx"
sources="Telephony Rx"/>
<route type="mix" sink="primary input"
- sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner,USB Device In,USB Headset In"/>
+ sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner"/>
+ <route type="mix" sink="usb_surround_sound"
+ sources="USB Device In,USB Headset In"/>
<route type="mix" sink="voip_tx"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In"/>
<route type="mix" sink="surround_sound"
diff --git a/configs/sdm660/mixer_paths_mtp.xml b/configs/sdm660/mixer_paths_mtp.xml
index fba65eb..ccab771 100644
--- a/configs/sdm660/mixer_paths_mtp.xml
+++ b/configs/sdm660/mixer_paths_mtp.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2017, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2017, 2020-2021 The Linux Foundation. All rights reserved. -->
<!-- -->
<!-- Redistribution and use in source and binary forms, with or without -->
<!-- modification, are permitted provided that the following conditions are -->
@@ -3020,6 +3020,10 @@
<ctl name="USB_AUDIO_RX Audio Mixer MultiMedia2" value="1" />
</path>
+ <path name="hifi-record">
+ <ctl name="MultiMedia2 Mixer INT3_MI2S_TX" value="1" />
+ </path>
+
<path name="hifi-record usb-headset-mic">
<ctl name="MultiMedia2 Mixer USB_AUDIO_TX" value="1" />
</path>
diff --git a/configs/sdm710/audio_policy_configuration.xml b/configs/sdm710/audio_policy_configuration.xml
index d3bada4..57a3d7e 100644
--- a/configs/sdm710/audio_policy_configuration.xml
+++ b/configs/sdm710/audio_policy_configuration.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Copyright (c) 2016-2020, The Linux Foundation. All rights reserved
+<!-- Copyright (c) 2016-2021, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 The Android Open Source Project
@@ -172,6 +172,17 @@
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK"/>
</mixPort>
+ <mixPort name="usb_surround_sound" role="sink">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
+ channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ <profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
+ samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
+ channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ <profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
+ samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
+ channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ </mixPort>
<mixPort name="voip_tx" role="sink"
flags="AUDIO_INPUT_FLAG_VOIP_TX">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
@@ -349,7 +360,9 @@
<route type="mix" sink="voice_rx"
sources="Telephony Rx"/>
<route type="mix" sink="primary input"
- sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner,USB Device In,USB Headset In"/>
+ sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner"/>
+ <route type="mix" sink="usb_surround_sound"
+ sources="USB Device In,USB Headset In"/>
<route type="mix" sink="voip_tx"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In"/>
<route type="mix" sink="surround_sound"
diff --git a/configs/sdm845/audio_policy_configuration.xml b/configs/sdm845/audio_policy_configuration.xml
index 130e9f8..d1e77a7 100644
--- a/configs/sdm845/audio_policy_configuration.xml
+++ b/configs/sdm845/audio_policy_configuration.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<!-- Copyright (c) 2016-2020, The Linux Foundation. All rights reserved
+<!-- Copyright (c) 2016-2021, The Linux Foundation. All rights reserved
Not a Contribution.
-->
<!-- Copyright (C) 2015 The Android Open Source Project
@@ -161,6 +161,17 @@
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,16000,32000,48000" channelMasks="AUDIO_CHANNEL_OUT_MONO,AUDIO_CHANNEL_OUT_STEREO"/>
</mixPort>
+ <mixPort name="usb_surround_sound" role="sink">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
+ channelMasks="AUDIO_CHANNEL_IN_MONO,AUDIO_CHANNEL_IN_STEREO,AUDIO_CHANNEL_IN_FRONT_BACK,AUDIO_CHANNEL_INDEX_MASK_3,AUDIO_CHANNEL_INDEX_MASK_4,AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ <profile name="" format="AUDIO_FORMAT_PCM_32_BIT"
+ samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
+ channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ <profile name="" format="AUDIO_FORMAT_PCM_FLOAT"
+ samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000,88200,96000,176400,192000"
+ channelMasks="AUDIO_CHANNEL_IN_5POINT1,AUDIO_CHANNEL_INDEX_MASK_6,AUDIO_CHANNEL_IN_7POINT1,AUDIO_CHANNEL_INDEX_MASK_8"/>
+ </mixPort>
<mixPort name="primary input" role="sink">
<profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
samplingRates="8000,11025,12000,16000,22050,24000,32000,44100,48000"
@@ -336,7 +347,9 @@
<route type="mix" sink="voice_rx"
sources="Telephony Rx"/>
<route type="mix" sink="primary input"
- sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner,USB Device In,USB Headset In"/>
+ sources="Built-In Mic,Built-In Back Mic,Wired Headset Mic,BT SCO Headset Mic,FM Tuner"/>
+ <route type="mix" sink="usb_surround_sound"
+ sources="USB Device In,USB Headset In"/>
<route type="mix" sink="voip_tx"
sources="Built-In Mic,Built-In Back Mic,BT SCO Headset Mic,USB Device In,USB Headset In"/>
<route type="mix" sink="record_24"
diff --git a/hal/audio_extn/a2dp.c b/hal/audio_extn/a2dp.c
index d8bbdfe..148f53d 100644
--- a/hal/audio_extn/a2dp.c
+++ b/hal/audio_extn/a2dp.c
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2015-2020, The Linux Foundation. All rights reserved.
+* Copyright (c) 2015-2021, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -1168,16 +1168,32 @@
dlsym(a2dp.bt_lib_source_handle, "audio_stream_open");
a2dp.audio_source_start = (audio_source_start_t)
dlsym(a2dp.bt_lib_source_handle, "audio_start_stream");
+ if (a2dp.audio_source_start == NULL) {
+ a2dp.audio_source_start = (audio_source_start_t)
+ dlsym(a2dp.bt_lib_source_handle, "audio_stream_start");
+ }
a2dp.audio_get_enc_config = (audio_get_enc_config_t)
dlsym(a2dp.bt_lib_source_handle, "audio_get_codec_config");
a2dp.audio_source_suspend = (audio_source_suspend_t)
dlsym(a2dp.bt_lib_source_handle, "audio_suspend_stream");
+ if (a2dp.audio_source_suspend == NULL) {
+ a2dp.audio_source_suspend = (audio_source_suspend_t)
+ dlsym(a2dp.bt_lib_source_handle, "audio_stream_suspend");
+ }
a2dp.audio_source_handoff_triggered = (audio_source_handoff_triggered_t)
dlsym(a2dp.bt_lib_source_handle, "audio_handoff_triggered");
a2dp.clear_source_a2dpsuspend_flag = (clear_source_a2dpsuspend_flag_t)
dlsym(a2dp.bt_lib_source_handle, "clear_a2dpsuspend_flag");
+ if (a2dp.clear_source_a2dpsuspend_flag == NULL) {
+ a2dp.clear_source_a2dpsuspend_flag = (clear_source_a2dpsuspend_flag_t)
+ dlsym(a2dp.bt_lib_source_handle, "clear_a2dp_suspend_flag");
+ }
a2dp.audio_source_stop = (audio_source_stop_t)
dlsym(a2dp.bt_lib_source_handle, "audio_stop_stream");
+ if (a2dp.audio_source_stop == NULL) {
+ a2dp.audio_source_stop = (audio_source_stop_t)
+ dlsym(a2dp.bt_lib_source_handle, "audio_stream_stop");
+ }
a2dp.audio_source_close = (audio_source_close_t)
dlsym(a2dp.bt_lib_source_handle, "audio_stream_close");
a2dp.audio_source_check_a2dp_ready = (audio_source_check_a2dp_ready_t)