Merge "configs: Correct EC capture mixer control sequence"
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index c208298..cef64a7 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -1362,9 +1362,7 @@
platform_get_snd_device_name(snd_device),
platform_get_snd_device_name(usecase->out_snd_device),
platform_check_backends_match(snd_device, usecase->out_snd_device));
- if ((usecase->type != PCM_CAPTURE) &&
- (usecase->type != VOICE_CALL) &&
- (usecase != uc_info)) {
+ if ((usecase->type != PCM_CAPTURE) && (usecase != uc_info)) {
uc_derive_snd_device = derive_playback_snd_device(adev->platform,
usecase, uc_info, snd_device);
if (((uc_derive_snd_device != usecase->out_snd_device) || force_routing) &&
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index 67f239c..25ce892 100755
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -4379,7 +4379,7 @@
snd_device = SND_DEVICE_IN_HANDSET_MIC_AEC_NS;
} else if (in_device & AUDIO_DEVICE_IN_WIRED_HEADSET) {
snd_device = SND_DEVICE_IN_HEADSET_MIC_FLUENCE;
- } else if (audio_is_usb_in_device(in_device | AUDIO_DEVICE_BIT_IN)) {
+ } else if (audio_extn_usb_connected(NULL) && audio_is_usb_in_device(in_device | AUDIO_DEVICE_BIT_IN)) {
snd_device = SND_DEVICE_IN_USB_HEADSET_MIC_AEC;
}
platform_set_echo_reference(adev, true, out_device);
@@ -4409,7 +4409,7 @@
snd_device = SND_DEVICE_IN_HANDSET_MIC_AEC;
} else if (in_device & AUDIO_DEVICE_IN_WIRED_HEADSET) {
snd_device = SND_DEVICE_IN_HEADSET_MIC_FLUENCE;
- } else if (audio_is_usb_in_device(in_device | AUDIO_DEVICE_BIT_IN)) {
+ } else if (audio_extn_usb_connected(NULL) && audio_is_usb_in_device(in_device | AUDIO_DEVICE_BIT_IN)) {
snd_device = SND_DEVICE_IN_USB_HEADSET_MIC_AEC;
}
platform_set_echo_reference(adev, true, out_device);
@@ -4759,7 +4759,7 @@
snd_device = SND_DEVICE_IN_USB_HEADSET_MIC;
} else if (in_device & AUDIO_DEVICE_IN_FM_TUNER) {
snd_device = SND_DEVICE_IN_CAPTURE_FM;
- } else if (audio_is_usb_in_device(in_device | AUDIO_DEVICE_BIT_IN)) {
+ } else if (audio_extn_usb_connected(NULL) && audio_is_usb_in_device(in_device | AUDIO_DEVICE_BIT_IN)) {
snd_device = SND_DEVICE_IN_USB_HEADSET_MIC;
} else {
ALOGE("%s: Unknown input device(s) %#x", __func__, in_device);
@@ -4799,7 +4799,7 @@
} else if (out_device &
(AUDIO_DEVICE_OUT_USB_DEVICE |
AUDIO_DEVICE_OUT_USB_HEADSET)) {
- if (audio_extn_usb_is_capture_supported())
+ if (audio_extn_usb_is_capture_supported() && audio_extn_usb_connected(NULL))
snd_device = SND_DEVICE_IN_USB_HEADSET_MIC;
else
snd_device = SND_DEVICE_IN_HANDSET_MIC;
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
old mode 100644
new mode 100755
index 8a71b31..15f84da
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -4147,7 +4147,7 @@
snd_device = SND_DEVICE_IN_HANDSET_MIC_AEC_NS;
} else if (in_device & AUDIO_DEVICE_IN_WIRED_HEADSET) {
snd_device = SND_DEVICE_IN_HEADSET_MIC_FLUENCE;
- } else if (audio_is_usb_in_device(in_device | AUDIO_DEVICE_BIT_IN)) {
+ } else if (audio_extn_usb_connected(NULL) && audio_is_usb_in_device(in_device | AUDIO_DEVICE_BIT_IN)) {
snd_device = SND_DEVICE_IN_USB_HEADSET_MIC_AEC;
}
platform_set_echo_reference(adev, true, out_device);
@@ -4181,7 +4181,7 @@
snd_device = SND_DEVICE_IN_HANDSET_MIC_AEC;
} else if (in_device & AUDIO_DEVICE_IN_WIRED_HEADSET) {
snd_device = SND_DEVICE_IN_HEADSET_MIC_FLUENCE;
- } else if (audio_is_usb_in_device(in_device | AUDIO_DEVICE_BIT_IN)) {
+ } else if (audio_extn_usb_connected(NULL) && audio_is_usb_in_device(in_device | AUDIO_DEVICE_BIT_IN)) {
snd_device = SND_DEVICE_IN_USB_HEADSET_MIC_AEC;
}
platform_set_echo_reference(adev, true, out_device);
@@ -4599,7 +4599,7 @@
snd_device = SND_DEVICE_IN_USB_HEADSET_MIC;
} else if (in_device & AUDIO_DEVICE_IN_FM_TUNER) {
snd_device = SND_DEVICE_IN_CAPTURE_FM;
- } else if (audio_is_usb_in_device(in_device | AUDIO_DEVICE_BIT_IN)) {
+ } else if (audio_extn_usb_connected(NULL) && audio_is_usb_in_device(in_device | AUDIO_DEVICE_BIT_IN)) {
snd_device = SND_DEVICE_IN_USB_HEADSET_MIC;
} else {
ALOGE("%s: Unknown input device(s) %#x", __func__, in_device);
@@ -4647,7 +4647,7 @@
} else if (out_device &
(AUDIO_DEVICE_OUT_USB_DEVICE |
AUDIO_DEVICE_OUT_USB_HEADSET)) {
- if (audio_extn_usb_is_capture_supported())
+ if (audio_extn_usb_is_capture_supported() && audio_extn_usb_connected(NULL))
snd_device = SND_DEVICE_IN_USB_HEADSET_MIC;
else
snd_device = SND_DEVICE_IN_HANDSET_MIC;
@@ -6254,10 +6254,11 @@
ALOGD("%s:becf: afe: napb not active - set non fractional rate",
__func__);
}
- /*ensure AFE set to 48khz when sample rate less than 44.1khz*/
- if (sample_rate < OUTPUT_SAMPLING_RATE_44100) {
- sample_rate = CODEC_BACKEND_DEFAULT_SAMPLE_RATE;
- ALOGD("%s:becf: afe: napb set sample rate to default Sample Rate(48k)",__func__);
+ /*reset sample rate to 48khz if sample rate less than 44.1khz, or device backend dose not support 44.1 khz*/
+ if ((sample_rate == OUTPUT_SAMPLING_RATE_44100 && backend_idx != HEADPHONE_44_1_BACKEND)
+ || sample_rate < OUTPUT_SAMPLING_RATE_44100) {
+ sample_rate = CODEC_BACKEND_DEFAULT_SAMPLE_RATE;
+ ALOGD("%s:becf: afe: reset sample rate to default Sample Rate(48k)",__func__);
}
}
@@ -6384,13 +6385,6 @@
/*this is populated by check_codec_backend_cfg hence set default value to false*/
backend_cfg.passthrough_enabled = false;
- /*check if the stream sample 44.1Khz rate is supported of configured device sample rate. If not
- open afe at default sample rate.
- */
- if (backend_idx != HEADPHONE_44_1_BACKEND &&
- usecase->stream.out->sample_rate == OUTPUT_SAMPLING_RATE_44100)
- backend_cfg.sample_rate = DEFAULT_OUTPUT_SAMPLING_RATE;
-
/* Set Backend sampling rate to 176.4 for DSD64 and
* 352.8Khz for DSD128.
* Set Bit Width to 16
@@ -6419,9 +6413,7 @@
for (i = 0; i < num_devices; i++) {
ALOGI("%s: new_snd_devices[%d] is %d", __func__, i, new_snd_devices[i]);
if ((platform_check_codec_backend_cfg(adev, usecase, new_snd_devices[i],
- &backend_cfg)) ||
- ((usecase->out_snd_device != SND_DEVICE_NONE) &&
- !platform_check_backends_match(usecase->out_snd_device, snd_device))) {
+ &backend_cfg))) {
ret = platform_set_codec_backend_cfg(adev, new_snd_devices[i],
backend_cfg);
if (!ret) {