summaryrefslogtreecommitdiffstats
path: root/drivers/usb/host/xhci-hub.c
diff options
context:
space:
mode:
authorJiahau Chang <jiahau@gmail.com>2017-06-19 13:08:30 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-07-12 15:01:06 +0200
commitf59d04e342826cb948724ac43a570702cfc86f36 (patch)
tree6a5ba646bc7c8bbd05db2f90df48dc6d9c58f558 /drivers/usb/host/xhci-hub.c
parent07379c41aeafb28e31c311f626b97868450988e1 (diff)
downloadlinux-stable-f59d04e342826cb948724ac43a570702cfc86f36.tar.gz
linux-stable-f59d04e342826cb948724ac43a570702cfc86f36.tar.bz2
linux-stable-f59d04e342826cb948724ac43a570702cfc86f36.zip
xhci: Limit USB2 port wake support for AMD Promontory hosts
commit dec08194ffeccfa1cf085906b53d301930eae18f upstream. For AMD Promontory xHCI host, although you can disable USB 2.0 ports in BIOS settings, those ports will be enabled anyway after you remove a device on that port and re-plug it in again. It's a known limitation of the chip. As a workaround we can clear the PORT_WAKE_BITS. This will disable wake on connect, disconnect and overcurrent on AMD Promontory USB2 ports [checkpatch cleanup and commit message reword -Mathias] Cc: Tsai Nicholas <nicholas.tsai@amd.com> Signed-off-by: Jiahau Chang <Lars_Chang@asmedia.com.tw> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/host/xhci-hub.c')
-rw-r--r--drivers/usb/host/xhci-hub.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
index 1d41637a53e5..ff544f20872c 100644
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
@@ -1348,6 +1348,9 @@ int xhci_bus_suspend(struct usb_hcd *hcd)
t2 |= PORT_WKOC_E | PORT_WKCONN_E;
t2 &= ~PORT_WKDISC_E;
}
+ if ((xhci->quirks & XHCI_U2_DISABLE_WAKE) &&
+ (hcd->speed < HCD_USB3))
+ t2 &= ~PORT_WAKE_BITS;
} else
t2 &= ~PORT_WAKE_BITS;