diff options
Diffstat (limited to 'sound/usb/usbmidi.c')
-rw-r--r-- | sound/usb/usbmidi.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/sound/usb/usbmidi.c b/sound/usb/usbmidi.c index 2bb1834a8c22..4bacb50e9ad9 100644 --- a/sound/usb/usbmidi.c +++ b/sound/usb/usbmidi.c | |||
@@ -983,8 +983,10 @@ static int snd_usbmidi_out_endpoint_create(struct snd_usb_midi* umidi, | |||
983 | snd_usbmidi_out_endpoint_delete(ep); | 983 | snd_usbmidi_out_endpoint_delete(ep); |
984 | return -ENOMEM; | 984 | return -ENOMEM; |
985 | } | 985 | } |
986 | /* we never use interrupt output pipes */ | 986 | if (ep_info->out_interval) |
987 | pipe = usb_sndbulkpipe(umidi->chip->dev, ep_info->out_ep); | 987 | pipe = usb_sndintpipe(umidi->chip->dev, ep_info->out_ep); |
988 | else | ||
989 | pipe = usb_sndbulkpipe(umidi->chip->dev, ep_info->out_ep); | ||
988 | if (umidi->chip->usb_id == USB_ID(0x0a92, 0x1020)) /* ESI M4U */ | 990 | if (umidi->chip->usb_id == USB_ID(0x0a92, 0x1020)) /* ESI M4U */ |
989 | /* FIXME: we need more URBs to get reasonable bandwidth here: */ | 991 | /* FIXME: we need more URBs to get reasonable bandwidth here: */ |
990 | ep->max_transfer = 4; | 992 | ep->max_transfer = 4; |
@@ -996,8 +998,14 @@ static int snd_usbmidi_out_endpoint_create(struct snd_usb_midi* umidi, | |||
996 | snd_usbmidi_out_endpoint_delete(ep); | 998 | snd_usbmidi_out_endpoint_delete(ep); |
997 | return -ENOMEM; | 999 | return -ENOMEM; |
998 | } | 1000 | } |
999 | usb_fill_bulk_urb(ep->urb, umidi->chip->dev, pipe, buffer, | 1001 | if (ep_info->out_interval) |
1000 | ep->max_transfer, snd_usbmidi_out_urb_complete, ep); | 1002 | usb_fill_int_urb(ep->urb, umidi->chip->dev, pipe, buffer, |
1003 | ep->max_transfer, snd_usbmidi_out_urb_complete, | ||
1004 | ep, ep_info->out_interval); | ||
1005 | else | ||
1006 | usb_fill_bulk_urb(ep->urb, umidi->chip->dev, | ||
1007 | pipe, buffer, ep->max_transfer, | ||
1008 | snd_usbmidi_out_urb_complete, ep); | ||
1001 | ep->urb->transfer_flags = URB_NO_TRANSFER_DMA_MAP; | 1009 | ep->urb->transfer_flags = URB_NO_TRANSFER_DMA_MAP; |
1002 | 1010 | ||
1003 | spin_lock_init(&ep->buffer_lock); | 1011 | spin_lock_init(&ep->buffer_lock); |