Alan Stern c1db30a2a7 USB: OHCI: fix problem with global suspend on ATI controllers
Some OHCI controllers from ATI/AMD seem to have difficulty with
"global" USB suspend, that is, suspending an entire USB bus without
setting the suspend feature for each port connected to a device.  When
we try to resume the child devices, the controller gives timeout
errors on the unsuspended ports, requiring resets, and can even cause
ohci-hcd to hang; see

	http://marc.info/?l=linux-usb&m=139514332820398&w=2

and the following messages.

This patch fixes the problem by adding a new quirk flag to ohci-hcd.
The flag causes the ohci_rh_suspend() routine to suspend each
unsuspended, enabled port before suspending the root hub.  This
effectively converts the "global" suspend to an ordinary root-hub
suspend.  There is no need to unsuspend these ports when the root hub
is resumed, because the child devices will be resumed anyway in the
course of a normal system resume ("global" suspend is never used for
runtime PM).

This patch should be applied to all stable kernels which include
commit 0aa2832dd0d9 (USB: use "global suspend" for system sleep on
USB-2 buses) or a backported version thereof.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Reported-by: Peter Münster <pmlists@free.fr>
Tested-by: Peter Münster <pmlists@free.fr>
CC: <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-05-03 17:58:46 -04:00
..
2013-10-19 14:08:04 -07:00
2013-12-03 10:34:33 -08:00
2013-10-19 14:08:04 -07:00
2013-05-30 21:34:31 +09:00
2013-12-03 10:34:33 -08:00
2013-12-03 10:34:33 -08:00
2013-07-31 17:53:50 -07:00
2013-12-03 10:34:33 -08:00
2013-12-18 16:36:10 -08:00
2013-12-03 10:25:22 -08:00
2014-01-23 18:49:36 -08:00
2013-12-03 10:34:33 -08:00
2013-12-03 10:34:33 -08:00
2013-01-24 13:42:09 -08:00