ASoC: sst_platform porting sst dsp driver interface as per latest in Greg's staging tree

The interface between sst platform driver and intel sst dsp driver
have been changed in Greg's staging tree - next branch

This patch adds the interface changes compatible with the new interface
in Greg's staging tree

Signed-off-by: Harsha Priya <priya.harsha@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
diff --git a/sound/soc/mid-x86/sst_platform.c b/sound/soc/mid-x86/sst_platform.c
index a4e3fa3..1d1f544 100644
--- a/sound/soc/mid-x86/sst_platform.c
+++ b/sound/soc/mid-x86/sst_platform.c
@@ -168,7 +168,7 @@
 		pr_debug("Capture stream,Device %d\n",
 					substream->pcm->device);
 	}
-	ret_val = stream->sstdrv_ops->control_set(SST_SND_ALLOC, &str_params);
+	ret_val = stream->sstdrv_ops->pcm_control->open(&str_params);
 	pr_debug("SST_SND_PLAY/CAPTURE ret_val = %x\n", ret_val);
 	if (ret_val < 0)
 		return ret_val;
@@ -207,8 +207,8 @@
 	stream->stream_info.mad_substream = substream;
 	stream->stream_info.buffer_ptr = 0;
 	stream->stream_info.sfreq = substream->runtime->rate;
-	ret_val = stream->sstdrv_ops->control_set(SST_SND_STREAM_INIT,
-				&stream->stream_info);
+	ret_val = stream->sstdrv_ops->pcm_control->device_control(
+			SST_SND_STREAM_INIT, &stream->stream_info);
 	if (ret_val)
 		pr_err("control_set ret error %d\n", ret_val);
 	return ret_val;
@@ -261,8 +261,7 @@
 	stream = substream->runtime->private_data;
 	str_id = stream->stream_info.str_id;
 	if (str_id)
-		ret_val = stream->sstdrv_ops->control_set(
-					SST_SND_FREE, &str_id);
+		ret_val = stream->sstdrv_ops->pcm_control->close(str_id);
 	kfree(stream->sstdrv_ops);
 	kfree(stream);
 	return ret_val;
@@ -277,7 +276,7 @@
 	stream = substream->runtime->private_data;
 	str_id = stream->stream_info.str_id;
 	if (stream->stream_info.str_id) {
-		ret_val = stream->sstdrv_ops->control_set(
+		ret_val = stream->sstdrv_ops->pcm_control->device_control(
 					SST_SND_DROP, &str_id);
 		return ret_val;
 	}
@@ -300,6 +299,7 @@
 {
 	int ret_val = 0, str_id;
 	struct sst_runtime_stream *stream;
+	int str_cmd, status;
 
 	pr_debug("sst_platform_pcm_trigger called\n");
 	stream = substream->runtime->private_data;
@@ -307,40 +307,33 @@
 	switch (cmd) {
 	case SNDRV_PCM_TRIGGER_START:
 		pr_debug("sst: Trigger Start\n");
-		ret_val = stream->sstdrv_ops->control_set(
-					SST_SND_START, &str_id);
-		if (ret_val)
-			break;
-		sst_set_stream_status(stream, SST_PLATFORM_RUNNING);
+		str_cmd = SST_SND_START;
+		status = SST_PLATFORM_RUNNING;
 		stream->stream_info.mad_substream = substream;
 		break;
 	case SNDRV_PCM_TRIGGER_STOP:
 		pr_debug("sst: in stop\n");
-		ret_val = stream->sstdrv_ops->control_set(
-				SST_SND_DROP, &str_id);
-		if (ret_val)
-			break;
-		sst_set_stream_status(stream, SST_PLATFORM_DROPPED);
+		str_cmd = SST_SND_DROP;
+		status = SST_PLATFORM_DROPPED;
 		break;
 	case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
 		pr_debug("sst: in pause\n");
-		ret_val = stream->sstdrv_ops->control_set(
-				SST_SND_PAUSE, &str_id);
-		if (ret_val)
-			break;
-		sst_set_stream_status(stream, SST_PLATFORM_PAUSED);
+		str_cmd = SST_SND_PAUSE;
+		status = SST_PLATFORM_PAUSED;
 		break;
 	case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
 		pr_debug("sst: in pause release\n");
-		ret_val = stream->sstdrv_ops->control_set(
-			SST_SND_RESUME, &str_id);
-		if (ret_val)
-			break;
-		sst_set_stream_status(stream, SST_PLATFORM_RUNNING);
+		str_cmd = SST_SND_RESUME;
+		status = SST_PLATFORM_RUNNING;
 		break;
 	default:
-		ret_val = -EINVAL;
+		return -EINVAL;
 	}
+	ret_val = stream->sstdrv_ops->pcm_control->device_control(str_cmd,
+								&str_id);
+	if (!ret_val)
+		sst_set_stream_status(stream, status);
+
 	return ret_val;
 }
 
@@ -357,7 +350,7 @@
 	if (status == SST_PLATFORM_INIT)
 		return 0;
 	str_info = &stream->stream_info;
-	ret_val = stream->sstdrv_ops->control_set(
+	ret_val = stream->sstdrv_ops->pcm_control->device_control(
 				SST_SND_BUFFER_POINTER, str_info);
 	if (ret_val) {
 		pr_err("sst: error code = %d\n", ret_val);