From: Banajit Goswami Date: Sat, 15 Jul 2017 06:15:05 +0000 (-0700) Subject: ASoC: do not close shared backend dailink X-Git-Tag: v4.14-rc4~21^2~44^2~1^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b1cd2e34c69a2f3988786af451b6e17967c293a0;p=platform%2Fkernel%2Flinux-rpi.git ASoC: do not close shared backend dailink Multiple frontend dailinks may be connected to a backend dailink at the same time. When one of frontend dailinks is closed, the associated backend dailink should not be closed if it is connected to other active frontend dailinks. Change ensures that backend dailink is closed only after all connected frontend dailinks are closed. Signed-off-by: Gopikrishnaiah Anandan Signed-off-by: Banajit Goswami Signed-off-by: Patrick Lai Signed-off-by: Mark Brown Cc: stable@vger.kernel.org --- diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c index dcc5ece..93999b8 100644 --- a/sound/soc/soc-pcm.c +++ b/sound/soc/soc-pcm.c @@ -181,6 +181,10 @@ int dpcm_dapm_stream_event(struct snd_soc_pcm_runtime *fe, int dir, dev_dbg(be->dev, "ASoC: BE %s event %d dir %d\n", be->dai_link->name, event, dir); + if ((event == SND_SOC_DAPM_STREAM_STOP) && + (be->dpcm[dir].users >= 1)) + continue; + snd_soc_dapm_stream_event(be, dir, event); }