diff options
Diffstat (limited to 'drivers/usb/host/xhci-pci.c')
-rw-r--r-- | drivers/usb/host/xhci-pci.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c index d7b0f97abbad..e96ae80d107e 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c | |||
@@ -45,11 +45,13 @@ | |||
45 | 45 | ||
46 | #define PCI_DEVICE_ID_INTEL_LYNXPOINT_XHCI 0x8c31 | 46 | #define PCI_DEVICE_ID_INTEL_LYNXPOINT_XHCI 0x8c31 |
47 | #define PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_XHCI 0x9c31 | 47 | #define PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_XHCI 0x9c31 |
48 | #define PCI_DEVICE_ID_INTEL_WILDCATPOINT_LP_XHCI 0x9cb1 | ||
48 | #define PCI_DEVICE_ID_INTEL_CHERRYVIEW_XHCI 0x22b5 | 49 | #define PCI_DEVICE_ID_INTEL_CHERRYVIEW_XHCI 0x22b5 |
49 | #define PCI_DEVICE_ID_INTEL_SUNRISEPOINT_H_XHCI 0xa12f | 50 | #define PCI_DEVICE_ID_INTEL_SUNRISEPOINT_H_XHCI 0xa12f |
50 | #define PCI_DEVICE_ID_INTEL_SUNRISEPOINT_LP_XHCI 0x9d2f | 51 | #define PCI_DEVICE_ID_INTEL_SUNRISEPOINT_LP_XHCI 0x9d2f |
51 | #define PCI_DEVICE_ID_INTEL_BROXTON_M_XHCI 0x0aa8 | 52 | #define PCI_DEVICE_ID_INTEL_BROXTON_M_XHCI 0x0aa8 |
52 | #define PCI_DEVICE_ID_INTEL_BROXTON_B_XHCI 0x1aa8 | 53 | #define PCI_DEVICE_ID_INTEL_BROXTON_B_XHCI 0x1aa8 |
54 | #define PCI_DEVICE_ID_INTEL_APL_XHCI 0x5aa8 | ||
53 | 55 | ||
54 | static const char hcd_name[] = "xhci_hcd"; | 56 | static const char hcd_name[] = "xhci_hcd"; |
55 | 57 | ||
@@ -153,7 +155,8 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) | |||
153 | xhci->quirks |= XHCI_SPURIOUS_REBOOT; | 155 | xhci->quirks |= XHCI_SPURIOUS_REBOOT; |
154 | } | 156 | } |
155 | if (pdev->vendor == PCI_VENDOR_ID_INTEL && | 157 | if (pdev->vendor == PCI_VENDOR_ID_INTEL && |
156 | pdev->device == PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_XHCI) { | 158 | (pdev->device == PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_XHCI || |
159 | pdev->device == PCI_DEVICE_ID_INTEL_WILDCATPOINT_LP_XHCI)) { | ||
157 | xhci->quirks |= XHCI_SPURIOUS_REBOOT; | 160 | xhci->quirks |= XHCI_SPURIOUS_REBOOT; |
158 | xhci->quirks |= XHCI_SPURIOUS_WAKEUP; | 161 | xhci->quirks |= XHCI_SPURIOUS_WAKEUP; |
159 | } | 162 | } |
@@ -169,6 +172,11 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) | |||
169 | pdev->device == PCI_DEVICE_ID_INTEL_CHERRYVIEW_XHCI) { | 172 | pdev->device == PCI_DEVICE_ID_INTEL_CHERRYVIEW_XHCI) { |
170 | xhci->quirks |= XHCI_SSIC_PORT_UNUSED; | 173 | xhci->quirks |= XHCI_SSIC_PORT_UNUSED; |
171 | } | 174 | } |
175 | if (pdev->vendor == PCI_VENDOR_ID_INTEL && | ||
176 | (pdev->device == PCI_DEVICE_ID_INTEL_CHERRYVIEW_XHCI || | ||
177 | pdev->device == PCI_DEVICE_ID_INTEL_APL_XHCI)) | ||
178 | xhci->quirks |= XHCI_MISSING_CAS; | ||
179 | |||
172 | if (pdev->vendor == PCI_VENDOR_ID_ETRON && | 180 | if (pdev->vendor == PCI_VENDOR_ID_ETRON && |
173 | pdev->device == PCI_DEVICE_ID_EJ168) { | 181 | pdev->device == PCI_DEVICE_ID_EJ168) { |
174 | xhci->quirks |= XHCI_RESET_ON_RESUME; | 182 | xhci->quirks |= XHCI_RESET_ON_RESUME; |