summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNarsinga Rao Chella <nrchella@codeaurora.org>2014-10-03 13:34:45 -0700
committerArne Coucheron <arco68@gmail.com>2016-05-11 00:12:20 +0200
commite515bd789606c51449eeffea01b4d0312d1c63ca (patch)
treef016d0c92f6b4151a312d59de07dab29f5b6110f
parent022a0f3c63ee8b334b540817308412081ec927d8 (diff)
downloadhardware_qcom_audio-e515bd789606c51449eeffea01b4d0312d1c63ca.tar.gz
hardware_qcom_audio-e515bd789606c51449eeffea01b4d0312d1c63ca.tar.bz2
hardware_qcom_audio-e515bd789606c51449eeffea01b4d0312d1c63ca.zip
hal: fix the input device selection for headphones
Headset speaker output device and Speaker phone mic input device is an invalid device pair combination. Instead, select Handset mic input device for Headphones. Change-Id: I1bce425bd73d2f79b7dd78a7d5c701c43390b167
-rw-r--r--hal/msm8974/platform.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index ce527c59..2b590d1e 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -1308,7 +1308,8 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d
goto exit;
}
}
- if (out_device & AUDIO_DEVICE_OUT_EARPIECE) {
+ if (out_device & AUDIO_DEVICE_OUT_EARPIECE ||
+ out_device & AUDIO_DEVICE_OUT_WIRED_HEADPHONE) {
if (out_device & AUDIO_DEVICE_OUT_EARPIECE &&
audio_extn_should_use_handset_anc(channel_count)) {
snd_device = SND_DEVICE_IN_AANC_HANDSET_MIC;
@@ -1327,8 +1328,7 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d
snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB;
else
snd_device = SND_DEVICE_IN_BT_SCO_MIC;
- } else if (out_device & AUDIO_DEVICE_OUT_SPEAKER ||
- out_device & AUDIO_DEVICE_OUT_WIRED_HEADPHONE) {
+ } else if (out_device & AUDIO_DEVICE_OUT_SPEAKER) {
if (my_data->fluence_type != FLUENCE_NONE &&
my_data->fluence_in_voice_call &&
my_data->fluence_in_spkr_mode) {
@@ -1473,12 +1473,13 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d
snd_device = SND_DEVICE_IN_HANDSET_MIC;
} else if (out_device & AUDIO_DEVICE_OUT_WIRED_HEADSET) {
snd_device = SND_DEVICE_IN_HEADSET_MIC;
- } else if (out_device & AUDIO_DEVICE_OUT_SPEAKER ||
- out_device & AUDIO_DEVICE_OUT_WIRED_HEADPHONE) {
+ } else if (out_device & AUDIO_DEVICE_OUT_SPEAKER) {
if (channel_count == 2)
snd_device = SND_DEVICE_IN_SPEAKER_STEREO_DMIC;
else
snd_device = SND_DEVICE_IN_SPEAKER_MIC;
+ } else if (out_device & AUDIO_DEVICE_OUT_WIRED_HEADPHONE) {
+ snd_device = SND_DEVICE_IN_HANDSET_MIC;
} else if (out_device & AUDIO_DEVICE_OUT_BLUETOOTH_SCO_HEADSET) {
if (my_data->btsco_sample_rate == SAMPLE_RATE_16KHZ)
snd_device = SND_DEVICE_IN_BT_SCO_MIC_WB;