From: Chris Zhang Date: Wed, 6 Jan 2010 21:34:04 +0000 (-0800) Subject: Fix EHCI port reset. X-Git-Tag: v2010.03-rc1~159^2~3 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=b416191a14770c6bcc6fd67be7decf8159b2baee;p=u-boot Fix EHCI port reset. In USB ehci driver, the port reset is not terminated. EHCI spec says "A host controller must terminate the reset and stabilize the state of the port within 2 milliseconds". Without termination, a port stays at reset state. This is observed on ppc4xx(sequoia) boards. Signed-off-by: Chris Zhang --- diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c index ba85991e86..9ebeb4f23d 100644 --- a/drivers/usb/host/ehci-hcd.c +++ b/drivers/usb/host/ehci-hcd.c @@ -708,6 +708,9 @@ ehci_submit_root(struct usb_device *dev, unsigned long pipe, void *buffer, * root */ wait_ms(50); + /* terminate the reset */ + ehci_writel(status_reg, reg & ~EHCI_PS_PR); + wait_ms(2); portreset |= 1 << le16_to_cpu(req->index); } break;