[PATCH 3/3] usb: use ep-specific pwrgood delay
Steffen Trumtrar
s.trumtrar at pengutronix.de
Thu Aug 30 09:26:31 EDT 2012
Hi Eric,
> Hi Steffen,
>
> Le Thu, 30 Aug 2012 14:30:50 +0200,
> Steffen Trumtrar <s.trumtrar at pengutronix.de> a écrit :
>
> > In usb_hub_configure the hub is asked for its descriptor and among other things
> > its bPwrOn2PwrGood time. In the actual hub_power_on function this information
> > was not used and a hardcoded value was used instead. For some hubs this delay
> > is to short. So, use the delay the hub wants.
> >
> > Signed-off-by: Steffen Trumtrar <s.trumtrar at pengutronix.de>
> > Signed-off-by: Michael Grzeschik <m.grzeschik at pengutronix.de>
> > ---
> > drivers/usb/core/usb.c | 3 ++-
> > 1 file changed, 2 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
> > index 81ae9f1..48bc121 100644
> > --- a/drivers/usb/core/usb.c
> > +++ b/drivers/usb/core/usb.c
> > @@ -948,7 +948,8 @@ static void usb_hub_power_on(struct usb_hub_device *hub)
> > usb_set_port_feature(dev, i + 1, USB_PORT_FEAT_POWER);
> > USB_HUB_PRINTF("port %d returns %lX\n", i + 1, dev->status);
> > }
> > - mdelay(20);
> > + /* power on is encoded in 2ms increments -> times 2 for the actual delay */
> > + mdelay(hub->desc.bPwrOn2PwrGood*2);
> > }
> >
> > #define MAX_TRIES 5
>
> I tested you patch on my MX35 board and it doesn't work (the hub
> requires 50 ms, the mdelay is thus 100 ms and in the end that's not
> enough to see the USB mass storage connected to the hub) but
> mdelay(hub->desc.bPwrOn2PwrGood*3) works fine.
> Is it possible to increase this delay (*3 instead of *2) ?
>
> Thanks
> Eric
>
Where does your 50ms come from? From the debug messages of the usb-tool?
It has the same factor of times 2.
Have you tried hardcoding mdelay(100)?
I first thought about doing it the same way linux does it and use
max(pwrgood, 100). But 100ms minimum wouldn't help you either.
I don't really like the idea of just guessing a value. But if necessary,
I'm surely willing to change this patch.
Greetings
Steffen
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list