USB: ehci-omap: Fix resume failures after bus suspend
authorAnand Gadiyar <gadiyar@ti.com>
Thu, 6 May 2010 14:39:48 +0000 (20:09 +0530)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 20 May 2010 20:21:45 +0000 (13:21 -0700)
commit572538dee7a4b25f3e77fdc11d20dbb753ecf367
treea07d20075928c2baf071194b17af6a7fa01c1e9d
parent89842ae6515c49405e20c0629a6442b6885ad49d
USB: ehci-omap: Fix resume failures after bus suspend

An undocumented "feature" in the OMAP3 EHCI controller causes
suspended ports to be taken out of suspend when the USBCMD.Run/Stop
bit is cleared (this bit is normally cleared when ehci_bus_suspend
is called).

This "feature" breaks suspend-resume if the root-hub is allowed
to suspend. (The controller thinks it is in resume, and the PHY
thinks it is still in suspend).

There is an undocumented register bit that can be used to disable
this feature and restore normal behavior. Set this bit so
suspend-resume can work normally.

Tested on OMAP3 SDPs with the NXP ISP1504 and NXP ISP1703 PHYs.

Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/host/ehci-omap.c