diff options
| -rw-r--r-- | sound/usb/mixer.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c index 8eb84c0f7bf1..45cc0aff9c3e 100644 --- a/sound/usb/mixer.c +++ b/sound/usb/mixer.c | |||
| @@ -715,8 +715,9 @@ static int check_input_term(struct mixer_build *state, int id, struct usb_audio_ | |||
| 715 | case UAC2_CLOCK_SELECTOR: { | 715 | case UAC2_CLOCK_SELECTOR: { |
| 716 | struct uac_selector_unit_descriptor *d = p1; | 716 | struct uac_selector_unit_descriptor *d = p1; |
| 717 | /* call recursively to retrieve the channel info */ | 717 | /* call recursively to retrieve the channel info */ |
| 718 | if (check_input_term(state, d->baSourceID[0], term) < 0) | 718 | err = check_input_term(state, d->baSourceID[0], term); |
| 719 | return -ENODEV; | 719 | if (err < 0) |
| 720 | return err; | ||
| 720 | term->type = d->bDescriptorSubtype << 16; /* virtual type */ | 721 | term->type = d->bDescriptorSubtype << 16; /* virtual type */ |
| 721 | term->id = id; | 722 | term->id = id; |
| 722 | term->name = uac_selector_unit_iSelector(d); | 723 | term->name = uac_selector_unit_iSelector(d); |
| @@ -1357,8 +1358,9 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void | |||
| 1357 | return err; | 1358 | return err; |
| 1358 | 1359 | ||
| 1359 | /* determine the input source type and name */ | 1360 | /* determine the input source type and name */ |
| 1360 | if (check_input_term(state, hdr->bSourceID, &iterm) < 0) | 1361 | err = check_input_term(state, hdr->bSourceID, &iterm); |
| 1361 | return -EINVAL; | 1362 | if (err < 0) |
| 1363 | return err; | ||
| 1362 | 1364 | ||
| 1363 | master_bits = snd_usb_combine_bytes(bmaControls, csize); | 1365 | master_bits = snd_usb_combine_bytes(bmaControls, csize); |
| 1364 | /* master configuration quirks */ | 1366 | /* master configuration quirks */ |
