Browse Source

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>
Aric D. Blumer 16 năm trước cách đây
mục cha
commit
a75d048e14
1 tập tin đã thay đổi với 4 bổ sung0 xóa
  1. 4 0
      drivers/usb/host/ohci-pxa27x.c

+ 4 - 0
drivers/usb/host/ohci-pxa27x.c

@@ -497,6 +497,7 @@ static int ohci_hcd_pxa27x_drv_resume(struct device *dev)
 {
 {
 	struct usb_hcd *hcd = dev_get_drvdata(dev);
 	struct usb_hcd *hcd = dev_get_drvdata(dev);
 	struct pxa27x_ohci *ohci = to_pxa27x_ohci(hcd);
 	struct pxa27x_ohci *ohci = to_pxa27x_ohci(hcd);
+	struct pxaohci_platform_data *inf = dev->platform_data;
 	int status;
 	int status;
 
 
 	if (time_before(jiffies, ohci->ohci.next_statechange))
 	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)
 	if ((status = pxa27x_start_hc(ohci, dev)) < 0)
 		return status;
 		return status;
 
 
+	/* Select Power Management Mode */
+	pxa27x_ohci_select_pmm(ohci, inf->port_mode);
+
 	ohci_finish_controller_resume(hcd);
 	ohci_finish_controller_resume(hcd);
 	return 0;
 	return 0;
 }
 }