Bug 202593

Summary: PCIe hierarchy wakes immediately from D3cold on Thinkpad Carbon X1 6th if there is a TBT device connected
Product: Drivers Reporter: Mika Westerberg (mika.westerberg)
Component: PCIAssignee: drivers_pci (drivers_pci)
Status: NEW ---    
Severity: normal    
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: v5.0-rc Subsystem:
Regression: No Bisected commit-id:
Attachments: acpidump from the system
dmesg from the system
lspci -vv output from the system with TBT device connected

Description Mika Westerberg 2019-02-15 09:29:27 UTC
Created attachment 281161 [details]
acpidump from the system

When a PCIe hierarchy (connected through Thunderbolt cable) on Thinkpad X1 Carbon 6th generation (this possibly affects all such systems, such as latest Dell XPS) is runtime suspended to D3cold, there is wakeup followed by PME immediately bringing the hierarchy back to D0.

Commit 0e157e528604 ("PCI/PME: Implement runtime PM callbacks") tried to solve it but it caused a regression so current approach that seems to work is to disable Data Link Layer State Changed event as discussed in the following thread:

  https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1917063.html

The way I can reproduce this is to connect Alpine/Titan Ridge Thunderbolt device to any of the TBT ports, approve it and wait for the hierarchy to runtime suspend into D3cold.
Comment 1 Mika Westerberg 2019-02-15 09:29:49 UTC
Created attachment 281163 [details]
dmesg from the system
Comment 2 Mika Westerberg 2019-02-15 09:30:21 UTC
Created attachment 281165 [details]
lspci -vv output from the system with TBT device connected