]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[PATCH] USB: set the correct Interrupt interval in usb_bulk_msg
authorAlan Stern <stern@rowland.harvard.edu>
Fri, 27 Apr 2007 18:32:47 +0000 (14:32 -0400)
committerChris Wright <chrisw@sous-sol.org>
Mon, 11 Jun 2007 18:36:49 +0000 (11:36 -0700)
This patch (as902) fixes a mistake I introduced into usb_bulk_msg().
usb_fill_int_urb() already does the bit-shifting calculation for
high-speed Interrupt intervals; it shouldn't be done twice.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
drivers/usb/core/message.c

index 217a3d6d0a06dedc020129e5d0444e5b1ed8dda2..2f17468b5c1efe19fdfa8c7a52e3f9fc3a670865 100644 (file)
@@ -221,15 +221,10 @@ int usb_bulk_msg(struct usb_device *usb_dev, unsigned int pipe,
 
        if ((ep->desc.bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) ==
                        USB_ENDPOINT_XFER_INT) {
-               int interval;
-
-               if (usb_dev->speed == USB_SPEED_HIGH)
-                       interval = 1 << min(15, ep->desc.bInterval - 1);
-               else
-                       interval = ep->desc.bInterval;
                pipe = (pipe & ~(3 << 30)) | (PIPE_INTERRUPT << 30);
                usb_fill_int_urb(urb, usb_dev, pipe, data, len,
-                               usb_api_blocking_completion, NULL, interval);
+                               usb_api_blocking_completion, NULL,
+                               ep->desc.bInterval);
        } else
                usb_fill_bulk_urb(urb, usb_dev, pipe, data, len,
                                usb_api_blocking_completion, NULL);