summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorramesh.babu@linux.intel.com <ramesh.babu@linux.intel.com>2011-10-27 12:12:33 +0530
committerMark Brown <broonie@opensource.wolfsonmicro.com>2011-10-27 12:05:50 +0200
commite50fad4f029c36ed85a71fe7413684cfd3c7d78c (patch)
treeb11c2b7550fe98ae1ab0654863361bdec74b6f59
parent9c173d15f99ef182ac4b27e3e03779026d8e6cf1 (diff)
downloadop-kernel-dev-e50fad4f029c36ed85a71fe7413684cfd3c7d78c.zip
op-kernel-dev-e50fad4f029c36ed85a71fe7413684cfd3c7d78c.tar.gz
ASoC: Allow machines to ignore pmdown_time per-link
With this flag, each dai_link in machine driver can choose to ignore pmdown_time during DAPM shut down sequence. If the ignore_pmdown_time is set, the DAPM for corresponding DAI will be executed immediately. Signed-off-by: Ramesh Babu K V <ramesh.babu@linux.intel.com> Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com> Acked-by: Liam Girdwood <lrg@ti.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
-rw-r--r--include/sound/soc.h3
-rw-r--r--sound/soc/soc-pcm.c3
2 files changed, 5 insertions, 1 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 11cfb59..877fcc1 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -718,6 +718,9 @@ struct snd_soc_dai_link {
/* Symmetry requirements */
unsigned int symmetric_rates:1;
+ /* pmdown_time is ignored at stop */
+ unsigned int ignore_pmdown_time:1;
+
/* codec/machine specific init - e.g. add machine controls */
int (*init)(struct snd_soc_pcm_runtime *rtd);
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index ee15337..52a7259 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -319,7 +319,8 @@ static int soc_pcm_close(struct snd_pcm_substream *substream)
cpu_dai->runtime = NULL;
if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
- if (unlikely(codec->ignore_pmdown_time)) {
+ if (unlikely(codec->ignore_pmdown_time ||
+ rtd->dai_link->ignore_pmdown_time)) {
/* powered down playback stream now */
snd_soc_dapm_stream_event(rtd,
codec_dai->driver->playback.stream_name,
OpenPOWER on IntegriCloud