summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2021-06-27 15:03:19 -0700
committerLinux Build Service Account <lnxbuild@localhost>2021-06-27 15:03:19 -0700
commit7153b84b9ab32069ed7c2f567a286eaa66b599e3 (patch)
tree458b2a429a5212191b8c09cc1b981221ceda55c1
parent86b26cf1617a07f92cec6634c883e667f4d875ad (diff)
parent2cc132a765140dd64412d9f6578a449322e0dfc5 (diff)
Merge 2cc132a765140dd64412d9f6578a449322e0dfc5 on remote branch
Change-Id: Ie565d247cf53485a95fef0645a5070bd35baafaf
-rw-r--r--configs/sdm845/audio_policy_configuration.xml1
-rw-r--r--hal/audio_hw.c11
2 files changed, 9 insertions, 3 deletions
diff --git a/configs/sdm845/audio_policy_configuration.xml b/configs/sdm845/audio_policy_configuration.xml
index 285ba026..9d726f5d 100644
--- a/configs/sdm845/audio_policy_configuration.xml
+++ b/configs/sdm845/audio_policy_configuration.xml
@@ -171,6 +171,7 @@
<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"
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 9b29a219..8fc29614 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -2723,7 +2723,10 @@ int select_devices(struct audio_device *adev, audio_usecase_t uc_id)
(is_single_device_type_equal(&usecase->device_list,
AUDIO_DEVICE_IN_USB_HEADSET) &&
is_single_device_type_equal(&vc_usecase->device_list,
- AUDIO_DEVICE_OUT_USB_HEADSET)))) {
+ AUDIO_DEVICE_OUT_USB_HEADSET))||
+ (is_single_device_type_equal(&usecase->device_list,
+ AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET) &&
+ is_codec_backend_out_device_type(&vc_usecase->device_list)))) {
in_snd_device = vc_usecase->in_snd_device;
out_snd_device = vc_usecase->out_snd_device;
}
@@ -8758,12 +8761,14 @@ static int adev_set_parameters(struct audio_hw_device *dev, const char *kvpairs)
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) &&
+ 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) &&
+ 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);