[SQUASHME] ASoC: core: Make sure FE override adds sof- prefix once. sof-prefix must only be added once. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
diff --git a/include/sound/soc.h b/include/sound/soc.h index 5684044b..e0a0a59 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h
@@ -1021,6 +1021,7 @@ struct snd_soc_card { struct mutex dapm_mutex; bool instantiated; + bool topology_shortname_created; int (*probe)(struct snd_soc_card *card); int (*late_probe)(struct snd_soc_card *card);
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index 0ee2289..3fe1ed1 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c
@@ -1873,6 +1873,7 @@ EXPORT_SYMBOL_GPL(snd_soc_set_dmi_name); static void soc_check_tplg_fes(struct snd_soc_card *card) { struct snd_soc_component *component; + const struct snd_soc_component_driver *comp_drv; struct snd_soc_dai_link *dai_link; int i; @@ -1922,12 +1923,19 @@ static void soc_check_tplg_fes(struct snd_soc_card *card) } /* Inform userspace we are using alternate topology */ - if (component->driver->topology_name_prefix && - card->name != card->topology_shortname) { + if (component->driver->topology_name_prefix) { - snprintf(card->topology_shortname, 32, "%s-%s", - component->driver->topology_name_prefix, - card->name); + /* topology shortname created ? */ + if (!card->topology_shortname_created) { + comp_drv = component->driver; + + snprintf(card->topology_shortname, 32, "%s-%s", + comp_drv->topology_name_prefix, + card->name); + card->topology_shortname_created = true; + } + + /* use topology shortname */ card->name = card->topology_shortname; } }