From e496752fb316df884b279e6cfa295e6dd7ed2ed9 Mon Sep 17 00:00:00 2001 From: Banajit Goswami Date: Thu, 8 Dec 2016 22:20:41 -0800 Subject: [PATCH] ASoC: compare CPU DAI stream name to find BE DAI While setting up route for a particular device, compare stream name of CPU DAI and Backend DAI to find the correct Backend DAI. Change-Id: Ic3f7c0e5b2a1055e7fdf52c78ded797a9a126d03 Signed-off-by: Banajit Goswami Signed-off-by: Meng Wang --- sound/soc/soc-pcm.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c index baaf0fd69f1a..e7098e382d66 100644 --- a/sound/soc/soc-pcm.c +++ b/sound/soc/soc-pcm.c @@ -1377,7 +1377,12 @@ static struct snd_soc_pcm_runtime *dpcm_get_be(struct snd_soc_card *card, be->cpu_dai->playback_widget ? be->cpu_dai->playback_widget->name : "(not set)"); - if (be->cpu_dai->playback_widget == widget) + if ((be->cpu_dai->playback_widget && + be->cpu_dai->playback_widget == widget && + (be->dai_link->stream_name && + !strcmp(be->dai_link->stream_name, + be->cpu_dai->playback_widget->sname))) || + be->codec_dai->playback_widget == widget) return be; for_each_rtd_codec_dai(be, i, dai) { @@ -1396,7 +1401,12 @@ static struct snd_soc_pcm_runtime *dpcm_get_be(struct snd_soc_card *card, be->cpu_dai->capture_widget ? be->cpu_dai->capture_widget->name : "(not set)"); - if (be->cpu_dai->capture_widget == widget) + if ((be->cpu_dai->capture_widget && + be->cpu_dai->capture_widget == widget && + (be->dai_link->stream_name && + !strcmp(be->dai_link->stream_name, + be->cpu_dai->capture_widget->sname))) || + be->codec_dai->capture_widget == widget) return be; for_each_rtd_codec_dai(be, i, dai) {