Commit 7b8a043f authored by Daniel Mack's avatar Daniel Mack Committed by Takashi Iwai

ALSA: usbmixer: bail out early when parsing audio class v2 descriptors

This is just a quick hack that needs to be removed once the new units
defined by the audio class v2.0 standard are supported.

However, it allows using these devices for now, without mixer support.
Signed-off-by: default avatarDaniel Mack <daniel@caiaq.de>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 53ee98fe
...@@ -2258,7 +2258,8 @@ int snd_usb_create_mixer(struct snd_usb_audio *chip, int ctrlif, ...@@ -2258,7 +2258,8 @@ int snd_usb_create_mixer(struct snd_usb_audio *chip, int ctrlif,
}; };
struct usb_mixer_interface *mixer; struct usb_mixer_interface *mixer;
struct snd_info_entry *entry; struct snd_info_entry *entry;
int err; struct usb_host_interface *host_iface;
int err, protocol;
strcpy(chip->card->mixername, "USB Mixer"); strcpy(chip->card->mixername, "USB Mixer");
...@@ -2275,6 +2276,16 @@ int snd_usb_create_mixer(struct snd_usb_audio *chip, int ctrlif, ...@@ -2275,6 +2276,16 @@ int snd_usb_create_mixer(struct snd_usb_audio *chip, int ctrlif,
return -ENOMEM; return -ENOMEM;
} }
host_iface = &usb_ifnum_to_if(chip->dev, ctrlif)->altsetting[0];
protocol = host_iface->desc.bInterfaceProtocol;
/* FIXME! */
if (protocol != UAC_VERSION_1) {
snd_printk(KERN_WARNING "mixer interface protocol 0x%02x not yet supported\n",
protocol);
return 0;
}
if ((err = snd_usb_mixer_controls(mixer)) < 0 || if ((err = snd_usb_mixer_controls(mixer)) < 0 ||
(err = snd_usb_mixer_status_create(mixer)) < 0) (err = snd_usb_mixer_status_create(mixer)) < 0)
goto _error; goto _error;
......
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