Re: [PATCH v2 0/2] thunderbolt: Fix S4 resume incongruities

From: Mario Limonciello

Date: Wed Jan 07 2026 - 17:09:52 EST


On 1/7/26 3:33 AM, Mika Westerberg wrote:
Hi,

On Mon, Jan 05, 2026 at 11:37:47PM -0600, Mario Limonciello (AMD) wrote:
When a machine is restored from S4 if the firmware CM has created
tunnels there can be an incongruity of expectation from the kernel
when compared to booting from S5. This series addresses those.

I suspect there is no Firmware CM in AMD platforms so this actually means
the BIOS CM, correct?

That's correct.


However, on S4 we actually do reset host router when the "boot kernel" is
started before loading and jumping to the hibernation image.

That's only if thunderbolt.ko is built into the kernel or is included in the initramfs before it does the pivot to the hibernation image.

At least in the tests we were doing it's not part of the boot kernel.

It might be
that this boot kernel tunnel configuration is causing the issues you are
seeing (can you elaborate on those?)

The issues manifest "downstream" in the GPU driver. There are a bunch of aux failures and a non functional display. Tracing it back the GPU driver isn't alive at the time that the tunnels are attempted to be reconstructed at the moment and so CM tears DP tunnel down and then when GPU driver does come up it is not functional.

DP tunnel constructed at:

[ 486.007194] thunderbolt 0000:c6:00.6: AUX RX path activation complete

First DPRx timeout at:

[ 486.135483] thunderbolt 0000:c6:00.6: 0:6 <-> 2:13 (DP): DPRX read timeout

DP tunnel deactivating at:

[ 486.331856] thunderbolt 0000:c6:00.6: 0:6 <-> 2:13 (DP): deactivating

First DPRx DPCD reading starts at:

[ 486.351765] amdgpu 0000:c4:00.0: amdgpu: [drm] DPIA AUX failed on 0xf0000(10), error 7

I believe by doing the reset in this series we instead get HPD events and react to those. If we keep things as they are today I think we need to work out some changes to device ordering.

but given that it is (typically the
same kernel binary) it should be creating the tunnels the same way.


v1:
Link: https://lore.kernel.org/linux-usb/20251023050354.115015-1-superm1@xxxxxxxxxx/

Mario Limonciello (AMD) (2):
thunderbolt: Move nhi_reset before pmops declaration
thunderbolt: Reset NHI during S4 restore_noirq() callback

drivers/thunderbolt/nhi.c | 77 ++++++++++++++++++++++-----------------
drivers/thunderbolt/tb.c | 29 ++++++++-------
drivers/thunderbolt/tb.h | 1 +
3 files changed, 61 insertions(+), 46 deletions(-)

--
2.43.0