]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ASoC: dapm: Modify widget stream name according to prefix
authorKoro Chen <koro.chen@mediatek.com>
Mon, 11 May 2015 02:36:53 +0000 (10:36 +0800)
committerSasha Levin <sasha.levin@oracle.com>
Wed, 10 Jun 2015 17:42:11 +0000 (13:42 -0400)
[ Upstream commit fdb6eb0a12871d5bfaf266c5a0d5259a5437a72f ]

When there is prefix specified, currently we will add this prefix in
widget->name, but not in widget->sname.
it causes failure at snd_soc_dapm_link_dai_widgets:

if (!w->sname || !strstr(w->sname, dai_w->name))

because dai_w->name has prefix added, but w->sname does not.
We should also add prefix for stream name

Signed-off-by: Koro Chen <koro.chen@mediatek.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
sound/soc/soc-dapm.c

index c61cb9cedbcd283c22625cac53367606fb0fc18a..943e6a9a6319756fe87e2bfcdbdb3d96f79fb431 100644 (file)
@@ -3076,11 +3076,16 @@ snd_soc_dapm_new_control(struct snd_soc_dapm_context *dapm,
        }
 
        prefix = soc_dapm_prefix(dapm);
-       if (prefix)
+       if (prefix) {
                w->name = kasprintf(GFP_KERNEL, "%s %s", prefix, widget->name);
-       else
+               if (widget->sname)
+                       w->sname = kasprintf(GFP_KERNEL, "%s %s", prefix,
+                                            widget->sname);
+       } else {
                w->name = kasprintf(GFP_KERNEL, "%s", widget->name);
-
+               if (widget->sname)
+                       w->sname = kasprintf(GFP_KERNEL, "%s", widget->sname);
+       }
        if (w->name == NULL) {
                kfree(w);
                return NULL;