diff options
author | Clemens Ladisch <clemens@ladisch.de> | 2009-02-16 15:22:39 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-03-16 17:52:58 -0700 |
commit | c18c7e7a02d6d922dc937913560caedc2159bbcd (patch) | |
tree | 7b59f280592990183b2395ea3baadd670069bdb4 | |
parent | e98972391b762e95e8345cb85715d682ba342941 (diff) | |
download | lwn-c18c7e7a02d6d922dc937913560caedc2159bbcd.tar.gz lwn-c18c7e7a02d6d922dc937913560caedc2159bbcd.zip |
sound: usb-audio: fix uninitialized variable with M-Audio MIDI interfaces
commit e156ac4c571e3be741bc411e58820b74a9295c72 upstream.
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>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-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 6676a177c99e..940ae5a2258f 100644 --- a/sound/usb/usbmidi.c +++ b/sound/usb/usbmidi.c @@ -1583,6 +1583,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) |