summaryrefslogtreecommitdiff
path: root/drivers/usb/host/pci-quirks.h
diff options
context:
space:
mode:
authorJoe Lee <asmt.swfae@gmail.com>2018-02-12 15:24:46 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-02-15 20:36:19 +0300
commitbde0716d1f076e4c913c7946bcc858f71243c7a0 (patch)
tree8a36f252fec553b89fa15e60a2e992c390bb3154 /drivers/usb/host/pci-quirks.h
parent7928b2cbe55b2a410a0f5c1f154610059c57b1b2 (diff)
downloadlinux-bde0716d1f076e4c913c7946bcc858f71243c7a0.tar.xz
xhci: workaround for AMD Promontory disabled ports wakeup
For AMD Promontory xHCI host, although you can disable USB 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. [commit and code comment rephrasing -Mathias] Signed-off-by: Joe Lee <asmt.swfae@gmail.com> 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/pci-quirks.h')
-rw-r--r--drivers/usb/host/pci-quirks.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/usb/host/pci-quirks.h b/drivers/usb/host/pci-quirks.h
index b68dcb5dd0fd..4ca0d9b7e463 100644
--- a/drivers/usb/host/pci-quirks.h
+++ b/drivers/usb/host/pci-quirks.h
@@ -17,6 +17,7 @@ void usb_enable_intel_xhci_ports(struct pci_dev *xhci_pdev);
void usb_disable_xhci_ports(struct pci_dev *xhci_pdev);
void sb800_prefetch(struct device *dev, int on);
bool usb_xhci_needs_pci_reset(struct pci_dev *pdev);
+bool usb_amd_pt_check_port(struct device *device, int port);
#else
struct pci_dev;
static inline void usb_amd_quirk_pll_disable(void) {}
@@ -25,6 +26,10 @@ static inline void usb_asmedia_modifyflowcontrol(struct pci_dev *pdev) {}
static inline void usb_amd_dev_put(void) {}
static inline void usb_disable_xhci_ports(struct pci_dev *xhci_pdev) {}
static inline void sb800_prefetch(struct device *dev, int on) {}
+static inline bool usb_amd_pt_check_port(struct device *device, int port)
+{
+ return false;
+}
#endif /* CONFIG_USB_PCI */
#endif /* __LINUX_USB_PCI_QUIRKS_H */