Commit 8d062b9a authored by Alan Stern's avatar Alan Stern Committed by Greg Kroah-Hartman
Browse files

USB: set the correct Interrupt interval in usb_bulk_msg



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: default avatarAlan Stern <stern@rowland.harvard.edu>
parent 762e92fa
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -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);