aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/core/message.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-03-10 00:57:46 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-03-10 00:57:46 -0500
commit2695cf412f07f394587e7901cb3b4e9b66d25051 (patch)
tree603855ce8c359c3bcd979f4038c80058ddfc9cdd /drivers/usb/core/message.c
parent63e34ca93a62f472144db60fa3b81111c0d15721 (diff)
parentee17b289732e04fdcdd8ce2ce19b18d3e8b08e20 (diff)
Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6: (23 commits) USB Elan FTDI: check for workqueue creation USB: fix spinlock recursion in cdc-acm.c USB: fix Unaligned access in EHCI driver USB: Product ID for FT232RL in ftdi_sio USBNET: DM9501: Add Corega FEther USB-TXC support. USB: ipaq.c: Additional devices USB: further fix for usb-serial USB: fix usb-serial device naming bug USB: RTS/DTR signal patch for airprime driver USB: ftdi_sio: use port_probe / port_remove thereby fixing access to the latency_timer usb-serial: fix shutdown / device_unregister order USB: add Additional PIDs in ftdi_sio USB: add QL355P power supply ids to fdti_sio USB: New device IDs for cp2101 driver USB: kill dead code from hub.c USB: ratelimit debounce error messages USB: pxa2xx_udc: fix hardcoded irq number UHCI: fix port resume problem USB: set the correct interval for interrupt URBs USB: goku_udc: Remove crude cache coherency code ...
Diffstat (limited to 'drivers/usb/core/message.c')
-rw-r--r--drivers/usb/core/message.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
index 2f17468b5c1e..217a3d6d0a06 100644
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -221,10 +221,15 @@ int usb_bulk_msg(struct usb_device *usb_dev, unsigned int pipe,
221 221
222 if ((ep->desc.bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) == 222 if ((ep->desc.bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) ==
223 USB_ENDPOINT_XFER_INT) { 223 USB_ENDPOINT_XFER_INT) {
224 int interval;
225
226 if (usb_dev->speed == USB_SPEED_HIGH)
227 interval = 1 << min(15, ep->desc.bInterval - 1);
228 else
229 interval = ep->desc.bInterval;
224 pipe = (pipe & ~(3 << 30)) | (PIPE_INTERRUPT << 30); 230 pipe = (pipe & ~(3 << 30)) | (PIPE_INTERRUPT << 30);
225 usb_fill_int_urb(urb, usb_dev, pipe, data, len, 231 usb_fill_int_urb(urb, usb_dev, pipe, data, len,
226 usb_api_blocking_completion, NULL, 232 usb_api_blocking_completion, NULL, interval);
227 ep->desc.bInterval);
228 } else 233 } else
229 usb_fill_bulk_urb(urb, usb_dev, pipe, data, len, 234 usb_fill_bulk_urb(urb, usb_dev, pipe, data, len,
230 usb_api_blocking_completion, NULL); 235 usb_api_blocking_completion, NULL);