[ALSA] usb-audio: allow low speed MIDI devices
Allow low speed MIDI devices because newer devices from ESI do not support full speed. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>hifive-unleashed-5.1
parent
a6a712aeb1
commit
076639f6ac
|
@ -2840,6 +2840,10 @@ static int snd_usb_create_streams(struct snd_usb_audio *chip, int ctrlif)
|
||||||
/* skip non-supported classes */
|
/* skip non-supported classes */
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (snd_usb_get_speed(dev) == USB_SPEED_LOW) {
|
||||||
|
snd_printk(KERN_ERR "low speed audio streaming not supported\n");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (! parse_audio_endpoints(chip, j)) {
|
if (! parse_audio_endpoints(chip, j)) {
|
||||||
usb_set_interface(dev, j, 0); /* reset the current interface */
|
usb_set_interface(dev, j, 0); /* reset the current interface */
|
||||||
usb_driver_claim_interface(&usb_audio_driver, iface, (void *)-1L);
|
usb_driver_claim_interface(&usb_audio_driver, iface, (void *)-1L);
|
||||||
|
@ -3382,7 +3386,8 @@ static int snd_usb_audio_create(struct usb_device *dev, int idx,
|
||||||
|
|
||||||
*rchip = NULL;
|
*rchip = NULL;
|
||||||
|
|
||||||
if (snd_usb_get_speed(dev) != USB_SPEED_FULL &&
|
if (snd_usb_get_speed(dev) != USB_SPEED_LOW &&
|
||||||
|
snd_usb_get_speed(dev) != USB_SPEED_FULL &&
|
||||||
snd_usb_get_speed(dev) != USB_SPEED_HIGH) {
|
snd_usb_get_speed(dev) != USB_SPEED_HIGH) {
|
||||||
snd_printk(KERN_ERR "unknown device speed %d\n", snd_usb_get_speed(dev));
|
snd_printk(KERN_ERR "unknown device speed %d\n", snd_usb_get_speed(dev));
|
||||||
return -ENXIO;
|
return -ENXIO;
|
||||||
|
@ -3456,7 +3461,9 @@ static int snd_usb_audio_create(struct usb_device *dev, int idx,
|
||||||
usb_make_path(dev, card->longname + len, sizeof(card->longname) - len);
|
usb_make_path(dev, card->longname + len, sizeof(card->longname) - len);
|
||||||
|
|
||||||
strlcat(card->longname,
|
strlcat(card->longname,
|
||||||
snd_usb_get_speed(dev) == USB_SPEED_FULL ? ", full speed" : ", high speed",
|
snd_usb_get_speed(dev) == USB_SPEED_LOW ? ", low speed" :
|
||||||
|
snd_usb_get_speed(dev) == USB_SPEED_FULL ? ", full speed" :
|
||||||
|
", high speed",
|
||||||
sizeof(card->longname));
|
sizeof(card->longname));
|
||||||
|
|
||||||
snd_usb_audio_create_proc(chip);
|
snd_usb_audio_create_proc(chip);
|
||||||
|
|
Loading…
Reference in New Issue