diff options
Diffstat (limited to 'sound/usb/format.c')
-rw-r--r-- | sound/usb/format.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/sound/usb/format.c b/sound/usb/format.c index 30364aba79cc..3a1375459c06 100644 --- a/sound/usb/format.c +++ b/sound/usb/format.c @@ -264,13 +264,12 @@ static int parse_uac2_sample_rate_range(struct audioformat *fp, int nr_triplets, * on the audioformat table (audio class v2). */ static int parse_audio_format_rates_v2(struct snd_usb_audio *chip, - struct audioformat *fp, - struct usb_host_interface *iface) + struct audioformat *fp) { struct usb_device *dev = chip->dev; unsigned char tmp[2], *data; int nr_triplets, data_size, ret = 0; - int clock = snd_usb_clock_find_source(chip, chip->ctrl_intf, fp->clock); + int clock = snd_usb_clock_find_source(chip, fp->clock); if (clock < 0) { snd_printk(KERN_ERR "%s(): unable to find clock source (clock %d)\n", @@ -391,8 +390,12 @@ static int parse_audio_format_i(struct snd_usb_audio *chip, break; case UAC_VERSION_2: /* fp->channels is already set in this case */ - ret = parse_audio_format_rates_v2(chip, fp, iface); + ret = parse_audio_format_rates_v2(chip, fp); break; + default: + snd_printk(KERN_ERR "%d:%u:%d : invalid protocol version %d\n", + chip->dev->devnum, fp->iface, fp->altsetting, protocol); + return -EINVAL; } if (fp->channels < 1) { @@ -450,9 +453,13 @@ static int parse_audio_format_ii(struct snd_usb_audio *chip, framesize = le16_to_cpu(fmt->wSamplesPerFrame); snd_printd(KERN_INFO "found format II with max.bitrate = %d, frame size=%d\n", brate, framesize); fp->frame_size = framesize; - ret = parse_audio_format_rates_v2(chip, fp, iface); + ret = parse_audio_format_rates_v2(chip, fp); break; } + default: + snd_printk(KERN_ERR "%d:%u:%d : invalid protocol version %d\n", + chip->dev->devnum, fp->iface, fp->altsetting, protocol); + return -EINVAL; } return ret; |