summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorJingchang Lu <b35083@freescale.com>2012-12-10 13:55:03 +0800
committerEd Nash <enash@enash-desktop.(none)>2012-12-12 14:46:32 -0500
commit74e4dd3713a06947ac42aed73c822d7641735239 (patch)
treef1020cd7243ebe8fd91cc4c69335404389e24db0 /drivers
parent051e157a7bcacf3d4f84289c2e8cc561ecb4a3c3 (diff)
ENGR00216081-2:Errata workaround for usb suspend and resume
Toggle PHYPWD.PWD after set PORTSC.SUSP with 8ms to trigger the LS_SE0/LS_EOP append flag after resume within UTM block. Signed-off-by: Jingchang Lu <b35083@freescale.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/host/ehci-hub.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c
index d6a80d9731a2..544ed44ef28c 100644
--- a/drivers/usb/host/ehci-hub.c
+++ b/drivers/usb/host/ehci-hub.c
@@ -29,8 +29,9 @@
/*-------------------------------------------------------------------------*/
#include <linux/usb/otg.h>
-#ifdef CONFIG_ARCH_MX6
+#if defined(CONFIG_ARCH_MX6) || defined(CONFIG_ARCH_MVF)
#define MX6_USB_HOST_HACK
+#define MVF_USB_HOST_HACK
#include <linux/fsl_devices.h>
#endif
#define PORT_WAKE_BITS (PORT_WKOC_E|PORT_WKDISC_E|PORT_WKCONN_E)
@@ -1081,6 +1082,14 @@ static int ehci_hub_control (
pdata = hcd->self.controller->platform_data;
if (pdata->platform_suspend)
pdata->platform_suspend(pdata);
+#ifdef MVF_USB_HOST_HACK
+ /* workaround:
+ * Toggle HW_USBPHY_PWD to flag controller
+ * generating LS-SE0/LS-EOP after resume
+ */
+ if (pdata->platform_resume)
+ pdata->platform_resume(pdata);
+#endif
}
#endif
if (hostpc_reg) {