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>
diff --git a/drivers/usb/core/urb.c b/drivers/usb/core/urb.c
index e622083..07c58af 100644
--- a/drivers/usb/core/urb.c
+++ b/drivers/usb/core/urb.c
@@ -492,9 +492,9 @@
/* 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;