Re: USB MIDI ehci timing/latency/jitter problem introduced 2.6.23.17->2.6.24

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux