ASoC: msm: Add support for multiple instance.

Add support for concurrent voice and VoIP calls.

Signed-off-by: Neema Shetty <nshetty@codeaurora.org>
diff --git a/sound/soc/msm/msm-pcm-voip.c b/sound/soc/msm/msm-pcm-voip.c
index b4de5a4..c49574c 100644
--- a/sound/soc/msm/msm-pcm-voip.c
+++ b/sound/soc/msm/msm-pcm-voip.c
@@ -425,8 +425,8 @@
 	if (!prtd->playback_instance && !prtd->capture_instance) {
 		if (prtd->state == VOIP_STARTED) {
 			prtd->state = VOIP_STOPPED;
-			voc_end_voice_call();
-			voc_set_voc_path_full(0);
+			voc_end_voice_call(
+					voc_get_session_id(VOIP_SESSION_NAME));
 			voc_register_mvs_cb(NULL, NULL, prtd);
 		}
 		/* release all buffer */
@@ -513,8 +513,6 @@
 	if (prtd->playback_instance && prtd->capture_instance
 				&& (prtd->state != VOIP_STARTED)) {
 
-		voc_set_voc_path_full(1);
-
 		if ((prtd->play_samp_rate == 8000) &&
 					(prtd->cap_samp_rate == 8000))
 			voc_config_vocoder(VSS_MEDIA_ID_PCM_NB,
@@ -524,16 +522,18 @@
 			voc_config_vocoder(VSS_MEDIA_ID_PCM_WB,
 						0, VSS_NETWORK_ID_VOIP_WB);
 		else {
-			pr_err(" sample rate are not set properly\n");
-			goto err;
+			pr_debug("%s: Invalid rate playback %d, capture %d\n",
+				 __func__, prtd->play_samp_rate,
+				 prtd->cap_samp_rate);
+			goto done;
 		}
 		voc_register_mvs_cb(voip_process_ul_pkt,
 					voip_process_dl_pkt, prtd);
-		voc_start_voice_call();
+		voc_start_voice_call(voc_get_session_id(VOIP_SESSION_NAME));
 
 		prtd->state = VOIP_STARTED;
 	}
-err:
+done:
 	mutex_unlock(&prtd->lock);
 
 	return ret;