diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2013-04-11 19:00:27 +0200 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2013-04-11 19:00:27 +0200 |
commit | ee3aee6a3bd846a70588ff219142244d00a51582 (patch) | |
tree | 36095e2514e34cb8c59f981765416b72af97df57 | |
parent | ASoC: wm5102: Correct lookup of arizona struct in SYSCLK event (diff) | |
parent | ASoC: compress: Cancel delayed power down if needed (diff) | |
download | linux-ee3aee6a3bd846a70588ff219142244d00a51582.tar.xz linux-ee3aee6a3bd846a70588ff219142244d00a51582.zip |
Merge remote-tracking branch 'asoc/fix/compress' into tmp
-rw-r--r-- | sound/soc/soc-compress.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/sound/soc/soc-compress.c b/sound/soc/soc-compress.c index b5b3db71e253..ed0bfb0ddb96 100644 --- a/sound/soc/soc-compress.c +++ b/sound/soc/soc-compress.c @@ -211,19 +211,27 @@ static int soc_compr_set_params(struct snd_compr_stream *cstream, if (platform->driver->compr_ops && platform->driver->compr_ops->set_params) { ret = platform->driver->compr_ops->set_params(cstream, params); if (ret < 0) - goto out; + goto err; } if (rtd->dai_link->compr_ops && rtd->dai_link->compr_ops->set_params) { ret = rtd->dai_link->compr_ops->set_params(cstream); if (ret < 0) - goto out; + goto err; } snd_soc_dapm_stream_event(rtd, SNDRV_PCM_STREAM_PLAYBACK, SND_SOC_DAPM_STREAM_START); -out: + /* cancel any delayed stream shutdown that is pending */ + rtd->pop_wait = 0; + mutex_unlock(&rtd->pcm_mutex); + + cancel_delayed_work_sync(&rtd->delayed_work); + + return ret; + +err: mutex_unlock(&rtd->pcm_mutex); return ret; } |