summaryrefslogtreecommitdiff
path: root/drivers/usb/host/ehci-arc.c
diff options
context:
space:
mode:
authorPeter Chen <peter.chen@freescale.com>2013-04-10 15:18:39 +0800
committerPeter Chen <peter.chen@freescale.com>2013-04-11 13:32:27 +0800
commitcad60dac3cc4ae121b28c58ec14cfa6eb2c7f667 (patch)
tree157c7a6f213065321ac341f73e6cbb37d4f46090 /drivers/usb/host/ehci-arc.c
parent8fcf7ec64f6884d70d83a8d5319cc9dc4450701b (diff)
ENGR00257130-7 usb: host: Disable wakeup when switch PHY from off to on
Disable wakeup interrupt, since there is wakeup when phcd from 1->0 if wakeup interrupt is enabled. The unexpected wakeup can be disappeared using this fix. Signed-off-by: Peter Chen <peter.chen@freescale.com>
Diffstat (limited to 'drivers/usb/host/ehci-arc.c')
-rwxr-xr-xdrivers/usb/host/ehci-arc.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/usb/host/ehci-arc.c b/drivers/usb/host/ehci-arc.c
index dbe49b7eb4b8..1dbe54f2b183 100755
--- a/drivers/usb/host/ehci-arc.c
+++ b/drivers/usb/host/ehci-arc.c
@@ -680,9 +680,20 @@ static int ehci_fsl_drv_suspend(struct platform_device *pdev,
if (!host_can_wakeup_system(pdev)) {
/* Need open clock for register access */
fsl_usb_clk_gate(hcd->self.controller->platform_data, true);
+ /*
+ * Disable wakeup interrupt, since there is wakeup
+ * when phcd from 1->0 if wakeup interrupt is enabled
+ */
+ usb_host_set_wakeup(hcd->self.controller, false);
+
+ /*
+ * Open PHY's clock, then the wakeup settings
+ * can be wroten correctly
+ */
fsl_usb_lowpower_mode(pdata, false);
usb_host_set_wakeup(hcd->self.controller, false);
+
fsl_usb_lowpower_mode(pdata, true);
fsl_usb_clk_gate(hcd->self.controller->platform_data, false);