[Bug 299199] thunderbolt(4): Suspend routine is incomplete
Date: Wed, 07 Oct 2026 12:27:48 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=299199
Bug ID: 299199
Summary: thunderbolt(4): Suspend routine is incomplete
Product: Base System
Version: CURRENT
Hardware: amd64
OS: Any
Status: New
Severity: Affects Only Me
Priority: ---
Component: kern
Assignee: bugs@FreeBSD.org
Reporter: obiwac@FreeBSD.org
There are a few things we should be doing in our suspend routine for it to be
complete which we are not yet doing:
- We should be sending LT_LRoff to downstream routers on the sideband (normally
we can't send anything on the sideband after setting the sleep bit but LT_LRoff
is an exception). See 4.5.1.
- We should make sure the USB3 hub is in the U3 state and it's PCI endpoint is
in D3.
- We should be able to choose which events wake us up from sleep (wake on PCIe,
wake on USB3, or wake on DP).
- We should wait for the ROP_CMPLT notification on v2 routers instead of
polling the SLPR bit (see 4.5.1). But v2 routers do still support v1-style
polling and I don't think FreeBSD yet has a mechanism for asynchronous suspend
in newbus, so this is fine for the time being.
None of these prevent suspending enough to unblock S0i3 entry, but for full
USB4 support we will need to take care of these eventually.
--
You are receiving this mail because:
You are the assignee for the bug.