[Bug 216728] New: Thunderbolt USB Controller died after resume on Intel CometLake platform

bugzilla-daemon
2022-11-22T10:31:00Z

Bug ID: 216728
Summary: Thunderbolt USB Controller died after resume on Intel
CometLake platform
Product: Drivers
Version: 2.5
Kernel Version: 6.1-rc
Hardware: Intel
OS: Linux
Tree: Mainline
Status: NEW
Severity: high
Priority: P1
Component: USB
Assignee: drivers_usb@kernel-bugs.kernel.org
Reporter: chris.chiu@canonical.com
Regression: No

We found few Intel CometLake laptops with Thunderbolt USB controller
(8086:15ec) failed to function after resume, the plugged usb devices are failed
to be detected. We found a easier way to reproduce as follows.
1. Put the system into suspend first
2. Plug a type-C usb device (or a type-C docking with USB device attached) to
the port managed by thunderbolt usb controller.
3. Resume the system

The kernel log on 1 laptop shows as follows. The system resume automatically
after plug in the type-C port
[ 583.424555] xhci_hcd 0000:38:00.0: Unable to change power state from D3cold
to D0, device inaccessible
[ 583.424575] xhci_hcd 0000:38:00.0: Controller not ready at resume -19
[ 583.424576] xhci_hcd 0000:38:00.0: PCI post-resume error -19!
[ 583.424577] xhci_hcd 0000:38:00.0: HC died; cleaning up
[ 583.424580] xhci_hcd 0000:38:00.0: PM: dpm_run_callback():
pci_pm_resume+0x0/0xb0 returns -19
[ 583.424585] xhci_hcd 0000:38:00.0: PM: failed to resume async: error -19

The other laptop didn't automatically resume, but the following messages still
shows after manually resume
[ 1393.737519] xhci_hcd 0000:39:00.0: Refused to change power state, currently
in D3
[ 1393.737638] xhci_hcd 0000:39:00.0: Controller not ready at resume -19
[ 1393.737638] xhci_hcd 0000:39:00.0: PCI post-resume error -19!
[ 1393.737639] xhci_hcd 0000:39:00.0: HC died; cleaning up
[ 1393.737643] dpm_run_callback(): pci_pm_resume+0x0/0xb0 returns -19
[ 1393.737645] PM: Device 0000:39:00.0 failed to resume async: error -19

The have 1 thing in common, the controller refused to change power state and
host controller died after resume. Please help to find out the cause why the
thunderbolt controller refuse to change power state and died after resume.
Thanks