summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNarsinga Rao Chella <nrchella@codeaurora.org>2014-10-03 13:34:45 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2014-10-07 09:55:59 -0700
commit97db870693753a7d90036fc19b769dd7e21f6157 (patch)
treef3fc120c99d192fdcba6714a25972425b47f9fb7
parent987af8e86b2aeaddc4865428d5c5cedb05ea258c (diff)
downloadandroid_hardware_qcom_audio-97db870693753a7d90036fc19b769dd7e21f6157.tar.gz
android_hardware_qcom_audio-97db870693753a7d90036fc19b769dd7e21f6157.tar.bz2
android_hardware_qcom_audio-97db870693753a7d90036fc19b769dd7e21f6157.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 ff9076e0..92c80bd1 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -1659,7 +1659,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;
@@ -1688,8 +1689,7 @@ snd_device_t platform_get_input_snd_device(void *platform, audio_devices_t out_d
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) {
@@ -1855,12 +1855,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 (adev->bt_wb_speech_enabled) {
if (adev->bluetooth_nrec)