summaryrefslogtreecommitdiff
path: root/drivers/usb/core/urb.c
diff options
context:
space:
mode:
authorThomas Pugliese <thomas.pugliese@gmail.com>2013-12-09 23:45:43 +0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-12-10 01:27:32 +0400
commita2cd612dc9be768b516541b2164c843849bc3bb3 (patch)
tree0e8d33b0757e383f5517f96c62a2d076de2f6bc1 /drivers/usb/core/urb.c
parent7005234c18f233d3613b09e9ce4b6ce6977bf246 (diff)
downloadlinux-a2cd612dc9be768b516541b2164c843849bc3bb3.tar.xz
usb: core: allow isoc URBs for wireless devices with an interval < 6
In usb_submit_urb, do not fail if an isoc URB for a wireless USB device has an interval < 6. Per WUSB spec, isoc endpoints can support values from 1-16. Valid values for interrupt URBs for wireless USB devices are still 6-16. Signed-off-by: Thomas Pugliese <thomas.pugliese@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/core/urb.c')
-rw-r--r--drivers/usb/core/urb.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/usb/core/urb.c b/drivers/usb/core/urb.c
index e62208356c89..07c58af6b5c0 100644
--- a/drivers/usb/core/urb.c
+++ b/drivers/usb/core/urb.c
@@ -492,9 +492,9 @@ int usb_submit_urb(struct urb *urb, gfp_t mem_flags)
/* too small? */
switch (dev->speed) {
case USB_SPEED_WIRELESS:
- if (urb->interval < 6)
+ if ((urb->interval < 6)
+ && (xfertype == USB_ENDPOINT_XFER_INT))
return -EINVAL;
- break;
default:
if (urb->interval <= 0)
return -EINVAL;