hal: enable support for AEC on Voice Recognition path
- enable AEC for VR path for multi mic
Bug: 27906575
Change-Id: I21bf7247bed93b200169f2cb60d3ddff8631fd6e
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index d907e82..6766142 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -2158,20 +2158,24 @@
lock_input_stream(in);
pthread_mutex_lock(&in->dev->lock);
if ((in->source == AUDIO_SOURCE_VOICE_COMMUNICATION ||
+ in->source == AUDIO_SOURCE_VOICE_RECOGNITION ||
adev->mode == AUDIO_MODE_IN_COMMUNICATION) &&
in->enable_aec != enable &&
(memcmp(&desc.type, FX_IID_AEC, sizeof(effect_uuid_t)) == 0)) {
in->enable_aec = enable;
if (!enable)
platform_set_echo_reference(in->dev, enable, AUDIO_DEVICE_NONE);
- adev->enable_voicerx = enable;
- 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->type == PCM_PLAYBACK) {
- select_devices(adev, usecase->id);
- break;
+ if (in->source == AUDIO_SOURCE_VOICE_COMMUNICATION ||
+ adev->mode == AUDIO_MODE_IN_COMMUNICATION) {
+ adev->enable_voicerx = enable;
+ 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->type == PCM_PLAYBACK) {
+ select_devices(adev, usecase->id);
+ break;
+ }
}
}
if (!in->standby)