mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-29 16:10:58 +00:00
usb: hub: allow pgood_delay to be specified via env
Some USB devices break the spec and require longer warm-up times. Allow the usb_pgood_delay env variable to override the calculated time. Signed-off-by: Tim Harvey <tharvey@gateworks.com>
This commit is contained in:
parent
25c0673635
commit
319418c01c
1 changed files with 8 additions and 0 deletions
|
@ -86,6 +86,7 @@ static void usb_hub_power_on(struct usb_hub_device *hub)
|
|||
int i;
|
||||
struct usb_device *dev;
|
||||
unsigned pgood_delay = hub->desc.bPwrOn2PwrGood * 2;
|
||||
const char *env;
|
||||
|
||||
dev = hub->pusb_dev;
|
||||
|
||||
|
@ -98,7 +99,14 @@ static void usb_hub_power_on(struct usb_hub_device *hub)
|
|||
/*
|
||||
* Wait for power to become stable,
|
||||
* plus spec-defined max time for device to connect
|
||||
* but allow this time to be increased via env variable as some
|
||||
* devices break the spec and require longer warm-up times
|
||||
*/
|
||||
env = getenv("usb_pgood_delay");
|
||||
if (env)
|
||||
pgood_delay = max(pgood_delay,
|
||||
(unsigned)simple_strtol(env, NULL, 0));
|
||||
debug("pgood_delay=%dms\n", pgood_delay);
|
||||
mdelay(pgood_delay + 1000);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue