diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-09-21 14:54:34 +0100 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-09-21 14:54:34 +0100 |
commit | 92868de6245197cc06c0e66ab794cf159827281b (patch) | |
tree | 4961947e21764956a85acaf2bba2e5999d631cbd /sound/soc/soc-core.c | |
parent | 7c81beb048b49a9fe73254c6e6396e4b1937cdb9 (diff) | |
parent | f0e8ed858edb327802ee65fd695cc1538286226f (diff) | |
download | linux-3.10-92868de6245197cc06c0e66ab794cf159827281b.tar.gz linux-3.10-92868de6245197cc06c0e66ab794cf159827281b.tar.bz2 linux-3.10-92868de6245197cc06c0e66ab794cf159827281b.zip |
Merge branch 'for-3.1' into for-3.2
Diffstat (limited to 'sound/soc/soc-core.c')
-rw-r--r-- | sound/soc/soc-core.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index 10e5cdeeb18..bd20154e8b3 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -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> @@ -1432,9 +1433,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); |