diff options
author | Subhransu S. Prusty <subhransu.s.prusty@intel.com> | 2014-10-30 13:50:58 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2014-10-31 15:51:59 +0300 |
commit | fdcc4a039f0263f4674e363ebed14783b2f0543d (patch) | |
tree | 8d7fce7b0c128306a7a3508c56ec9a2e27169bdc | |
parent | 5794b7ec62d85700d372b07d88eaf71e807f542f (diff) | |
download | linux-fdcc4a039f0263f4674e363ebed14783b2f0543d.tar.xz |
ASoC: mfld-compress: implement .power callback
.power callback is required to invoked for compressed audio as well to turn
on/off sst, so invoke them
Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r-- | sound/soc/intel/sst-mfld-platform-compress.c | 8 | ||||
-rw-r--r-- | sound/soc/intel/sst-mfld-platform.h | 1 |
2 files changed, 8 insertions, 1 deletions
diff --git a/sound/soc/intel/sst-mfld-platform-compress.c b/sound/soc/intel/sst-mfld-platform-compress.c index 59467775c9b8..395168986462 100644 --- a/sound/soc/intel/sst-mfld-platform-compress.c +++ b/sound/soc/intel/sst-mfld-platform-compress.c @@ -67,8 +67,11 @@ static int sst_platform_compr_open(struct snd_compr_stream *cstream) goto out_ops; } stream->compr_ops = sst->compr_ops; - stream->id = 0; + + /* Turn on LPE */ + sst->compr_ops->power(sst->dev, true); + sst_set_stream_status(stream, SST_PLATFORM_INIT); runtime->private_data = stream; return 0; @@ -83,6 +86,9 @@ static int sst_platform_compr_free(struct snd_compr_stream *cstream) int ret_val = 0, str_id; stream = cstream->runtime->private_data; + /* Turn off LPE */ + sst->compr_ops->power(sst->dev, false); + /*need to check*/ str_id = stream->id; if (str_id) diff --git a/sound/soc/intel/sst-mfld-platform.h b/sound/soc/intel/sst-mfld-platform.h index d41d1c36031a..79c8d1246a8f 100644 --- a/sound/soc/intel/sst-mfld-platform.h +++ b/sound/soc/intel/sst-mfld-platform.h @@ -117,6 +117,7 @@ struct compress_sst_ops { int (*get_codec_caps)(struct snd_compr_codec_caps *codec); int (*set_metadata)(struct device *dev, unsigned int str_id, struct snd_compr_metadata *mdata); + int (*power)(struct device *dev, bool state); }; struct sst_ops { |