hal: Avoid stereo device selection for target with single speaker

Stereo flag is true by default, speaker device in selction
of VOICE_SPEAKER_2 during call for target with single speaker.

Fix this by set stereo flag to false for target with single
speaker to ensure proper speaker device is selected.

CRs-Fixed: 1113317
Change-Id: I62d5b9cf84656272d93b2810b35a53b3e27465cd
diff --git a/hal/msm8974/hw_info.c b/hal/msm8974/hw_info.c
index a13ea30..f5fb696 100644
--- a/hal/msm8974/hw_info.c
+++ b/hal/msm8974/hw_info.c
@@ -338,6 +338,10 @@
         hw_info->snd_devices = (snd_device_t *)tasha_DB_variant_devices;
         hw_info->num_snd_devices = ARRAY_SIZE(tasha_DB_variant_devices);
         strlcpy(hw_info->dev_extn, "-db", sizeof(hw_info->dev_extn));
+    } else if (!strcmp(snd_card_name, "msm8998-qvr-tavil-snd-card")) {
+        hw_info->is_stereo_spkr = false;
+    } else if (!strcmp(snd_card_name, "msm8998-skuk-tavil-snd-card")) {
+        hw_info->is_stereo_spkr = false;
     } else {
         ALOGW("%s: Not a msm8998 device", __func__);
     }
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
old mode 100644
new mode 100755
index 4c7a8de..80f869c
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -2971,15 +2971,21 @@
                 snd_device = SND_DEVICE_OUT_BT_SCO;
         } else if (devices & AUDIO_DEVICE_OUT_SPEAKER) {
                 if (my_data->is_vbat_speaker) {
-                    if (my_data->mono_speaker == SPKR_1)
+                    if (hw_info_is_stereo_spkr(my_data->hw_info)) {
+                        if (my_data->mono_speaker == SPKR_1)
+                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_VBAT;
+                        else
+                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT;
+                    } else
                         snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_VBAT;
-                    else
-                        snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_2_VBAT;
                 } else {
-                    if (my_data->mono_speaker == SPKR_1)
-                        snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
-                    else
-                        snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_2;
+                    if (hw_info_is_stereo_spkr(my_data->hw_info)) {
+                        if (my_data->mono_speaker == SPKR_1)
+                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
+                        else
+                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_2;
+                    } else
+                            snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
                 }
         } else if (devices & AUDIO_DEVICE_OUT_ALL_A2DP) {
             snd_device = SND_DEVICE_OUT_BT_A2DP;