|
@@ -2123,7 +2123,7 @@ static int snd_usb_mixer_controls(struct usb_mixer_interface *mixer)
|
|
|
state.oterm.type = le16_to_cpu(desc->wTerminalType);
|
|
|
state.oterm.name = desc->iTerminal;
|
|
|
err = parse_audio_unit(&state, desc->bSourceID);
|
|
|
- if (err < 0)
|
|
|
+ if (err < 0 && err != -EINVAL)
|
|
|
return err;
|
|
|
} else { /* UAC_VERSION_2 */
|
|
|
struct uac2_output_terminal_descriptor *desc = p;
|
|
@@ -2135,12 +2135,12 @@ static int snd_usb_mixer_controls(struct usb_mixer_interface *mixer)
|
|
|
state.oterm.type = le16_to_cpu(desc->wTerminalType);
|
|
|
state.oterm.name = desc->iTerminal;
|
|
|
err = parse_audio_unit(&state, desc->bSourceID);
|
|
|
- if (err < 0)
|
|
|
+ if (err < 0 && err != -EINVAL)
|
|
|
return err;
|
|
|
|
|
|
/* for UAC2, use the same approach to also add the clock selectors */
|
|
|
err = parse_audio_unit(&state, desc->bCSourceID);
|
|
|
- if (err < 0)
|
|
|
+ if (err < 0 && err != -EINVAL)
|
|
|
return err;
|
|
|
}
|
|
|
}
|