summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Borzeszkowski <alan.borzeszkowski@linux.intel.com>2026-05-05 17:08:34 +0300
committerMika Westerberg <mika.westerberg@linux.intel.com>2026-05-20 12:54:34 +0300
commitafe9021d63b46233f5c87d52b820fa26e7f562cd (patch)
tree3197f6cdcd1eb2f541bfeea770c90d1aa66bdb47
parentaf8922ffb322c4650dc536a236c4b42a1cf2829e (diff)
downloadlinux-afe9021d63b46233f5c87d52b820fa26e7f562cd.tar.xz
thunderbolt: Improve multi-display DisplayPort tunnel allocation
When 3 monitors are connected through Thunderbolt dock to the system at once, one of the monitors might fail to establish DisplayPort tunnel. This happens during DP bandwidth negotiation - each monitor takes maximum bandwidth that is supported and there might not be enough for 3rd display. In this case Thunderbolt driver drops DP tunnel and 'forgets' about it but with DP bandwidth allocation mode, that comes in later, some bandwidth might be freed. Make Thunderbolt driver check again if DP tunnel can be established after DP bandwidth consumption changed. Signed-off-by: Alan Borzeszkowski <alan.borzeszkowski@linux.intel.com> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
-rw-r--r--drivers/thunderbolt/tb.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/thunderbolt/tb.c b/drivers/thunderbolt/tb.c
index a9d26a2ec259..72a0dd27937e 100644
--- a/drivers/thunderbolt/tb.c
+++ b/drivers/thunderbolt/tb.c
@@ -2849,6 +2849,9 @@ static void tb_handle_dp_bandwidth_request(struct work_struct *work)
/* Update other clients about the allocation change */
tb_recalc_estimated_bandwidth(tb);
+
+ tb_dbg(tb, "checking if more DP tunnels can be established now\n");
+ tb_tunnel_dp(tb);
}
put_sw: