hal: update correct speaker type for mono speaker based

If right speaker is used, mono speaker type still is set
to left speaker by default.

Set correct mono speaker type based on key-value of mono-speaker.

Change-Id: I3f7b6a261636fe981ae853a08ed5f3b4376e3c56
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index 572ae99..9de46d4 100755
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -6635,8 +6635,12 @@
                         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 {
+                    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 if (my_data->is_wsa_speaker) {
                     if (my_data->mono_speaker == SPKR_1)
                         snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_WSA;
@@ -6659,8 +6663,12 @@
                     }
                 } else if (adev->enable_hfp)
                     snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_HFP;
-                else
-                    snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
+                else {
+                    if (my_data->mono_speaker == SPKR_1)
+                        snd_device = SND_DEVICE_OUT_VOICE_SPEAKER;
+                    else
+                        snd_device = SND_DEVICE_OUT_VOICE_SPEAKER_2;
+                }
             }
         } else if (is_a2dp_out_device_type(&devices)) {
             snd_device = SND_DEVICE_OUT_BT_A2DP;
@@ -8438,18 +8446,17 @@
         }
     }
 
-    if (hw_info_is_stereo_spkr(my_data->hw_info)) {
-        err = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_MONO_SPEAKER, value, len);
-        if (err >= 0) {
-            if (!strncmp("left", value, sizeof("left")))
-                my_data->mono_speaker = SPKR_1;
-            else if (!strncmp("right", value, sizeof("right")))
-                my_data->mono_speaker = SPKR_2;
+    err = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_MONO_SPEAKER, value, len);
+    if (err >= 0) {
+        if (!strncmp("left", value, sizeof("left")))
+            my_data->mono_speaker = SPKR_1;
+        else if (!strncmp("right", value, sizeof("right")))
+            my_data->mono_speaker = SPKR_2;
 
-            str_parms_del(parms, AUDIO_PARAMETER_KEY_MONO_SPEAKER);
-        }
+       str_parms_del(parms, AUDIO_PARAMETER_KEY_MONO_SPEAKER);
     }
-    err = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_EXT_AUDIO_DEVICE,
+
+   err = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_EXT_AUDIO_DEVICE,
                             value, len);
     if (err >= 0) {
         char *event_name, *status_str;