diff options
| -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, | |||
| 211 | if (platform->driver->compr_ops && platform->driver->compr_ops->set_params) { | 211 | if (platform->driver->compr_ops && platform->driver->compr_ops->set_params) { |
| 212 | ret = platform->driver->compr_ops->set_params(cstream, params); | 212 | ret = platform->driver->compr_ops->set_params(cstream, params); |
| 213 | if (ret < 0) | 213 | if (ret < 0) |
| 214 | goto out; | 214 | goto err; |
| 215 | } | 215 | } |
| 216 | 216 | ||
| 217 | if (rtd->dai_link->compr_ops && rtd->dai_link->compr_ops->set_params) { | 217 | if (rtd->dai_link->compr_ops && rtd->dai_link->compr_ops->set_params) { |
| 218 | ret = rtd->dai_link->compr_ops->set_params(cstream); | 218 | ret = rtd->dai_link->compr_ops->set_params(cstream); |
| 219 | if (ret < 0) | 219 | if (ret < 0) |
| 220 | goto out; | 220 | goto err; |
| 221 | } | 221 | } |
| 222 | 222 | ||
| 223 | snd_soc_dapm_stream_event(rtd, SNDRV_PCM_STREAM_PLAYBACK, | 223 | snd_soc_dapm_stream_event(rtd, SNDRV_PCM_STREAM_PLAYBACK, |
| 224 | SND_SOC_DAPM_STREAM_START); | 224 | SND_SOC_DAPM_STREAM_START); |
| 225 | 225 | ||
| 226 | out: | 226 | /* cancel any delayed stream shutdown that is pending */ |
| 227 | rtd->pop_wait = 0; | ||
| 228 | mutex_unlock(&rtd->pcm_mutex); | ||
| 229 | |||
| 230 | cancel_delayed_work_sync(&rtd->delayed_work); | ||
| 231 | |||
| 232 | return ret; | ||
| 233 | |||
| 234 | err: | ||
| 227 | mutex_unlock(&rtd->pcm_mutex); | 235 | mutex_unlock(&rtd->pcm_mutex); |
| 228 | return ret; | 236 | return ret; |
| 229 | } | 237 | } |
