aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/core/devio.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb/core/devio.c')
-rw-r--r--drivers/usb/core/devio.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
index e6a6d67c8705..09c8d9ca61ae 100644
--- a/drivers/usb/core/devio.c
+++ b/drivers/usb/core/devio.c
@@ -1709,11 +1709,17 @@ static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb
1709 as->urb->start_frame = uurb->start_frame; 1709 as->urb->start_frame = uurb->start_frame;
1710 as->urb->number_of_packets = number_of_packets; 1710 as->urb->number_of_packets = number_of_packets;
1711 as->urb->stream_id = stream_id; 1711 as->urb->stream_id = stream_id;
1712 if (uurb->type == USBDEVFS_URB_TYPE_ISO || 1712
1713 ps->dev->speed == USB_SPEED_HIGH) 1713 if (ep->desc.bInterval) {
1714 as->urb->interval = 1 << min(15, ep->desc.bInterval - 1); 1714 if (uurb->type == USBDEVFS_URB_TYPE_ISO ||
1715 else 1715 ps->dev->speed == USB_SPEED_HIGH ||
1716 as->urb->interval = ep->desc.bInterval; 1716 ps->dev->speed >= USB_SPEED_SUPER)
1717 as->urb->interval = 1 <<
1718 min(15, ep->desc.bInterval - 1);
1719 else
1720 as->urb->interval = ep->desc.bInterval;
1721 }
1722
1717 as->urb->context = as; 1723 as->urb->context = as;
1718 as->urb->complete = async_completed; 1724 as->urb->complete = async_completed;
1719 for (totlen = u = 0; u < number_of_packets; u++) { 1725 for (totlen = u = 0; u < number_of_packets; u++) {