File tree Expand file tree Collapse file tree 2 files changed +7
-1
lines changed Expand file tree Collapse file tree 2 files changed +7
-1
lines changed Original file line number Diff line number Diff line change 59
59
#define PCI_DEVICE_ID_INTEL_MAPLE_RIDGE_XHCI 0x1138
60
60
#define PCI_DEVICE_ID_INTEL_ALDER_LAKE_XHCI 0x461e
61
61
62
+ #define PCI_DEVICE_ID_AMD_RENOIR_XHCI 0x1639
62
63
#define PCI_DEVICE_ID_AMD_PROMONTORYA_4 0x43b9
63
64
#define PCI_DEVICE_ID_AMD_PROMONTORYA_3 0x43ba
64
65
#define PCI_DEVICE_ID_AMD_PROMONTORYA_2 0x43bb
@@ -182,6 +183,10 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
182
183
(pdev -> device == PCI_DEVICE_ID_AMD_PROMONTORYA_1 )))
183
184
xhci -> quirks |= XHCI_U2_DISABLE_WAKE ;
184
185
186
+ if (pdev -> vendor == PCI_VENDOR_ID_AMD &&
187
+ pdev -> device == PCI_DEVICE_ID_AMD_RENOIR_XHCI )
188
+ xhci -> quirks |= XHCI_BROKEN_D3COLD ;
189
+
185
190
if (pdev -> vendor == PCI_VENDOR_ID_INTEL ) {
186
191
xhci -> quirks |= XHCI_LPM_SUPPORT ;
187
192
xhci -> quirks |= XHCI_INTEL_HOST ;
@@ -539,7 +544,7 @@ static int xhci_pci_suspend(struct usb_hcd *hcd, bool do_wakeup)
539
544
* Systems with the TI redriver that loses port status change events
540
545
* need to have the registers polled during D3, so avoid D3cold.
541
546
*/
542
- if (xhci -> quirks & XHCI_COMP_MODE_QUIRK )
547
+ if (xhci -> quirks & ( XHCI_COMP_MODE_QUIRK | XHCI_BROKEN_D3COLD ) )
543
548
pci_d3cold_disable (pdev );
544
549
545
550
if (xhci -> quirks & XHCI_PME_STUCK_QUIRK )
Original file line number Diff line number Diff line change @@ -1892,6 +1892,7 @@ struct xhci_hcd {
1892
1892
#define XHCI_DISABLE_SPARSE BIT_ULL(38)
1893
1893
#define XHCI_SG_TRB_CACHE_SIZE_QUIRK BIT_ULL(39)
1894
1894
#define XHCI_NO_SOFT_RETRY BIT_ULL(40)
1895
+ #define XHCI_BROKEN_D3COLD BIT_ULL(41)
1895
1896
1896
1897
unsigned int num_active_eps ;
1897
1898
unsigned int limit_active_eps ;
You can’t perform that action at this time.
0 commit comments