diff options
author | Vinod Koul <vinod.koul@intel.com> | 2015-02-11 23:29:56 -0500 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-02-23 10:43:59 -0500 |
commit | e0b87d476bc13fc55e7000a84cd1d87c8fdc1f2f (patch) | |
tree | c85ad27f9f2ff4d30eb5c00072b4738bc5d21a78 | |
parent | 7b9ca9d7e561ebdc93b43277eb69d20a0dc8f5cd (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>
-rw-r--r-- | sound/soc/intel/sst/sst_drv_interface.c | 31 |
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 | ||
575 | static 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 | |||
590 | static 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 | |||
575 | static int sst_stream_init(struct device *dev, struct pcm_stream_info *str_info) | 604 | static 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, |