diff --git a/include/sound/soc.h b/include/sound/soc.h index b27c7a2d3bb0..f1de3e0c75bc 100644 --- a/include/sound/soc.h +++ b/include/sound/soc.h @@ -702,6 +702,8 @@ struct snd_soc_aux_dev { /* SoC card */ struct snd_soc_card { const char *name; + const char *long_name; + const char *driver_name; struct device *dev; struct snd_card *snd_card; struct module *owner; diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index a477e218aa28..c1a4cf480c72 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -1926,9 +1926,11 @@ static void snd_soc_instantiate_card(struct snd_soc_card *card) card->num_dapm_routes); snprintf(card->snd_card->shortname, sizeof(card->snd_card->shortname), - "%s", card->name); - snprintf(card->snd_card->longname, sizeof(card->snd_card->longname), "%s", card->name); + snprintf(card->snd_card->longname, sizeof(card->snd_card->longname), + "%s", card->long_name ? card->long_name : card->name); + snprintf(card->snd_card->driver, sizeof(card->snd_card->driver), + "%s", card->driver_name); if (card->late_probe) { ret = card->late_probe(card);