hal: add external echo reference to ecns-hfp calls

* Add ec_car_state to switch between single-mic
  and multi-mic ecns hfp calls.
* Add the capability to have an echo reference for
  both single-mic and multi-mic ecns hfp call.
* New snd device is introduced for multi-mic ecns hfp.

Change-Id: I5a8c869cf6854020e15efb61cbaf78f3f027e1ee
Signed-off-by: Guodong Hu <guodhu@codeaurora.org>
Signed-off-by: Derek Chen <chenche@codeaurora.org>
diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index a27abcb..2d3719e 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -1128,7 +1128,9 @@
                 in->ec_opened = true;
             }
         }
-    } else if (usecase->type == TRANSCODE_LOOPBACK_TX) {
+    } else if ((usecase->type == TRANSCODE_LOOPBACK_TX) || ((usecase->type == PCM_HFP_CALL) &&
+        ((usecase->id == USECASE_AUDIO_HFP_SCO) || (usecase->id == USECASE_AUDIO_HFP_SCO_WB)) &&
+        (usecase->in_snd_device == SND_DEVICE_IN_VOICE_SPEAKER_MIC_HFP_MMSECNS))) {
         snd_device = usecase->in_snd_device;
     } else {
         snd_device = usecase->out_snd_device;