ASoC: Ensure we generate a driver name
Commit 873bd4c
(ASoC: Don't set invalid name string to snd_card->driver
field) broke generation of a driver name for all ASoC cards relying on the
automatic generation of one. Fix this by using the old default with spaces
replaced by underscores.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
f93dc4b6c9
commit
f0e8ed858e
1 changed files with 15 additions and 3 deletions
|
@ -30,6 +30,7 @@
|
|||
#include <linux/bitops.h>
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/ctype.h>
|
||||
#include <linux/slab.h>
|
||||
#include <sound/ac97_codec.h>
|
||||
#include <sound/core.h>
|
||||
|
@ -1434,9 +1435,20 @@ static void snd_soc_instantiate_card(struct snd_soc_card *card)
|
|||
"%s", card->name);
|
||||
snprintf(card->snd_card->longname, sizeof(card->snd_card->longname),
|
||||
"%s", card->long_name ? card->long_name : card->name);
|
||||
if (card->driver_name)
|
||||
strlcpy(card->snd_card->driver, card->driver_name,
|
||||
sizeof(card->snd_card->driver));
|
||||
snprintf(card->snd_card->driver, sizeof(card->snd_card->driver),
|
||||
"%s", card->driver_name ? card->driver_name : card->name);
|
||||
for (i = 0; i < ARRAY_SIZE(card->snd_card->driver); i++) {
|
||||
switch (card->snd_card->driver[i]) {
|
||||
case '_':
|
||||
case '-':
|
||||
case '\0':
|
||||
break;
|
||||
default:
|
||||
if (!isalnum(card->snd_card->driver[i]))
|
||||
card->snd_card->driver[i] = '_';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (card->late_probe) {
|
||||
ret = card->late_probe(card);
|
||||
|
|
Loading…
Reference in a new issue