Give the card an 'id' name which will prevent ALSA from calling choose_default_name(). This implementation only took the last part of a name containing whitespaces which for example caused 'Audio 4 DJ' to be shortened to 'DJ', which was not very descriptive.
The implementation now takes the short name and removes all whitespaces from it which is much nicer.
Signed-off-by: Daniel Mack daniel@caiaq.de --- sound/usb/caiaq/device.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/sound/usb/caiaq/device.c b/sound/usb/caiaq/device.c index 9be0f2e..7fdecde 100644 --- a/sound/usb/caiaq/device.c +++ b/sound/usb/caiaq/device.c @@ -435,6 +435,12 @@ static int __devinit init_card(struct snd_usb_caiaqdev *dev) strcpy(card->driver, MODNAME); strcpy(card->shortname, dev->product_name);
+ /* fill card->id with a shortened version of the product string + * which does not contain any whitespaces */ + for (c = card->shortname, len = 0; *c && len < sizeof(card->id); c++) + if (*c != ' ') + card->id[len++] = *c; + len = snprintf(card->longname, sizeof(card->longname), "%s %s (serial %s, ", dev->vendor_name, dev->product_name, dev->serial);