diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2009-02-16 15:22:39 +0100 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2009-02-16 15:31:48 +0100 |
commit | e156ac4c571e3be741bc411e58820b74a9295c72 (patch) | |
tree | 0242ae04e411c660a2dd92ec217e7abf8bbc3f13 /sound/usb | |
parent | d2f8d7ee1a9b4650b4e43325b321801264f7c37a (diff) | |
download | op-kernel-dev-e156ac4c571e3be741bc411e58820b74a9295c72.zip op-kernel-dev-e156ac4c571e3be741bc411e58820b74a9295c72.tar.gz |
sound: usb-audio: fix uninitialized variable with M-Audio MIDI interfaces
Fix the snd_usbmidi_create_endpoints_midiman() function, which forgot to
set the out_interval member of the endpoint info structure for Midiman/
M-Audio devices. Since kernel 2.6.24, any non-zero value makes the
driver use interrupt transfers instead of bulk transfers. With EHCI
controllers, these random interval values result in unbearably large
latencies for output MIDI transfers.
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
Reported-by: David <devurandom@foobox.com>
Tested-by: David <devurandom@foobox.com>
Cc: <stable@kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/usb')
-rw-r--r-- | sound/usb/usbmidi.c | 1 |
1 files changed, 1 insertions, 0 deletions
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) |