summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--configs/msm8953/audio_output_policy.conf7
-rw-r--r--configs/msm8953/audio_platform_info_intcodec.xml9
-rw-r--r--configs/msm8953/audio_platform_info_sku3_tasha.xml11
-rw-r--r--configs/msm8953/audio_platform_info_sku4.xml9
-rw-r--r--configs/msm8953/audio_platform_info_tasha.xml11
-rw-r--r--configs/msm8953/audio_platform_info_tashalite.xml11
-rw-r--r--configs/msm8953/mixer_paths_mtp.xml74
-rw-r--r--configs/msm8953/mixer_paths_sku3_tasha.xml62
-rw-r--r--configs/msm8953/mixer_paths_sku4.xml64
-rw-r--r--configs/msm8953/mixer_paths_tasha.xml70
-rw-r--r--configs/msm8953/mixer_paths_tashalite.xml70
-rw-r--r--configs/msm8953/msm8953.mk4
-rw-r--r--configs/sdm660/audio_policy_configuration.xml17
-rw-r--r--configs/sdm660/mixer_paths_mtp.xml6
-rw-r--r--configs/sdm710/audio_policy_configuration.xml17
-rw-r--r--configs/sdm845/audio_platform_info.xml4
-rw-r--r--configs/sdm845/audio_policy_configuration.xml27
-rw-r--r--configs/sdm845/sdm845.mk2
-rw-r--r--hal/audio_extn/utils.c12
-rw-r--r--hal/audio_hw.c29
20 files changed, 483 insertions, 33 deletions
diff --git a/configs/msm8953/audio_output_policy.conf b/configs/msm8953/audio_output_policy.conf
index d983d9a0..b19fbb03 100644
--- a/configs/msm8953/audio_output_policy.conf
+++ b/configs/msm8953/audio_output_policy.conf
@@ -18,6 +18,13 @@ outputs {
bit_width 16
app_type 69937
}
+ voip_rx {
+ flags AUDIO_OUTPUT_FLAG_VOIP_RX|AUDIO_OUTPUT_FLAG_DIRECT
+ formats AUDIO_FORMAT_PCM_16_BIT
+ sampling_rates 8000|16000|32000|48000
+ bit_width 16
+ app_type 69946
+ }
deep_buffer {
flags AUDIO_OUTPUT_FLAG_DEEP_BUFFER
formats AUDIO_FORMAT_PCM_16_BIT
diff --git a/configs/msm8953/audio_platform_info_intcodec.xml b/configs/msm8953/audio_platform_info_intcodec.xml
index 157d9983..557cd0f0 100644
--- a/configs/msm8953/audio_platform_info_intcodec.xml
+++ b/configs/msm8953/audio_platform_info_intcodec.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015 - 2016, 2018, 2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2016, 2018, 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 -->
@@ -53,6 +53,8 @@
<usecase name="USECASE_INCALL_REC_UPLINK" type="in" id="14" />
<usecase name="USECASE_INCALL_REC_DOWNLINK" type="in" id="14" />
<usecase name="USECASE_INCALL_REC_UPLINK_AND_DOWNLINK" type="in" id="14" />
+ <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="27" />
+ <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="27" />
</pcm_ids>
<config_params>
<param key="spkr_1_tz_name" value="wsa881x.0f"/>
@@ -64,6 +66,7 @@
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT" acdb_id="136"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT" acdb_id="136"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK" acdb_id="137"/>
+ <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" acdb_id="8"/>
</acdb_ids>
<backend_names>
@@ -165,6 +168,10 @@
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB" backend="speaker-and-bt-sco-wb" interface="PRI_MI2S_RX-and-INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO" backend="wsa-speaker-and-bt-sco" interface="PRI_MI2S_RX-and-INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB" backend="wsa-speaker-and-bt-sco-wb" interface="PRI_MI2S_RX-and-INT_BT_SCO_RX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB_NREC" interface="INT_BT_SCO_TX"/>
</backend_names>
<!-- below values are for ref purpose to OEM, doesn't contain actual hardware info on MTP -->
<microphone_characteristics>
diff --git a/configs/msm8953/audio_platform_info_sku3_tasha.xml b/configs/msm8953/audio_platform_info_sku3_tasha.xml
index d3cf6209..806584ec 100644
--- a/configs/msm8953/audio_platform_info_sku3_tasha.xml
+++ b/configs/msm8953/audio_platform_info_sku3_tasha.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015 - 2016, 2018, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2016, 2018, 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 -->
@@ -62,6 +62,8 @@
<usecase name="USECASE_INCALL_REC_UPLINK" type="in" id="14" />
<usecase name="USECASE_INCALL_REC_DOWNLINK" type="in" id="14" />
<usecase name="USECASE_INCALL_REC_UPLINK_AND_DOWNLINK" type="in" id="14" />
+ <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="28" />
+ <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="28" />
</pcm_ids>
<config_params>
<param key="native_audio_mode" value="src"/>
@@ -69,6 +71,9 @@
<param key="ffv_split_ec_ref_data" value="false"/>
<param key="ffv_ec_ref_channel_count" value="1"/>
</config_params>
+ <acdb_ids>
+ <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" acdb_id="8"/>
+ </acdb_ids>
<backend_names>
<device name="SND_DEVICE_OUT_BT_SCO_WB" interface="INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_BT_SCO" interface="INT_BT_SCO_RX"/>
@@ -87,6 +92,10 @@
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB" backend="speaker-and-bt-sco-wb" interface="SLIMBUS_0_RX--and-INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO" backend="wsa-speaker-and-bt-sco" interface="SLIMBUS_0_RX--and-INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB" backend="wsa-speaker-and-bt-sco-wb" interface="SLIMBUS_0_RX--and-INT_BT_SCO_RX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB_NREC" interface="INT_BT_SCO_TX"/>
</backend_names>
<!-- below values are for ref purpose to OEM, doesn't contain actual hardware info on MTP -->
<microphone_characteristics>
diff --git a/configs/msm8953/audio_platform_info_sku4.xml b/configs/msm8953/audio_platform_info_sku4.xml
index 8b211a75..d8487905 100644
--- a/configs/msm8953/audio_platform_info_sku4.xml
+++ b/configs/msm8953/audio_platform_info_sku4.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015 - 2016, 2018, 2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2016, 2018, 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 -->
@@ -52,6 +52,8 @@
<usecase name="USECASE_INCALL_REC_UPLINK" type="in" id="14" />
<usecase name="USECASE_INCALL_REC_DOWNLINK" type="in" id="14" />
<usecase name="USECASE_INCALL_REC_UPLINK_AND_DOWNLINK" type="in" id="14" />
+ <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="27" />
+ <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="27" />
</pcm_ids>
<config_params>
<param key="spkr_1_tz_name" value="wsa881x.0f"/>
@@ -63,6 +65,7 @@
<device name="SND_DEVICE_OUT_SPEAKER_PROTECTED_VBAT" acdb_id="136"/>
<device name="SND_DEVICE_OUT_VOICE_SPEAKER_PROTECTED_VBAT" acdb_id="136"/>
<device name="SND_DEVICE_IN_CAPTURE_VI_FEEDBACK" acdb_id="137"/>
+ <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" acdb_id="8"/>
</acdb_ids>
<backend_names>
@@ -164,6 +167,10 @@
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB" backend="speaker-and-bt-sco-wb" interface="PRI_MI2S_RX-and-INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO" backend="wsa-speaker-and-bt-sco" interface="PRI_MI2S_RX-and-INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB" backend="wsa-speaker-and-bt-sco-wb" interface="PRI_MI2S_RX-and-INT_BT_SCO_RX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB_NREC" interface="INT_BT_SCO_TX"/>
</backend_names>
<!-- below values are for ref purpose to OEM, doesn't contain actual hardware info on MTP -->
<microphone_characteristics>
diff --git a/configs/msm8953/audio_platform_info_tasha.xml b/configs/msm8953/audio_platform_info_tasha.xml
index b9ae0497..ee65dac3 100644
--- a/configs/msm8953/audio_platform_info_tasha.xml
+++ b/configs/msm8953/audio_platform_info_tasha.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015 - 2016, 2018, 2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2016, 2018, 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 -->
@@ -64,6 +64,8 @@
<usecase name="USECASE_INCALL_REC_UPLINK" type="in" id="14" />
<usecase name="USECASE_INCALL_REC_DOWNLINK" type="in" id="14" />
<usecase name="USECASE_INCALL_REC_UPLINK_AND_DOWNLINK" type="in" id="14" />
+ <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="28" />
+ <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="28" />
</pcm_ids>
<config_params>
<param key="native_audio_mode" value="src"/>
@@ -71,6 +73,9 @@
<param key="ffv_split_ec_ref_data" value="false"/>
<param key="ffv_ec_ref_channel_count" value="1"/>
</config_params>
+ <acdb_ids>
+ <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" acdb_id="8"/>
+ </acdb_ids>
<backend_names>
<device name="SND_DEVICE_OUT_BT_SCO_WB" interface="INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_BT_SCO" interface="INT_BT_SCO_RX"/>
@@ -89,6 +94,10 @@
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB" backend="speaker-and-bt-sco-wb" interface="SLIMBUS_0_RX--and-INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO" backend="wsa-speaker-and-bt-sco" interface="SLIMBUS_0_RX--and-INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB" backend="wsa-speaker-and-bt-sco-wb" interface="SLIMBUS_0_RX--and-INT_BT_SCO_RX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB_NREC" interface="INT_BT_SCO_TX"/>
</backend_names>
<!-- below values are for ref purpose to OEM, doesn't contain actual hardware info on MTP -->
<microphone_characteristics>
diff --git a/configs/msm8953/audio_platform_info_tashalite.xml b/configs/msm8953/audio_platform_info_tashalite.xml
index a358144c..ee65dac3 100644
--- a/configs/msm8953/audio_platform_info_tashalite.xml
+++ b/configs/msm8953/audio_platform_info_tashalite.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015 - 2016, 2018, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2016, 2018, 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 -->
@@ -64,6 +64,8 @@
<usecase name="USECASE_INCALL_REC_UPLINK" type="in" id="14" />
<usecase name="USECASE_INCALL_REC_DOWNLINK" type="in" id="14" />
<usecase name="USECASE_INCALL_REC_UPLINK_AND_DOWNLINK" type="in" id="14" />
+ <usecase name="USECASE_AUDIO_PLAYBACK_VOIP" type="out" id="28" />
+ <usecase name="USECASE_AUDIO_RECORD_VOIP" type="in" id="28" />
</pcm_ids>
<config_params>
<param key="native_audio_mode" value="src"/>
@@ -71,6 +73,9 @@
<param key="ffv_split_ec_ref_data" value="false"/>
<param key="ffv_ec_ref_channel_count" value="1"/>
</config_params>
+ <acdb_ids>
+ <device name="SND_DEVICE_IN_HEADSET_MIC_FLUENCE" acdb_id="8"/>
+ </acdb_ids>
<backend_names>
<device name="SND_DEVICE_OUT_BT_SCO_WB" interface="INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_BT_SCO" interface="INT_BT_SCO_RX"/>
@@ -89,6 +94,10 @@
<device name="SND_DEVICE_OUT_SPEAKER_AND_BT_SCO_WB" backend="speaker-and-bt-sco-wb" interface="SLIMBUS_0_RX--and-INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO" backend="wsa-speaker-and-bt-sco" interface="SLIMBUS_0_RX--and-INT_BT_SCO_RX"/>
<device name="SND_DEVICE_OUT_SPEAKER_WSA_AND_BT_SCO_WB" backend="wsa-speaker-and-bt-sco-wb" interface="SLIMBUS_0_RX--and-INT_BT_SCO_RX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_NREC" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB" interface="INT_BT_SCO_TX"/>
+ <device name="SND_DEVICE_IN_BT_SCO_MIC_WB_NREC" interface="INT_BT_SCO_TX"/>
</backend_names>
<!-- below values are for ref purpose to OEM, doesn't contain actual hardware info on MTP -->
<microphone_characteristics>
diff --git a/configs/msm8953/mixer_paths_mtp.xml b/configs/msm8953/mixer_paths_mtp.xml
index fea32be2..3d38818e 100644
--- a/configs/msm8953/mixer_paths_mtp.xml
+++ b/configs/msm8953/mixer_paths_mtp.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
- Copyright (c) 2015-2016, 2018, 2020 The Linux Foundation. All rights reserved.
+ Copyright (c) 2015-2016, 2018, 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
@@ -266,6 +266,15 @@
<ctl name="IIR1 Enable Band5" value="0" />
<!-- IIR -->
+ <!-- VoIP over audio -->
+ <ctl name="MultiMedia10 Mixer TERT_MI2S_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="0" />
+ <!-- VoIP over audio -->
+
<!-- ADSP testfwk -->
<ctl name="MI2S_DL_HL Switch" value="0" />
<!-- ADSP testfwk end-->
@@ -1309,7 +1318,68 @@
<ctl name="SpkrMono WSA_RDAC" value="Switch" />
</path>
- <path name="spkr-rx-calib">
+ <!-- VoIP Rx settings -->
+ <path name="audio-playback-voip">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip headphones">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="audio-playback-voip bt-sco" />
+ </path>
+
+ <path name="audio-playback-voip afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip usb-headphones">
+ <path name="audio-playback-voip afe-proxy" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-usb-headphones">
+ <path name="audio-playback-voip usb-headphones" />
+ <path name="audio-playback-voip" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-headphones">
+ <path name="audio-playback-voip" />
+ </path>
+
+ <!-- VoIP Tx settings -->
+ <path name="audio-record-voip">
+ <ctl name="MultiMedia10 Mixer TERT_MI2S_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco">
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+ <!-- VoIP Tx settings -->
+ <path name="audio-record-voip">
+ <ctl name="MultiMedia10 Mixer TERT_MI2S_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco">
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <path name="audio-record-voip bt-sco" />
+ </path>
+
+ <path name="audio-record-voip usb-headset-mic">
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="1" />
+ </path>
+
+ <path name="spkr-rx-calib">
<ctl name="PRI_MI2S_RX_DL_HL Switch" value="1" />
</path>
diff --git a/configs/msm8953/mixer_paths_sku3_tasha.xml b/configs/msm8953/mixer_paths_sku3_tasha.xml
index 7efefd28..8bc89e9c 100644
--- a/configs/msm8953/mixer_paths_sku3_tasha.xml
+++ b/configs/msm8953/mixer_paths_sku3_tasha.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2016, 2018, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2016, 2018, 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 -->
@@ -546,6 +546,12 @@
<ctl name="SLIMBUS6_DL_HL Switch" value="0" />
<!-- ADSP testfwk end-->
+ <!-- VoIP over audio -->
+ <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="0" />
+ <!-- VoIP over audio -->
+
<!-- These are audio route (FE to BE) specific mixer settings -->
<path name="deep-buffer-playback">
<ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia1" value="1" />
@@ -1964,6 +1970,60 @@
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
</path>
+ <!-- VoIP Rx settings -->
+ <path name="audio-playback-voip">
+ <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip headphones">
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="audio-playback-voip bt-sco" />
+ </path>
+
+ <path name="audio-playback-voip afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip usb-headphones">
+ <path name="audio-playback-voip afe-proxy" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-usb-headphones">
+ <path name="audio-playback-voip usb-headphones" />
+ <path name="audio-playback-voip" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-headphones">
+ <path name="audio-playback-voip" />
+ </path>
+
+ <!-- VoIP Tx settings -->
+ <path name="audio-record-voip">
+ <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco">
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="audio-record-voip bt-sco" />
+ </path>
+
+ <path name="audio-record-voip usb-headset-mic">
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="1" />
+ </path>
+
<path name="spkr-rx-calib">
<ctl name="SLIMBUS_DL_HL Switch" value="1" />
</path>
diff --git a/configs/msm8953/mixer_paths_sku4.xml b/configs/msm8953/mixer_paths_sku4.xml
index 91a4d1a6..d1718738 100644
--- a/configs/msm8953/mixer_paths_sku4.xml
+++ b/configs/msm8953/mixer_paths_sku4.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
- Copyright (c) 2015, 2018, 2020 The Linux Foundation. All rights reserved.
+ Copyright (c) 2015, 2018, 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
@@ -270,6 +270,15 @@
<ctl name="MI2S_DL_HL Switch" value="0" />
<!-- ADSP testfwk end-->
+ <!-- VoIP over audio -->
+ <ctl name="MultiMedia10 Mixer TERT_MI2S_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="0" />
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia10" value="0" />
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="0" />
+ <!-- VoIP over audio -->
+
<path name="bt-sco-wb-samplerate">
<ctl name="Internal BTSCO SampleRate" value="16000" />
</path>
@@ -1308,6 +1317,59 @@
<ctl name="SpkrMono WSA_RDAC" value="Switch" />
</path>
+ <!-- VoIP Rx settings -->
+ <path name="audio-playback-voip">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip headphones">
+ <ctl name="PRI_MI2S_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="audio-playback-voip bt-sco" />
+ </path>
+
+ <path name="audio-playback-voip afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip usb-headphones">
+ <path name="audio-playback-voip afe-proxy" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-usb-headphones">
+ <path name="audio-playback-voip usb-headphones" />
+ <path name="audio-playback-voip" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-headphones">
+ <path name="audio-playback-voip" />
+ </path>
+
+ <!-- VoIP Tx settings -->
+ <path name="audio-record-voip">
+ <ctl name="MultiMedia10 Mixer TERT_MI2S_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco">
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <path name="audio-record-voip bt-sco" />
+ </path>
+
+ <path name="audio-record-voip usb-headset-mic">
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="1" />
+ </path>
+
<path name="spkr-rx-calib">
<ctl name="PRI_MI2S_RX_DL_HL Switch" value="1" />
</path>
diff --git a/configs/msm8953/mixer_paths_tasha.xml b/configs/msm8953/mixer_paths_tasha.xml
index 1a2987c7..948a88e3 100644
--- a/configs/msm8953/mixer_paths_tasha.xml
+++ b/configs/msm8953/mixer_paths_tasha.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2016, 2018, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2016, 2018, 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 -->
@@ -571,6 +571,12 @@
<ctl name="SLIMBUS6_DL_HL Switch" value="0" />
<!-- ADSP testfwk end-->
+ <!-- VoIP over audio -->
+ <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="0" />
+ <!-- VoIP over audio -->
+
<!-- These are audio route (FE to BE) specific mixer settings -->
<path name="deep-buffer-playback">
<ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia1" value="1" />
@@ -2034,6 +2040,68 @@
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
</path>
+ <!-- VoIP Rx settings -->
+ <path name="audio-playback-voip">
+ <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip headphones">
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="audio-playback-voip bt-sco" />
+ </path>
+
+ <path name="audio-playback-voip afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip usb-headphones">
+ <path name="audio-playback-voip afe-proxy" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-usb-headphones">
+ <path name="audio-playback-voip usb-headphones" />
+ <path name="audio-playback-voip" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-headphones">
+ <path name="audio-playback-voip" />
+ </path>
+
+ <!-- VoIP Tx settings -->
+ <path name="audio-record-voip">
+ <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco">
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+ <!-- VoIP Tx settings -->
+ <path name="audio-record-voip">
+ <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco">
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="audio-record bt-sco" />
+ </path>
+
+ <path name="audio-record-voip usb-headset-mic">
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="1" />
+ </path>
+
<path name="spkr-rx-calib">
<ctl name="SLIMBUS_DL_HL Switch" value="1" />
</path>
diff --git a/configs/msm8953/mixer_paths_tashalite.xml b/configs/msm8953/mixer_paths_tashalite.xml
index 5efe6d3e..923bff13 100644
--- a/configs/msm8953/mixer_paths_tashalite.xml
+++ b/configs/msm8953/mixer_paths_tashalite.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2015-2016, 2018, 2020 The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2015-2016, 2018, 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 -->
@@ -553,6 +553,12 @@
<ctl name="SLIMBUS6_DL_HL Switch" value="0" />
<!-- ADSP testfwk end-->
+ <!-- VoIP over audio -->
+ <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="0" />
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="0" />
+ <!-- VoIP over audio -->
+
<!-- These are audio route (FE to BE) specific mixer settings -->
<path name="deep-buffer-playback">
<ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia1" value="1" />
@@ -2011,6 +2017,68 @@
<ctl name="SLIMBUS_5_TX LSM Function" value="AUDIO" />
</path>
+ <!-- VoIP Rx settings -->
+ <path name="audio-playback-voip">
+ <ctl name="SLIMBUS_0_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip headphones">
+ <ctl name="SLIMBUS_6_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco">
+ <ctl name="INTERNAL_BT_SCO_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip bt-sco-wb">
+ <ctl name="BT SampleRate" value="KHZ_16" />
+ <path name="audio-playback-voip bt-sco" />
+ </path>
+
+ <path name="audio-playback-voip afe-proxy">
+ <ctl name="AFE_PCM_RX Audio Mixer MultiMedia10" value="1" />
+ </path>
+
+ <path name="audio-playback-voip usb-headphones">
+ <path name="audio-playback-voip afe-proxy" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-usb-headphones">
+ <path name="audio-playback-voip usb-headphones" />
+ <path name="audio-playback-voip" />
+ </path>
+
+ <path name="audio-playback-voip speaker-and-headphones">
+ <path name="audio-playback-voip" />
+ </path>
+
+ <!-- VoIP Tx settings -->
+ <path name="audio-record-voip">
+ <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco">
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+ <!-- VoIP Tx settings -->
+ <path name="audio-record-voip">
+ <ctl name="MultiMedia10 Mixer SLIM_0_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco">
+ <ctl name="MultiMedia10 Mixer INTERNAL_BT_SCO_TX" value="1" />
+ </path>
+
+ <path name="audio-record-voip bt-sco-wb">
+ <ctl name="Internal BTSCO SampleRate" value="BTSCO_RATE_16KHZ" />
+ <ctl name="SLIM_1 SampleRate" value="16000" />
+ <path name="audio-record-voip bt-sco" />
+ </path>
+
+ <path name="audio-record-voip usb-headset-mic">
+ <ctl name="MultiMedia10 Mixer AFE_PCM_TX" value="1" />
+ </path>
+
<path name="spkr-rx-calib">
<ctl name="SLIMBUS_DL_HL Switch" value="1" />
</path>
diff --git a/configs/msm8953/msm8953.mk b/configs/msm8953/msm8953.mk
index e68cc7e2..3043a4c2 100644
--- a/configs/msm8953/msm8953.mk
+++ b/configs/msm8953/msm8953.mk
@@ -8,7 +8,7 @@ AUDIO_FEATURE_QSSI_COMPLIANCE := true
#AUDIO_FEATURE_ENABLED_VOICE_CONCURRENCY := true
AUDIO_FEATURE_ENABLED_AAC_ADTS_OFFLOAD := true
AUDIO_FEATURE_ENABLED_COMPRESS_CAPTURE := false
-AUDIO_FEATURE_ENABLED_COMPRESS_VOIP := true
+AUDIO_FEATURE_ENABLED_COMPRESS_VOIP := false
AUDIO_FEATURE_ENABLED_EXTN_FORMATS := true
AUDIO_FEATURE_ENABLED_EXTN_FLAC_DECODER := true
AUDIO_FEATURE_ENABLED_EXTN_RESAMPLER := true
@@ -257,7 +257,7 @@ vendor.audio.feature.hdmi_edid.enable=true \
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.compr_voip.enable=false \
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/sdm660/audio_policy_configuration.xml b/configs/sdm660/audio_policy_configuration.xml
index aff987d9..2d401ba7 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 fba65eb6..ccab771b 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 d3bada44..57a3d7e6 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_platform_info.xml b/configs/sdm845/audio_platform_info.xml
index 9d0c9e6d..b8c2ad8b 100644
--- a/configs/sdm845/audio_platform_info.xml
+++ b/configs/sdm845/audio_platform_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
-<!-- Copyright (c) 2014, 2016-2020, The Linux Foundation. All rights reserved. -->
+<!-- Copyright (c) 2014, 2016-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 -->
@@ -99,6 +99,8 @@
<usecase name="USECASE_INCALL_REC_UPLINK" type="in" id="27" />
<usecase name="USECASE_INCALL_REC_DOWNLINK" type="in" id="27" />
<usecase name="USECASE_INCALL_REC_UPLINK_AND_DOWNLINK" type="in" id="27" />
+ <usecase name="USECASE_INCALL_MUSIC_UPLINK" type="out" id="27" />
+ <usecase name="USECASE_INCALL_MUSIC_UPLINK2" type="out" id="27" />
</pcm_ids>
<config_params>
<param key="spkr_1_tz_name" value="wsatz.13"/>
diff --git a/configs/sdm845/audio_policy_configuration.xml b/configs/sdm845/audio_policy_configuration.xml
index 130e9f86..9d726f5d 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
@@ -21,7 +21,7 @@
<!-- version section contains a “version” tag in the form “major.minor” e.g version=”1.0” -->
<!-- Global configuration Decalaration -->
- <globalConfiguration speaker_drc_enabled="true"/>
+ <globalConfiguration speaker_drc_enabled="true" call_screen_mode_supported="true"/>
<!-- Modules section:
@@ -161,6 +161,23 @@
<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="incall_music_uplink" role="source"
+ flags="AUDIO_OUTPUT_FLAG_INCALL_MUSIC">
+ <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+ samplingRates="8000,16000,48000"
+ channelMasks="AUDIO_CHANNEL_OUT_STEREO"/>
+ </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"
@@ -332,11 +349,13 @@
<route type="mix" sink="USB Headset Out"
sources="primary output,raw,deep_buffer,direct_pcm,compressed_offload,voip_rx,mmap_no_irq_out,hifi_playback"/>
<route type="mix" sink="Telephony Tx"
- sources="voice_tx"/>
+ sources="voice_tx,incall_music_uplink"/>
<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/configs/sdm845/sdm845.mk b/configs/sdm845/sdm845.mk
index 4762cad8..0fefe53c 100644
--- a/configs/sdm845/sdm845.mk
+++ b/configs/sdm845/sdm845.mk
@@ -52,7 +52,7 @@ AUDIO_FEATURE_ENABLED_HDMI_PASSTHROUGH := true
AUDIO_FEATURE_ENABLED_DISPLAY_PORT := true
AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := false
AUDIO_FEATURE_ENABLED_HFP := true
-AUDIO_FEATURE_ENABLED_INCALL_MUSIC := false
+AUDIO_FEATURE_ENABLED_INCALL_MUSIC := true
AUDIO_FEATURE_ENABLED_MULTI_VOICE_SESSIONS := true
AUDIO_FEATURE_ENABLED_KPI_OPTIMIZE := true
AUDIO_FEATURE_ENABLED_SPKR_PROTECTION := true
diff --git a/hal/audio_extn/utils.c b/hal/audio_extn/utils.c
index 97742c76..0ba2f4f8 100644
--- a/hal/audio_extn/utils.c
+++ b/hal/audio_extn/utils.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2014-2020, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2014-2021, The Linux Foundation. All rights reserved.
* Not a Contribution.
*
* Copyright (C) 2014 The Android Open Source Project
@@ -1159,9 +1159,6 @@ int audio_extn_utils_get_app_sample_rate_for_device(
if (usecase->id == USECASE_AUDIO_PLAYBACK_VOIP) {
usecase->stream.out->app_type_cfg.sample_rate = usecase->stream.out->sample_rate;
- } else if (compare_device_type(&usecase->stream.out->device_list,
- AUDIO_DEVICE_OUT_SPEAKER)) {
- usecase->stream.out->app_type_cfg.sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
} else if ((snd_device == SND_DEVICE_OUT_HDMI ||
snd_device == SND_DEVICE_OUT_USB_HEADSET ||
snd_device == SND_DEVICE_OUT_DISPLAY_PORT) &&
@@ -1180,9 +1177,7 @@ int audio_extn_utils_get_app_sample_rate_for_device(
(usecase->stream.out->sample_rate < OUTPUT_SAMPLING_RATE_44100)) {
/* Reset to default if no native stream is active*/
usecase->stream.out->app_type_cfg.sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
- } else if (usecase->out_snd_device == SND_DEVICE_OUT_BT_A2DP ||
- usecase->out_snd_device == SND_DEVICE_OUT_SPEAKER_AND_BT_A2DP ||
- usecase->out_snd_device == SND_DEVICE_OUT_SPEAKER_SAFE_AND_BT_A2DP) {
+ } else if (snd_device == SND_DEVICE_OUT_BT_A2DP) {
/*
* For a2dp playback get encoder sampling rate and set copp sampling rate,
* for bit width use the stream param only.
@@ -1190,6 +1185,9 @@ int audio_extn_utils_get_app_sample_rate_for_device(
audio_extn_a2dp_get_enc_sample_rate(&usecase->stream.out->app_type_cfg.sample_rate);
ALOGI("%s using %d sample rate rate for A2DP CoPP",
__func__, usecase->stream.out->app_type_cfg.sample_rate);
+ } else if (compare_device_type(&usecase->stream.out->device_list,
+ AUDIO_DEVICE_OUT_SPEAKER)) {
+ usecase->stream.out->app_type_cfg.sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
}
audio_extn_btsco_get_sample_rate(snd_device, &usecase->stream.out->app_type_cfg.sample_rate);
sample_rate = usecase->stream.out->app_type_cfg.sample_rate;
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 0fe502da..8fc29614 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -3160,7 +3160,7 @@ int start_input_stream(struct stream_in *in)
}
if (is_sco_in_device_type(&in->device_list)) {
- if (!adev->bt_sco_on) {
+ if (!adev->bt_sco_on || audio_extn_a2dp_source_is_ready()) {
ALOGE("%s: SCO profile is not ready, return error", __func__);
ret = -EIO;
goto error_config;
@@ -8750,7 +8750,32 @@ static int adev_set_parameters(struct audio_hw_device *dev, const char *kvpairs)
/* When set to false, HAL should disable EC and NS */
if (strcmp(value, AUDIO_PARAMETER_VALUE_ON) == 0){
adev->bt_sco_on = true;
- } else {
+ /*
+ * When ever BT_SCO=ON arrives, make sure to route
+ * all use cases to SCO device, otherwise due to delay in
+ * BT_SCO=ON and lack of synchronization with create audio patch
+ * request for SCO device, some times use case not routed properly to
+ * SCO device
+ */
+ struct audio_usecase *usecase;
+ struct listnode *node;
+ list_for_each(node, &adev->usecase_list) {
+ usecase = node_to_item(node, struct audio_usecase, list);
+ if (usecase->stream.in && (usecase->type == PCM_CAPTURE ||
+ usecase->type == VOICE_CALL) &&
+ (!is_btsco_device(SND_DEVICE_NONE, usecase->in_snd_device))) {
+ ALOGD("BT_SCO ON, switch all in use case to it");
+ select_devices(adev, usecase->id);
+ }
+ if (usecase->stream.out && (usecase->type == PCM_PLAYBACK ||
+ usecase->type == VOICE_CALL) &&
+ (!is_btsco_device(usecase->out_snd_device, SND_DEVICE_NONE))) {
+ ALOGD("BT_SCO ON, switch all out use case to it");
+ select_devices(adev, usecase->id);
+ }
+ }
+ }
+ else {
adev->bt_sco_on = false;
audio_extn_sco_reset_configuration();
}