| From b1cd2e34c69a2f3988786af451b6e17967c293a0 Mon Sep 17 00:00:00 2001 |
| From: Banajit Goswami <bgoswami@codeaurora.org> |
| Date: Fri, 14 Jul 2017 23:15:05 -0700 |
| Subject: ASoC: do not close shared backend dailink |
| |
| From: Banajit Goswami <bgoswami@codeaurora.org> |
| |
| commit b1cd2e34c69a2f3988786af451b6e17967c293a0 upstream. |
| |
| 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 <agopik@codeaurora.org> |
| Signed-off-by: Banajit Goswami <bgoswami@codeaurora.org> |
| Signed-off-by: Patrick Lai <plai@codeaurora.org> |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| sound/soc/soc-pcm.c | 4 ++++ |
| 1 file changed, 4 insertions(+) |
| |
| --- a/sound/soc/soc-pcm.c |
| +++ b/sound/soc/soc-pcm.c |
| @@ -181,6 +181,10 @@ int dpcm_dapm_stream_event(struct snd_so |
| 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); |
| } |
| |