• Alan Stern's avatar
    USB: EHCI: add delay during suspend to prevent erroneous wakeups · 3e8d6d85
    Alan Stern authored
    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: default avatarAlan Stern <stern@rowland.harvard.edu>
    Reviewed-by: default avatarPeter Chen <Peter.Chen@freescale.com>
    CC: <stable@vger.kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    3e8d6d85
ehci-hub.c 35.2 KB