diff options
author | Jingchang Lu <b35083@freescale.com> | 2012-12-10 13:55:03 +0800 |
---|---|---|
committer | Ed Nash <enash@enash-desktop.(none)> | 2012-12-12 14:46:32 -0500 |
commit | 74e4dd3713a06947ac42aed73c822d7641735239 (patch) | |
tree | f1020cd7243ebe8fd91cc4c69335404389e24db0 /drivers | |
parent | 051e157a7bcacf3d4f84289c2e8cc561ecb4a3c3 (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.c | 11 |
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) { |