Commit 56a23ee5 authored by Takashi Iwai's avatar Takashi Iwai

ALSA: usb-audio: Proper fallback at get_term_name()

get_term_name() calls snd_usb_copy_string_desc() for retrieving the
name when a specific ID (name field) is given.  When this returns an
error (zero), however, it simply returns as is.  This will end up in a
fixed name string in the caller side, which often is meaningless.

For giving a bit more useful name string depending on the terminal
type, change the get_term_name() function to go through the fallback
mode.
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 50947fb0
......@@ -656,10 +656,14 @@ static int get_term_name(struct mixer_build *state, struct usb_audio_term *iterm
unsigned char *name, int maxlen, int term_only)
{
struct iterm_name_combo *names;
int len;
if (iterm->name)
return snd_usb_copy_string_desc(state, iterm->name,
if (iterm->name) {
len = snd_usb_copy_string_desc(state, iterm->name,
name, maxlen);
if (len)
return len;
}
/* virtual type - not a real terminal */
if (iterm->type >> 16) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment