[alsa-devel] [PATCH] ASoC:core:add flag ignore_pmdown_time in snd_soc_dai_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 --- include/sound/soc.h | 3 +++ 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 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,
On 27 October 2011 07:28, ramesh.babu@linux.intel.com wrote:
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
include/sound/soc.h | 3 +++ 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 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, -- 1.7.4.1
This looks fine by me. Peter, does this work for you ?
if so,
Acked-by: Liam Girdwood lrg@ti.com
On Thu, Oct 27, 2011 at 10:11:37AM +0100, Girdwood, Liam wrote:
This looks fine by me. Peter, does this work for you ?
Peter already has a per-CODEC property he's using since the CODEC needs this for pop/click issues. This is for a system integration problem the Intel guys have.
participants (3)
-
Girdwood, Liam
-
Mark Brown
-
ramesh.babu@linux.intel.com