USB: ohci-pxa27x: Reconfigure power settings on resume
authorAric D. Blumer <aric@sdgsystems.com>
Thu, 30 Jul 2009 17:42:30 +0000 (13:42 -0400)
committerEric Miao <eric.y.miao@gmail.com>
Thu, 10 Sep 2009 11:15:38 +0000 (19:15 +0800)
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>
drivers/usb/host/ohci-pxa27x.c

index 61800742fc07c3769cdc87f311bd0e2b73fd69ad..bbc0c3b720b2fa077dd6f2fe650c75d1c69c7e5e 100644 (file)
@@ -497,6 +497,7 @@ static int ohci_hcd_pxa27x_drv_resume(struct device *dev)
 {
        struct usb_hcd *hcd = dev_get_drvdata(dev);
        struct pxa27x_ohci *ohci = to_pxa27x_ohci(hcd);
+       struct pxaohci_platform_data *inf = dev->platform_data;
        int status;
 
        if (time_before(jiffies, ohci->ohci.next_statechange))
@@ -506,6 +507,9 @@ static int ohci_hcd_pxa27x_drv_resume(struct device *dev)
        if ((status = pxa27x_start_hc(ohci, dev)) < 0)
                return status;
 
+       /* Select Power Management Mode */
+       pxa27x_ohci_select_pmm(ohci, inf->port_mode);
+
        ohci_finish_controller_resume(hcd);
        return 0;
 }