aboutsummaryrefslogtreecommitdiffstats
path: root/sound/soc
diff options
context:
space:
mode:
authorVinod Koul <vinod.koul@intel.com>2015-02-11 23:29:56 -0500
committerMark Brown <broonie@kernel.org>2015-02-23 10:43:59 -0500
commite0b87d476bc13fc55e7000a84cd1d87c8fdc1f2f (patch)
treec85ad27f9f2ff4d30eb5c00072b4738bc5d21a78 /sound/soc
parent7b9ca9d7e561ebdc93b43277eb69d20a0dc8f5cd (diff)
ASoC: Intel: add support for pause and resume in sst
This adds missing pcm pause and resume ops in the driver Signed-off-by: Vinod Koul <vinod.koul@intel.com> Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'sound/soc')
-rw-r--r--sound/soc/intel/sst/sst_drv_interface.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/sound/soc/intel/sst/sst_drv_interface.c b/sound/soc/intel/sst/sst_drv_interface.c
index 5f75ef3cdd22..5d56fcdd58d8 100644
--- a/sound/soc/intel/sst/sst_drv_interface.c
+++ b/sound/soc/intel/sst/sst_drv_interface.c
@@ -572,6 +572,35 @@ static int sst_stream_drop(struct device *dev, int str_id)
572 return sst_drop_stream(ctx, str_id); 572 return sst_drop_stream(ctx, str_id);
573} 573}
574 574
575static int sst_stream_pause(struct device *dev, int str_id)
576{
577 struct stream_info *str_info;
578 struct intel_sst_drv *ctx = dev_get_drvdata(dev);
579
580 if (ctx->sst_state != SST_FW_RUNNING)
581 return 0;
582
583 str_info = get_stream_info(ctx, str_id);
584 if (!str_info)
585 return -EINVAL;
586
587 return sst_pause_stream(ctx, str_id);
588}
589
590static int sst_stream_resume(struct device *dev, int str_id)
591{
592 struct stream_info *str_info;
593 struct intel_sst_drv *ctx = dev_get_drvdata(dev);
594
595 if (ctx->sst_state != SST_FW_RUNNING)
596 return 0;
597
598 str_info = get_stream_info(ctx, str_id);
599 if (!str_info)
600 return -EINVAL;
601 return sst_resume_stream(ctx, str_id);
602}
603
575static int sst_stream_init(struct device *dev, struct pcm_stream_info *str_info) 604static int sst_stream_init(struct device *dev, struct pcm_stream_info *str_info)
576{ 605{
577 int str_id = 0; 606 int str_id = 0;
@@ -633,6 +662,8 @@ static struct sst_ops pcm_ops = {
633 .stream_init = sst_stream_init, 662 .stream_init = sst_stream_init,
634 .stream_start = sst_stream_start, 663 .stream_start = sst_stream_start,
635 .stream_drop = sst_stream_drop, 664 .stream_drop = sst_stream_drop,
665 .stream_pause = sst_stream_pause,
666 .stream_pause_release = sst_stream_resume,
636 .stream_read_tstamp = sst_read_timestamp, 667 .stream_read_tstamp = sst_read_timestamp,
637 .send_byte_stream = sst_send_byte_stream, 668 .send_byte_stream = sst_send_byte_stream,
638 .close = sst_close_pcm_stream, 669 .close = sst_close_pcm_stream,