On Wed, Oct 23, 2024 at 09:27:37AM +0300, Mika Westerberg wrote: > So at this point we are not in "redrive" mode anymore and the domain is > allowed to runtime suspend. > > > [ 353.611933] thunderbolt 0000:06:00.0: looking for DP IN <-> DP OUT pairs: > > [ 353.612076] thunderbolt 0000:06:00.0: 0:14: DP IN available > > [ 353.612258] thunderbolt 0000:06:00.0: 0:13: DP IN available > > [ 353.612264] thunderbolt 0000:06:00.0: no suitable DP OUT adapter available, not tunneling > > [ 372.362496] thunderbolt 0000:06:00.0: 0: suspending switch > > [ 372.362506] thunderbolt 0000:06:00.0: 0: enabling wakeup: 0x3f > > [ 372.363480] thunderbolt 0000:06:00.0: stopping RX ring 0 > > [ 372.363497] thunderbolt 0000:06:00.0: disabling interrupt at register 0x38200 bit 12 (0x1001 -> 0x1) > > [ 372.363523] thunderbolt 0000:06:00.0: stopping TX ring 0 > > [ 372.363539] thunderbolt 0000:06:00.0: disabling interrupt at register 0x38200 bit 0 (0x1 -> 0x0) > > [ 372.363558] thunderbolt 0000:06:00.0: control channel stopped > > Which is what happens here. > > I think the driver does the correct thing but why you don't see anything > in the screen is beyond me. Can reproduce just this case with the patch > and then run "xrandr" and see if the monitors are visible there? The other option is that there is no wake when you plugged in the monitors and it only wakes up when you did this: > 8. Open a terminal and run 'lspci -k' > - Both displays are activated and remain active. > - There is no timeout. > - This is desired behavior. There is one such wake in the dmesg, this: [ 60.126328] thunderbolt 0000:06:00.0: control channel starting... [ 60.126332] thunderbolt 0000:06:00.0: starting TX ring 0 [ 60.126337] thunderbolt 0000:06:00.0: enabling interrupt at register 0x38200 bit 0 (0x0 -> 0x1) [ 60.126339] thunderbolt 0000:06:00.0: starting RX ring 0 [ 60.126344] thunderbolt 0000:06:00.0: enabling interrupt at register 0x38200 bit 12 (0x1 -> 0x1001) [ 60.126347] thunderbolt 0000:06:00.0: 0: resuming switch [ 60.126348] thunderbolt 0000:06:00.0: restoring Switch at 0x0 (depth: 0, up port: 15) [ 60.128535] thunderbolt 0000:06:00.0: 0: disabling wakeup [ 60.129481] thunderbolt 0000:06:00.0: acking hot plug event on 0:13 [ 60.129601] thunderbolt 0000:06:00.0: acking hot plug event on 0:14 [ 60.129730] thunderbolt 0000:06:00.0: acking hot plug event on 0:16 but here we get plug event for all the DP IN adapters (13, 14, 16) which tells me that there is nothing connected to the Type-C ports. Otherwise it would not send the plug event. This may be due the older firmware. [ 60.137467] thunderbolt 0000:06:00.0: 0: TMU: supports uni-directional mode [ 60.137478] thunderbolt 0000:06:00.0: 0: TMU: supports enhanced uni-directional mode [ 60.137589] thunderbolt 0000:06:00.0: 0: TMU: current mode: off [ 60.137591] thunderbolt 0000:06:00.0: 0: TMU: mode change off -> bi-directional, HiFi requested [ 60.138102] thunderbolt 0000:06:00.0: 0: TMU: mode set to: bi-directional, HiFi [ 60.139778] thunderbolt 0000:06:00.0: 0:13: DP IN resource available after hotplug [ 60.139783] thunderbolt 0000:06:00.0: looking for DP IN <-> DP OUT pairs: [ 60.139895] thunderbolt 0000:06:00.0: 0:13: DP IN available [ 60.139896] thunderbolt 0000:06:00.0: no suitable DP OUT adapter available, not tunneling [ 60.140018] thunderbolt 0000:06:00.0: 0:14: DP IN resource available after hotplug [ 60.140021] thunderbolt 0000:06:00.0: looking for DP IN <-> DP OUT pairs: [ 60.140145] thunderbolt 0000:06:00.0: 0:13: DP IN available [ 60.140277] thunderbolt 0000:06:00.0: 0:14: DP IN available [ 60.140278] thunderbolt 0000:06:00.0: no suitable DP OUT adapter available, not tunneling [ 78.863111] thunderbolt 0000:06:00.0: 0: suspending switch [ 78.863125] thunderbolt 0000:06:00.0: 0: enabling wakeup: 0x3f [ 78.864812] thunderbolt 0000:06:00.0: stopping RX ring 0 [ 78.864825] thunderbolt 0000:06:00.0: disabling interrupt at register 0x38200 bit 12 (0x1001 -> 0x1) [ 78.864849] thunderbolt 0000:06:00.0: stopping TX ring 0 [ 78.864857] thunderbolt 0000:06:00.0: disabling interrupt at register 0x38200 bit 0 (0x1 -> 0x0) [ 78.864870] thunderbolt 0000:06:00.0: control channel stopped There is no unplug at all here so the domain can go back to runtime suspend.