aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/ohci-pxa27x.c
diff options
context:
space:
mode:
authorAric D. Blumer <aric@sdgsystems.com>2009-07-30 13:42:30 -0400
committerEric Miao <eric.y.miao@gmail.com>2009-09-10 07:15:38 -0400
commita75d048e1409bb2bae0d71645c4f6247d2ce9276 (patch)
tree2602e602a2ec94db18500d5be5fcf3f4a8273c1f /drivers/usb/host/ohci-pxa27x.c
parent85c6102100150522f8fbc80cffdd08d1f8b66c87 (diff)
USB: ohci-pxa27x: Reconfigure power settings on resume
On resume, the power-related bits in UHCRHDA were not being set, so they would default to the reset state. For PXA3xx devices, OCPM must be cleared, but it was remaining set from resume reset. Signed-off-by: Aric D. Blumer <aric@sdgsystems.com> Cc: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
Diffstat (limited to 'drivers/usb/host/ohci-pxa27x.c')
-rw-r--r--drivers/usb/host/ohci-pxa27x.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/usb/host/ohci-pxa27x.c b/drivers/usb/host/ohci-pxa27x.c
index 61800742fc07..bbc0c3b720b2 100644
--- a/drivers/usb/host/ohci-pxa27x.c
+++ b/drivers/usb/host/ohci-pxa27x.c
@@ -497,6 +497,7 @@ static int ohci_hcd_pxa27x_drv_resume(struct device *dev)
497{ 497{
498 struct usb_hcd *hcd = dev_get_drvdata(dev); 498 struct usb_hcd *hcd = dev_get_drvdata(dev);
499 struct pxa27x_ohci *ohci = to_pxa27x_ohci(hcd); 499 struct pxa27x_ohci *ohci = to_pxa27x_ohci(hcd);
500 struct pxaohci_platform_data *inf = dev->platform_data;
500 int status; 501 int status;
501 502
502 if (time_before(jiffies, ohci->ohci.next_statechange)) 503 if (time_before(jiffies, ohci->ohci.next_statechange))
@@ -506,6 +507,9 @@ static int ohci_hcd_pxa27x_drv_resume(struct device *dev)
506 if ((status = pxa27x_start_hc(ohci, dev)) < 0) 507 if ((status = pxa27x_start_hc(ohci, dev)) < 0)
507 return status; 508 return status;
508 509
510 /* Select Power Management Mode */
511 pxa27x_ohci_select_pmm(ohci, inf->port_mode);
512
509 ohci_finish_controller_resume(hcd); 513 ohci_finish_controller_resume(hcd);
510 return 0; 514 return 0;
511} 515}