Hi, Attached is a patch to solve a little mistake with output endpoints detection for standard USB MIDI devices. Midisport devices are affected only if using Lars Doelle firmware.
Typical syslog output was like this: kernel: snd-usb-midi: MIDIStreaming version 01.00 kernel: snd-usb-midi: EP 01: 2 jack(s) kernel: snd-usb-midi: EP 81: 2 jack(s) kernel: snd-usb-midi: created 0 output and 4 input ports kernel: usb-uhci.c: ENXIO c0008480, flags 0, urb c1b665a0, burb c1b664a0 kernel: snd-usb-midi: usb_submit_urb: -6 Regards, Pedro -- ALSA Library Bindings for Pascal http://alsapas.alturl.com
--- alsa-kernel/usb/usbmidi.c.old Mon Jan 13 10:50:26 2003 +++ alsa-kernel/usb/usbmidi.c Mon Feb 3 00:41:36 2003 @@ -821,7 +821,7 @@ ms_ep->bDescriptorType != USB_DT_CS_ENDPOINT || ms_ep->bDescriptorSubtype != MS_GENERAL) continue; - if ((ep->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK) == USB_DIR_OUT) { + if ((ep->bEndpointAddress & USB_ENDPOINT_DIR_MASK) == USB_DIR_OUT) { if (endpoints[epidx].out_ep) { if (++epidx >= MIDI_MAX_ENDPOINTS) { printk(KERN_WARNING "snd-usb-midi: too many endpoints\n");