aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-omap
diff options
context:
space:
mode:
authorJon Hunter <jon-hunter@ti.com>2012-03-06 17:30:58 -0600
committerZiyann <jaraidaniel@gmail.com>2014-10-01 12:58:17 +0200
commit4a9c8d6e885170d7447897e07663afbb329c6ab5 (patch)
treeae0e2fb99623b94ba39e769d066d6f2acb3c602a /arch/arm/plat-omap
parentc7a21039c75d1435b9fcfeab4643f6dee9c51359 (diff)
downloadkernel_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.h3
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);