diff options
author | Jon Hunter <jon-hunter@ti.com> | 2012-03-06 17:30:58 -0600 |
---|---|---|
committer | Ziyann <jaraidaniel@gmail.com> | 2014-10-01 12:58:17 +0200 |
commit | 4a9c8d6e885170d7447897e07663afbb329c6ab5 (patch) | |
tree | ae0e2fb99623b94ba39e769d066d6f2acb3c602a /arch/arm/plat-omap | |
parent | c7a21039c75d1435b9fcfeab4643f6dee9c51359 (diff) | |
download | kernel_samsung_tuna-4a9c8d6e885170d7447897e07663afbb329c6ab5.zip kernel_samsung_tuna-4a9c8d6e885170d7447897e07663afbb329c6ab5.tar.gz kernel_samsung_tuna-4a9c8d6e885170d7447897e07663afbb329c6ab5.tar.bz2 |
ARM: OMAP4: USB: Update workaround for USB errata i719
Due to USB errata i719 the USB host save-and-restore context can be corrupted
if the device enters off mode more than two times without enabling the USB
host controller in between.
The corruption is occuring during the software save of the USB context which
occurs on entry to every off mode attempt. To avoid this problem only save the
USB context if the USB host controller has been enabled since the previous off
mode attempt. We do not need to save the USB context on every entry to off mode
if the USB controller has not been enabled.
Change-Id: I67e07963679af6494ef289eb10db09c0162d6f00
Signed-off-by: Jon Hunter <jon-hunter@ti.com>
Signed-off-by: Volodymyr Riazantsev <v.riazantsev@ti.com>
Signed-off-by: Ruslan Bilovol <ruslan.bilovol@ti.com>
Diffstat (limited to 'arch/arm/plat-omap')
-rw-r--r-- | arch/arm/plat-omap/include/plat/usb.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/plat-omap/include/plat/usb.h b/arch/arm/plat-omap/include/plat/usb.h index c628fcb..422906a 100644 --- a/arch/arm/plat-omap/include/plat/usb.h +++ b/arch/arm/plat-omap/include/plat/usb.h @@ -58,11 +58,13 @@ struct ehci_hcd_omap_platform_data { * for low power mode entry */ struct clk *transceiver_clk[OMAP3_HS_USB_PORTS]; + int *usbhs_update_sar; }; struct ohci_hcd_omap_platform_data { enum usbhs_omap_port_mode port_mode[OMAP3_HS_USB_PORTS]; unsigned es2_compatibility:1; + int *usbhs_update_sar; }; struct usbhs_omap_platform_data { @@ -116,6 +118,7 @@ extern int omap4430_phy_init(struct device *dev); extern int omap4430_phy_exit(struct device *dev); extern int omap4_charger_detect(void); extern int omap4430_phy_suspend(struct device *dev, int suspend); +extern int omap4430_usbhs_update_sar(void); #endif extern void am35x_musb_reset(void); |