On 06.06.2017 13:13, Jiahau Chang wrote:
v4: Remove the patch code in case USB_PORT_FEAT_REMOTE_WAKE_MASK

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.

Signed-off-by: Jiahau Chang <lars_ch...@asmedia.com.tw>
---
  drivers/usb/host/xhci-hub.c |  2 ++
  drivers/usb/host/xhci-pci.c | 13 +++++++++++++
  drivers/usb/host/xhci.h     |  2 ++
  3 files changed, 17 insertions(+)

diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
index 0dde49c..8994676 100644
--- a/drivers/usb/host/xhci-hub.c
+++ b/drivers/usb/host/xhci-hub.c
@@ -1461,6 +1461,8 @@ 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;

This will disable connect/disconnect/overcurrent wake for all usb2 ports on AMD 
Promontory host.
I don't think that is what you want.

Is there a way for the driver to see which ports are disabled in bios?
If yes, then it would be better to just disable wake for those ports

-Mathias


--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to