diff options
author | ramesh.babu@linux.intel.com <ramesh.babu@linux.intel.com> | 2011-10-27 12:12:33 +0530 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-10-27 12:05:50 +0200 |
commit | e50fad4f029c36ed85a71fe7413684cfd3c7d78c (patch) | |
tree | b11c2b7550fe98ae1ab0654863361bdec74b6f59 | |
parent | 9c173d15f99ef182ac4b27e3e03779026d8e6cf1 (diff) | |
download | linux-e50fad4f029c36ed85a71fe7413684cfd3c7d78c.tar.gz linux-e50fad4f029c36ed85a71fe7413684cfd3c7d78c.tar.bz2 linux-e50fad4f029c36ed85a71fe7413684cfd3c7d78c.zip |
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.h | 3 | ||||
-rw-r--r-- | sound/soc/soc-pcm.c | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/include/sound/soc.h b/include/sound/soc.h index 11cfb5953e06..877fcc1e0167 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 ee15337353fa..52a7259f6184 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, |