Bug 203673

Summary: xHCI can't get woken up by plugging USB devices when it's runtime suspended to D0
Product: Drivers Reporter: Kai-Heng Feng (kai.heng.feng)
Component: PCIAssignee: drivers_pci (drivers_pci)
Status: RESOLVED CODE_FIX    
Severity: normal    
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: v5.2-rc1 Tree: Mainline
Regression: No
Attachments: lspci -vv
acpidump
dmesg

Description Kai-Heng Feng 2019-05-22 04:18:43 UTC
Created attachment 282905 [details]
lspci -vv
Comment 1 Kai-Heng Feng 2019-05-22 04:26:10 UTC
Vendor also confirms it's not supposed to be runtime suspended, so it's _S0W reports D0:

# acpidbg -b 'ex \_SB.PCI0.XHC0._S0W'
Evaluating \_SB.PCI0.XHC0._S0W
Evaluation of \_SB.PCI0.XHC0._S0W returned object 000000005b47428a, external buffer length 18
 [Integer] = 0000000000000000
Comment 2 Kai-Heng Feng 2019-05-22 04:29:02 UTC
Created attachment 282907 [details]
acpidump
Comment 3 Kai-Heng Feng 2019-05-22 15:08:51 UTC
Symptom and steps to reproduce the issue:
1) Enable runtime power management for the xHC controller, it's in D0 and PME signaling is enabled:
Status: D0 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME-
2) Plug a USB device to USB port
3) Nothing happens
Comment 4 Kai-Heng Feng 2019-06-05 07:45:38 UTC
Created attachment 283109 [details]
dmesg
Comment 5 Kai-Heng Feng 2019-10-25 07:00:37 UTC
Fixed by 6c4c5a0f0180137dba328d4f3cf9bd48961e7d24 x86/PCI: Avoid AMD FCH XHCI USB PME# from D0 defect