[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250917082456.1790252-1-lijiayi@kylinos.cn>
Date: Wed, 17 Sep 2025 16:24:56 +0800
From: Jiayi Li <lijiayi@...inos.cn>
To: westeri@...nel.org
Cc: andreas.noever@...il.com,
michael.jamet@...el.com,
YehezkelShB@...il.com,
linux-usb@...r.kernel.org,
linux-kernel@...r.kernel.org,
jiayi_dec@....com,
Jiayi Li <lijiayi@...inos.cn>
Subject: [PATCH RFC] thunderbolt: Re-add DP resources on resume
During suspend, DP resources are released through tb_disconnect_and_release_dp()
but were not being re-added during resume, preventing DP tunnels from being
re-established.
This caused DP displays connected via Thunderbolt docks (such as Targus docks)
to not display after S3 resume. The issue was visible in logs:
[246.397437] tb_cfg_ack_plug:819: thunderbolt 0000:2c:00.0: acking hot plug event on 3:10
[246.398282] tb_dp_resource_available:2019: thunderbolt 0000:2c:00.0: 3:10: DP OUT resource available
[246.398291] tb_tunnel_dp:1875: thunderbolt 0000:2c:00.0: looking for DP IN <-> DP OUT pairs:
[246.398294] tb_tunnel_dp:1899: thunderbolt 0000:2c:00.0: no suitable DP IN adapter available, not tunneling
Add call to tb_add_dp_resources() in tb_resume_noirq() to ensure DP resources
are properly re-added during resume, allowing DP tunnels to be re-established.
Signed-off-by: Jiayi Li <lijiayi@...inos.cn>
---
drivers/thunderbolt/tb.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/thunderbolt/tb.c b/drivers/thunderbolt/tb.c
index c14ab1fbeeaf..cb652df3fc9f 100644
--- a/drivers/thunderbolt/tb.c
+++ b/drivers/thunderbolt/tb.c
@@ -3119,6 +3119,7 @@ static int tb_resume_noirq(struct tb *tb)
tb_switch_reset(tb->root_switch);
tb_switch_resume(tb->root_switch, false);
+ tb_add_dp_resources(tb->root_switch);
tb_free_invalid_tunnels(tb);
tb_free_unplugged_children(tb->root_switch);
tb_restore_children(tb->root_switch);
--
2.47.1
Powered by blists - more mailing lists