diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index 55f1005..ee2ef52 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -10369,9 +10369,11 @@
 int check_a2dp_restore_l(struct audio_device *adev, struct stream_out *out, bool restore)
 {
     struct audio_usecase *uc_info;
+    struct audio_usecase *usecase;
     float left_p;
     float right_p;
     struct listnode devices;
+    struct listnode *node;
 
     uc_info = get_usecase_from_list(adev, out->usecase);
     if (uc_info == NULL) {
@@ -10407,9 +10409,17 @@
         pthread_mutex_lock(&out->latch_lock);
         // mute stream and switch to speaker if suspended
         if (!out->a2dp_muted && !out->standby) {
-            ALOGD("%s: selecting speaker and muting stream", __func__);
             assign_devices(&devices, &out->device_list);
             reassign_device_list(&out->device_list, AUDIO_DEVICE_OUT_SPEAKER, "");
+            list_for_each(node, &adev->usecase_list) {
+                usecase = node_to_item(node, struct audio_usecase, list);
+                if ((usecase != uc_info) &&
+                        platform_check_backends_match(SND_DEVICE_OUT_SPEAKER,
+                                                      usecase->out_snd_device)) {
+                    assign_devices(&out->device_list, &usecase->stream.out->device_list);
+                    break;
+                }
+            }
             left_p = out->volume_l;
             right_p = out->volume_r;
             out->a2dp_muted = true;
@@ -10428,6 +10438,8 @@
                 usleep(latency * 1000);
             }
             select_devices(adev, out->usecase);
+            ALOGD("%s: switched to device:%s and mute stream",
+                   __func__, platform_get_snd_device_name(uc_info->out_snd_device));
             if (is_offload_usecase(out->usecase)) {
                 if (out->offload_state == OFFLOAD_STATE_PLAYING)
                     compress_resume(out->compr);
