Merge "hal: Fix device selection at start of the voice call" into audio-userspace.lnx.2.1-dev
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index a8ebb6b..8660b5a 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -2306,14 +2306,6 @@
         if (val != 0) {
             out->devices = val;
 
-            if (!out->standby) {
-                audio_extn_perf_lock_acquire(&adev->perf_lock_handle, 0,
-                                             adev->perf_lock_opts,
-                                             adev->perf_lock_opts_size);
-                select_devices(adev, out->usecase);
-                audio_extn_perf_lock_release(&adev->perf_lock_handle);
-            }
-
             if (output_drives_call(adev, out)) {
                 if(!voice_is_in_call(adev)) {
                     if (adev->mode == AUDIO_MODE_IN_CALL) {
@@ -2325,6 +2317,14 @@
                     voice_update_devices_for_all_voice_usecases(adev);
                 }
             }
+
+            if (!out->standby) {
+                audio_extn_perf_lock_acquire(&adev->perf_lock_handle, 0,
+                                             adev->perf_lock_opts,
+                                             adev->perf_lock_opts_size);
+                select_devices(adev, out->usecase);
+                audio_extn_perf_lock_release(&adev->perf_lock_handle);
+            }
         }
 
         pthread_mutex_unlock(&adev->lock);