Asoc: msm: 8064: Add support for in-call features

- Add support for slimbus rx and tx channels
  between external modem and APQ.
- Use the slimbus rx channel to route audio packets
  from APQ to external modem for music delivery to
  far-end during a voice call.
- Use the slimbus tx channel to route the voice packets
  from external modem to APQ to record to a file.
- Add mixer control to set mono or stereo recording.

Change-Id: Ice6315de19bf0e2a8d7bd55973976b3c320f1984
Signed-off-by: Helen Zeng <xiaoyunz@codeaurora.org>
diff --git a/sound/soc/msm/qdsp6/q6afe.c b/sound/soc/msm/qdsp6/q6afe.c
index f474542..dc120b08 100644
--- a/sound/soc/msm/qdsp6/q6afe.c
+++ b/sound/soc/msm/qdsp6/q6afe.c
@@ -152,6 +152,7 @@
 	case INT_FM_RX:
 	case VOICE_PLAYBACK_TX:
 	case RT_PROXY_PORT_001_RX:
+	case SLIMBUS_4_RX:
 		ret = MSM_AFE_PORT_TYPE_RX;
 		break;
 
@@ -168,6 +169,7 @@
 	case VOICE_RECORD_RX:
 	case INT_BT_SCO_TX:
 	case RT_PROXY_PORT_001_TX:
+	case SLIMBUS_4_TX:
 		ret = MSM_AFE_PORT_TYPE_TX;
 		break;
 
@@ -211,6 +213,8 @@
 	case INT_FM_TX:
 	case RT_PROXY_PORT_001_RX:
 	case RT_PROXY_PORT_001_TX:
+	case SLIMBUS_4_RX:
+	case SLIMBUS_4_TX:
 	{
 		ret = 0;
 		break;
@@ -274,6 +278,8 @@
 	case INT_FM_TX: return IDX_INT_FM_TX;
 	case RT_PROXY_PORT_001_RX: return IDX_RT_PROXY_PORT_001_RX;
 	case RT_PROXY_PORT_001_TX: return IDX_RT_PROXY_PORT_001_TX;
+	case SLIMBUS_4_RX: return IDX_SLIMBUS_4_RX;
+	case SLIMBUS_4_TX: return IDX_SLIMBUS_4_TX;
 
 	default: return -EINVAL;
 	}
@@ -299,6 +305,8 @@
 	case SLIMBUS_1_RX:
 	case SLIMBUS_1_TX:
 	case SLIMBUS_2_TX:
+	case SLIMBUS_4_RX:
+	case SLIMBUS_4_TX:
 		ret_size = SIZEOF_CFG_CMD(afe_port_slimbus_sch_cfg);
 		break;
 	case RT_PROXY_PORT_001_RX: