Revert "Revert "audio: add support for routing to/from voice TX/RX paths""

This reverts commit 55a1293b422d181281cf0f7d37c6c15c5d921ef3.

Bug: 15520724.

Change-Id: I46c2402bedd513c148b2c309c6f18a7ef3aa4d2a
diff --git a/hal/voice.c b/hal/voice.c
index 8ff1cf8..fb226d6 100644
--- a/hal/voice.c
+++ b/hal/voice.c
@@ -95,7 +95,7 @@
     return ret;
 }
 
-int voice_start_usecase(struct audio_device *adev, audio_usecase_t usecase_id)
+int voice_start_usecase(struct audio_device *adev, audio_usecase_t usecase_id, struct stream_out *out)
 {
     int i, ret = 0;
     struct audio_usecase *uc_info;
@@ -109,8 +109,8 @@
     uc_info = (struct audio_usecase *)calloc(1, sizeof(struct audio_usecase));
     uc_info->id = usecase_id;
     uc_info->type = VOICE_CALL;
-    uc_info->stream.out = adev->primary_output;
-    uc_info->devices = adev->primary_output->devices;
+    uc_info->stream.out = out;
+    uc_info->devices = out->devices;
     uc_info->in_snd_device = SND_DEVICE_NONE;
     uc_info->out_snd_device = SND_DEVICE_NONE;
 
@@ -323,13 +323,13 @@
     return err;
 }
 
-int voice_start_call(struct audio_device *adev)
+int voice_start_call(struct audio_device *adev, struct stream_out *out)
 {
     int ret = 0;
 
     ret = voice_extn_start_call(adev);
     if (ret == -ENOSYS) {
-        ret = voice_start_usecase(adev, USECASE_VOICE_CALL);
+        ret = voice_start_usecase(adev, USECASE_VOICE_CALL, out);
     }
     adev->voice.in_call = true;