summaryrefslogtreecommitdiff
path: root/sound/soc/omap/omap-mcpdm.c
diff options
context:
space:
mode:
Diffstat (limited to 'sound/soc/omap/omap-mcpdm.c')
-rw-r--r--sound/soc/omap/omap-mcpdm.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sound/soc/omap/omap-mcpdm.c b/sound/soc/omap/omap-mcpdm.c
index a1f48f1cc887..57824b676d55 100644
--- a/sound/soc/omap/omap-mcpdm.c
+++ b/sound/soc/omap/omap-mcpdm.c
@@ -659,7 +659,8 @@ static void omap_mcpdm_abe_dai_shutdown(struct snd_pcm_substream *substream,
if (!dai->active) {
if (!mcpdm->ul_active && substream->stream == SNDRV_PCM_STREAM_CAPTURE) {
omap_mcpdm_capture_close(mcpdm, mcpdm->uplink);
- if (!mcpdm->free && !mcpdm->dn_channels)
+ if (!mcpdm->free && !mcpdm->dn_channels &&
+ !mcpdm->dl_active)
omap_mcpdm_free(mcpdm);
}
if (!mcpdm->dl_active && substream->stream == SNDRV_PCM_STREAM_PLAYBACK)