]> git.baikalelectronics.ru Git - kernel.git/commit
USB: EHCI: add delay during suspend to prevent erroneous wakeups
authorAlan Stern <stern@rowland.harvard.edu>
Thu, 13 Feb 2014 20:49:17 +0000 (15:49 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 18 Feb 2014 20:04:41 +0000 (12:04 -0800)
commit210f06c1bf81bdbe91de9bf9d6b8b5b6e3b0fdd1
treeb6f6e963ce225848f1ccea26e1ce272a1f355116
parentaf18dbdc538d68661a2dc170065e02fb49a2ec53
USB: EHCI: add delay during suspend to prevent erroneous wakeups

High-speed USB connections revert back to full-speed signalling when
the device goes into suspend.  This takes several milliseconds, and
during that time it's not possible to tell reliably whether the device
has been disconnected.

On some platforms, the Wake-On-Disconnect circuitry gets confused
during this intermediate state.  It generates a false wakeup signal,
which can prevent the controller from going to sleep.

To avoid this problem, this patch adds a 5-ms delay to the
ehci_bus_suspend() routine if any ports have to switch over to
full-speed signalling.  (Actually, the delay was already present for
devices using a particular kind of PHY power management; the patch
merely causes the delay to be used more widely.)

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Reviewed-by: Peter Chen <Peter.Chen@freescale.com>
CC: <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/ehci-hub.c