sof-prefix must only be added once.
Signed-off-by: Liam Girdwood liam.r.girdwood@linux.intel.com --- include/sound/soc.h | 1 + sound/soc/soc-core.c | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/include/sound/soc.h b/include/sound/soc.h index 5684044b0f2a..e0a0a59b2852 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 0ee228933845..3fe1ed1f323e 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; } }