diff options
-rw-r--r-- | drivers/usb/host/ehci-tegra.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-tegra.c b/drivers/usb/host/ehci-tegra.c index 184c1783d6c7..a81046b93af7 100644 --- a/drivers/usb/host/ehci-tegra.c +++ b/drivers/usb/host/ehci-tegra.c @@ -127,6 +127,8 @@ static int tegra_ehci_hub_control( temp &= ~PORT_WKCONN_E; temp |= PORT_WKDISC_E | PORT_WKOC_E; ehci_writel(ehci, temp | PORT_SUSPEND, status_reg); + /* Need a 4ms delay before the controller goes to suspend */ + mdelay(4); /* * If a transaction is in progress, there may be a delay in @@ -411,6 +413,8 @@ static int tegra_usb_resume(struct usb_hcd *hcd) if ((val & PORT_POWER) && (val & PORT_PE)) { val |= PORT_SUSPEND; writel(val, &hw->port_status[0]); + /* Need a 4ms delay before the controller goes to suspend */ + mdelay(4); /* Wait until port suspend completes */ if (handshake(ehci, &hw->port_status[0], PORT_SUSPEND, |