From 4b3b4d84f68122d948c9590caadc0aefa4e36339 Mon Sep 17 00:00:00 2001 From: Ramneek Mehresh Date: Fri, 5 Dec 2014 13:02:23 +0530 Subject: drivers:usb: Fix usb suspend/resume for deep-sleep Save usb controller and phy registers for deep-sleep Signed-off-by: Ramneek Mehresh Change-Id: I58696ab15c629a7712adcba67df9b8fd582a1c6e Reviewed-on: http://git.am.freescale.net:8181/25418 Tested-by: Review Code-CDREVIEW Reviewed-by: Suresh Gupta Reviewed-by: Matthew Weigel diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c index 2f319db..07bdd3a 100644 --- a/drivers/usb/host/ehci-fsl.c +++ b/drivers/usb/host/ehci-fsl.c @@ -729,6 +729,9 @@ static int ehci_fsl_drv_suspend(struct device *dev) struct usb_hcd *hcd = dev_get_drvdata(dev); struct ehci_fsl *ehci_fsl = hcd_to_ehci_fsl(hcd); void __iomem *non_ehci = hcd->regs; + + ehci_fsl_save_context(hcd); + #if defined(CONFIG_FSL_USB2_OTG) || defined(CONFIG_FSL_USB2_OTG_MODULE) struct usb_bus host = hcd->self; #endif @@ -759,8 +762,6 @@ static int ehci_fsl_drv_suspend(struct device *dev) if (!fsl_deep_sleep()) return 0; - ehci_fsl_save_context(hcd); - ehci_fsl->usb_ctrl = ioread32be(non_ehci + FSL_SOC_USB_CTRL); return 0; } @@ -772,8 +773,7 @@ static int ehci_fsl_drv_resume(struct device *dev) struct ehci_hcd *ehci = hcd_to_ehci(hcd); void __iomem *non_ehci = hcd->regs; - if (fsl_deep_sleep()) - ehci_fsl_restore_context(hcd); + ehci_fsl_restore_context(hcd); #if defined(CONFIG_FSL_USB2_OTG) || defined(CONFIG_FSL_USB2_OTG_MODULE) struct usb_bus host = hcd->self; -- cgit v0.10.2