浏览代码

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 <chris@seamicro.com>
Chris Zhang 15 年之前
父节点
当前提交
b416191a14
共有 1 个文件被更改,包括 3 次插入0 次删除
  1. 3 0
      drivers/usb/host/ehci-hcd.c

+ 3 - 0
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;