hal: Use default backend sample rate during device switch

When music and VoIP happen concurrently, and music outputs
with 44.1Khz.  During device switch from speaker to handset,
due to handset and speaker are not same backend, backend
sample rate is set to 44.1Khz, not 48Khz. This causes mute
issue happens.

Fix it by adding backend port comparsion to ensure current
audio device is handset or speaker, and then set sample rate
to 48Khz if backend is same as speaker or handset snd_device.

CRs-Fixed: 2257482
Change-Id: Ia2446d797e6d0b21d536ed40da8deeb29b3132d6
diff --git a/hal/msm8916/platform.c b/hal/msm8916/platform.c
index d65c389..09e8ccd 100644
--- a/hal/msm8916/platform.c
+++ b/hal/msm8916/platform.c
@@ -6157,12 +6157,12 @@
     }
 
     /*
-     * Check if the device is speaker or handset,assumption handset shares
-     * backend with speaker, and these devices are restricited to 48kHz.
+     * Handset and speaker may have diffrent backend. Check if the device is speaker or handset,
+     * and these devices are restricited to 48kHz.
      */
-    if (platform_check_backends_match(SND_DEVICE_OUT_SPEAKER, snd_device) &&
-        !(codec_device_supports_native_playback(usecase->devices) &&
-          my_data->hifi_audio && !check_hdset_combo_device(snd_device))) {
+    if ((platform_get_backend_index(snd_device) == DEFAULT_CODEC_BACKEND) &&
+        (platform_check_backends_match(SND_DEVICE_OUT_SPEAKER, snd_device) ||
+         platform_check_backends_match(SND_DEVICE_OUT_HANDSET, snd_device))) {
         sample_rate = CODEC_BACKEND_DEFAULT_SAMPLE_RATE;
 
         if (bit_width >= 24) {
diff --git a/hal/msm8974/platform.c b/hal/msm8974/platform.c
index a5f36ba..c40f11d 100644
--- a/hal/msm8974/platform.c
+++ b/hal/msm8974/platform.c
@@ -6132,11 +6132,12 @@
     }
 
     /*
-     * Check if the device is speaker or handset,assumption handset shares
-     * backend with speaker, and these devices are restricited to 48kHz.
+     * Handset and speaker may have diffrent backend. Check if the device is speaker or handset,
+     * and these devices are restricited to 48kHz.
      */
-    if (platform_check_backends_match(SND_DEVICE_OUT_SPEAKER, snd_device)) {
-
+    if ((platform_get_backend_index(snd_device) == DEFAULT_CODEC_BACKEND) &&
+        (platform_check_backends_match(SND_DEVICE_OUT_SPEAKER, snd_device) ||
+         platform_check_backends_match(SND_DEVICE_OUT_HANDSET, snd_device))) {
         if (bit_width >= 24) {
             bit_width = platform_get_snd_device_bit_width(SND_DEVICE_OUT_SPEAKER);
             ALOGD("%s:becf: afe: reset bitwidth to %d (based on supported"