xhci: Don't prevent USB2 bus suspend in state check intended for USB3 only
authorMathias Nyman <mathias.nyman@linux.intel.com>
Fri, 14 Dec 2018 08:54:43 +0000 (10:54 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 29 Dec 2018 12:37:54 +0000 (13:37 +0100)
commite13bfb357f5bc04f9e7ccff7d07770388062a8cc
treeb7213d6b67d8e446fddc9fcf46d7e1aeee863c60
parent8f980122236c1fc8e11ffb57ec73315d01dc88e0
xhci: Don't prevent USB2 bus suspend in state check intended for USB3 only

commit 45f750c16cae3625014c14c77bd9005eda975d35 upstream.

The code to prevent a bus suspend if a USB3 port was still in link training
also reacted to USB2 port polling state.
This caused bus suspend to busyloop in some cases.
USB2 polling state is different from USB3, and should not prevent bus
suspend.

Limit the USB3 link training state check to USB3 root hub ports only.
The origial commit went to stable so this need to be applied there as well

Fixes: 2f31a67f01a8 ("usb: xhci: Prevent bus suspend if a port connect change or polling state is detected")
Cc: stable@vger.kernel.org
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/host/xhci-hub.c