David wrote: > I've isolated it to a patch made on the alsa side under commit: > > commit a6a712aeb17ff30206ae1bc827d50497d884602a > Author: Clemens Ladisch <clemens@xxxxxxxxxx> > Date: Tue Aug 21 08:56:08 2007 +0200 > > [ALSA] usb-audio: allow output interrupt transfers for MIDI > > Allow output interrupt transfers for some MIDI devices that require > them. > > The patch effectively changed how alsa interfaces with my midi dongle, going > from using the bulk endpoint to the interrupt one for output. This is because of an uninitialized variable in another part of the code, which makes the snd_usbmidi_out_endpoint_create() function believe that it has to use an interrupt pipe. Please try the (untested) patch below. > Why would interrupt transfers behave differently when using ehci and a hub's > TT vice being native to the ohci hcd? Perhaps the OHCI HCD doesn't use interrupt transfers when the endpoint is actually a bulk endpoint, or it doesn't use transfer intervals that are as high as those used by EHCI, or the random stack contents are just different. Best regards, Clemens diff --git a/sound/usb/usbmidi.c b/sound/usb/usbmidi.c index 320641a..26bad37 100644 --- a/sound/usb/usbmidi.c +++ b/sound/usb/usbmidi.c @@ -1625,6 +1625,7 @@ static int snd_usbmidi_create_endpoints_midiman(struct snd_usb_midi* umidi, } ep_info.out_ep = get_endpoint(hostif, 2)->bEndpointAddress & USB_ENDPOINT_NUMBER_MASK; + ep_info.out_interval = 0; ep_info.out_cables = endpoint->out_cables & 0x5555; err = snd_usbmidi_out_endpoint_create(umidi, &ep_info, &umidi->endpoints[0]); if (err < 0) -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html