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. -- Lei Ming -- 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