aboutsummaryrefslogtreecommitdiffstats
path: root/sound/usb/usbmidi.c
diff options
context:
space:
mode:
authorClemens Ladisch <clemens@ladisch.de>2007-05-07 03:29:32 -0400
committerJaroslav Kysela <perex@suse.cz>2007-05-11 10:56:17 -0400
commit490cbd92ed4d9915b582f4e40c605eeb977e5d40 (patch)
treeafbe6759e98fe65ac4015869139c347b52ef8f44 /sound/usb/usbmidi.c
parentd05cc104320210e1c38ff9675c5038cffb2d86dc (diff)
[ALSA] usb-audio: work around wrong wMaxPacketSize on ESI M4U
Add a workaround for the ESI M4U that claims to support 32-byte packets but ignores the remaining bytes of packets bigger than four bytes. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Diffstat (limited to 'sound/usb/usbmidi.c')
-rw-r--r--sound/usb/usbmidi.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sound/usb/usbmidi.c b/sound/usb/usbmidi.c
index 911f4482b5e1..99295f9b7691 100644
--- a/sound/usb/usbmidi.c
+++ b/sound/usb/usbmidi.c
@@ -965,7 +965,11 @@ static int snd_usbmidi_out_endpoint_create(struct snd_usb_midi* umidi,
965 } 965 }
966 /* we never use interrupt output pipes */ 966 /* we never use interrupt output pipes */
967 pipe = usb_sndbulkpipe(umidi->chip->dev, ep_info->out_ep); 967 pipe = usb_sndbulkpipe(umidi->chip->dev, ep_info->out_ep);
968 ep->max_transfer = usb_maxpacket(umidi->chip->dev, pipe, 1); 968 if (umidi->chip->usb_id == USB_ID(0x0a92, 0x1020)) /* ESI M4U */
969 /* FIXME: we need more URBs to get reasonable bandwidth here: */
970 ep->max_transfer = 4;
971 else
972 ep->max_transfer = usb_maxpacket(umidi->chip->dev, pipe, 1);
969 buffer = usb_buffer_alloc(umidi->chip->dev, ep->max_transfer, 973 buffer = usb_buffer_alloc(umidi->chip->dev, ep->max_transfer,
970 GFP_KERNEL, &ep->urb->transfer_dma); 974 GFP_KERNEL, &ep->urb->transfer_dma);
971 if (!buffer) { 975 if (!buffer) {