Commit 5981c2d6 authored by Subhransu S. Prusty's avatar Subhransu S. Prusty Committed by Mark Brown

ASoC: Intel: mfld-pcm: Use function instead of ioctl

Signed-off-by: default avatarSubhransu S. Prusty <subhransu.s.prusty@intel.com>
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent ea5edfe2
...@@ -314,8 +314,7 @@ static int sst_platform_init_stream(struct snd_pcm_substream *substream) ...@@ -314,8 +314,7 @@ static int sst_platform_init_stream(struct snd_pcm_substream *substream)
stream->stream_info.arg = substream; stream->stream_info.arg = substream;
stream->stream_info.buffer_ptr = 0; stream->stream_info.buffer_ptr = 0;
stream->stream_info.sfreq = substream->runtime->rate; stream->stream_info.sfreq = substream->runtime->rate;
ret_val = stream->ops->device_control( ret_val = stream->ops->stream_init(&stream->stream_info);
SST_SND_STREAM_INIT, &stream->stream_info);
if (ret_val) if (ret_val)
pr_err("control_set ret error %d\n", ret_val); pr_err("control_set ret error %d\n", ret_val);
return ret_val; return ret_val;
...@@ -403,8 +402,7 @@ static int sst_media_prepare(struct snd_pcm_substream *substream, ...@@ -403,8 +402,7 @@ static int sst_media_prepare(struct snd_pcm_substream *substream,
stream = substream->runtime->private_data; stream = substream->runtime->private_data;
str_id = stream->stream_info.str_id; str_id = stream->stream_info.str_id;
if (stream->stream_info.str_id) { if (stream->stream_info.str_id) {
ret_val = stream->ops->device_control( ret_val = stream->ops->stream_drop(str_id);
SST_SND_DROP, &str_id);
return ret_val; return ret_val;
} }
...@@ -461,7 +459,7 @@ static int sst_platform_pcm_trigger(struct snd_pcm_substream *substream, ...@@ -461,7 +459,7 @@ static int sst_platform_pcm_trigger(struct snd_pcm_substream *substream,
{ {
int ret_val = 0, str_id; int ret_val = 0, str_id;
struct sst_runtime_stream *stream; struct sst_runtime_stream *stream;
int str_cmd, status; int status;
pr_debug("sst_platform_pcm_trigger called\n"); pr_debug("sst_platform_pcm_trigger called\n");
stream = substream->runtime->private_data; stream = substream->runtime->private_data;
...@@ -469,29 +467,29 @@ static int sst_platform_pcm_trigger(struct snd_pcm_substream *substream, ...@@ -469,29 +467,29 @@ static int sst_platform_pcm_trigger(struct snd_pcm_substream *substream,
switch (cmd) { switch (cmd) {
case SNDRV_PCM_TRIGGER_START: case SNDRV_PCM_TRIGGER_START:
pr_debug("sst: Trigger Start\n"); pr_debug("sst: Trigger Start\n");
str_cmd = SST_SND_START;
status = SST_PLATFORM_RUNNING; status = SST_PLATFORM_RUNNING;
stream->stream_info.arg = substream; stream->stream_info.arg = substream;
ret_val = stream->ops->stream_start(str_id);
break; break;
case SNDRV_PCM_TRIGGER_STOP: case SNDRV_PCM_TRIGGER_STOP:
pr_debug("sst: in stop\n"); pr_debug("sst: in stop\n");
str_cmd = SST_SND_DROP;
status = SST_PLATFORM_DROPPED; status = SST_PLATFORM_DROPPED;
ret_val = stream->ops->stream_drop(str_id);
break; break;
case SNDRV_PCM_TRIGGER_PAUSE_PUSH: case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
pr_debug("sst: in pause\n"); pr_debug("sst: in pause\n");
str_cmd = SST_SND_PAUSE;
status = SST_PLATFORM_PAUSED; status = SST_PLATFORM_PAUSED;
ret_val = stream->ops->stream_pause(str_id);
break; break;
case SNDRV_PCM_TRIGGER_PAUSE_RELEASE: case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
pr_debug("sst: in pause release\n"); pr_debug("sst: in pause release\n");
str_cmd = SST_SND_RESUME;
status = SST_PLATFORM_RUNNING; status = SST_PLATFORM_RUNNING;
ret_val = stream->ops->stream_pause_release(str_id);
break; break;
default: default:
return -EINVAL; return -EINVAL;
} }
ret_val = stream->ops->device_control(str_cmd, &str_id);
if (!ret_val) if (!ret_val)
sst_set_stream_status(stream, status); sst_set_stream_status(stream, status);
...@@ -511,8 +509,7 @@ static snd_pcm_uframes_t sst_platform_pcm_pointer ...@@ -511,8 +509,7 @@ static snd_pcm_uframes_t sst_platform_pcm_pointer
if (status == SST_PLATFORM_INIT) if (status == SST_PLATFORM_INIT)
return 0; return 0;
str_info = &stream->stream_info; str_info = &stream->stream_info;
ret_val = stream->ops->device_control( ret_val = stream->ops->stream_read_tstamp(str_info);
SST_SND_BUFFER_POINTER, str_info);
if (ret_val) { if (ret_val) {
pr_err("sst: error code = %d\n", ret_val); pr_err("sst: error code = %d\n", ret_val);
return ret_val; return ret_val;
......
...@@ -54,18 +54,6 @@ enum sst_drv_status { ...@@ -54,18 +54,6 @@ enum sst_drv_status {
SST_PLATFORM_DROPPED, SST_PLATFORM_DROPPED,
}; };
enum sst_controls {
SST_SND_ALLOC = 0x00,
SST_SND_PAUSE = 0x01,
SST_SND_RESUME = 0x02,
SST_SND_DROP = 0x03,
SST_SND_FREE = 0x04,
SST_SND_BUFFER_POINTER = 0x05,
SST_SND_STREAM_INIT = 0x06,
SST_SND_START = 0x07,
SST_MAX_CONTROLS = 0x07,
};
enum sst_stream_ops { enum sst_stream_ops {
STREAM_OPS_PLAYBACK = 0, STREAM_OPS_PLAYBACK = 0,
STREAM_OPS_CAPTURE, STREAM_OPS_CAPTURE,
...@@ -126,7 +114,12 @@ struct compress_sst_ops { ...@@ -126,7 +114,12 @@ struct compress_sst_ops {
struct sst_ops { struct sst_ops {
int (*open) (struct snd_sst_params *str_param); int (*open) (struct snd_sst_params *str_param);
int (*device_control) (int cmd, void *arg); int (*stream_init) (struct pcm_stream_info *str_info);
int (*stream_start) (int str_id);
int (*stream_drop) (int str_id);
int (*stream_pause) (int str_id);
int (*stream_pause_release) (int str_id);
int (*stream_read_tstamp) (struct pcm_stream_info *str_info);
int (*send_byte_stream)(struct snd_sst_bytes_v2 *bytes); int (*send_byte_stream)(struct snd_sst_bytes_v2 *bytes);
int (*close) (unsigned int str_id); int (*close) (unsigned int str_id);
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment