On Sun, Oct 17, 2010 at 08:19:55AM -0500, Ming Lei wrote:
2010/8/7 Mike Frysinger <vapier@xxxxxxxxxx>:
From: Cliff Cai <cliff.cai@xxxxxxxxxx>
Some bad-behaved peripherals (like cheap USB storage devices) need this in
order to recover during configuration time.
Signed-off-by: Cliff Cai <cliff.cai@xxxxxxxxxx>
Signed-off-by: Mike Frysinger <vapier@xxxxxxxxxx>
---
v2
- tweak the delay based on the speed
drivers/usb/musb/musb_host.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
index 877d20b..64dd4ab 100644
--- a/drivers/usb/musb/musb_host.c
+++ b/drivers/usb/musb/musb_host.c
@@ -1994,6 +1994,9 @@ static int musb_urb_enqueue(
/* ISO always uses logarithmic encoding */
interval = min_t(u8, epd->bInterval, 16);
break;
+ case USB_ENDPOINT_XFER_CONTROL:
+ interval = (urb->dev->speed == USB_SPEED_HIGH) ? 8 : 5;
+ break;
In fact, PING is only supported by high speed device and not by fs/ls device, so
check for high speed here doesn't make any sense.
Also, I wonder why use a hardcoded value and not use the value from bInterval
of endpoint descriptor.
Mike, any answer ??
--
balbi
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html