Speaker channel swapping is conditional to audio mode
am: f714870588
Change-Id: I73316073cfec7f44a70b1e71ca4f0f0669372e8c
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index b84353d..5cdc394 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -2755,6 +2755,14 @@
struct platform_data *my_data = (struct platform_data *)adev->platform;
if (my_data->speaker_lr_swap != swap_channels) {
+
+ // do not swap channels in audio modes with concurrent capture and playback
+ // as this may break the echo reference
+ if ((adev->mode == AUDIO_MODE_IN_COMMUNICATION) || (adev->mode == AUDIO_MODE_IN_CALL)) {
+ ALOGV("%s: will not swap due to audio mode %d", __func__, adev->mode);
+ return 0;
+ }
+
my_data->speaker_lr_swap = swap_channels;
list_for_each(node, &adev->usecase_list) {