]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
thunderbolt: Improve multi-display DisplayPort tunnel allocation
authorAlan Borzeszkowski <alan.borzeszkowski@linux.intel.com>
Tue, 5 May 2026 14:08:34 +0000 (16:08 +0200)
committerMika Westerberg <mika.westerberg@linux.intel.com>
Wed, 20 May 2026 09:54:34 +0000 (11:54 +0200)
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>
drivers/thunderbolt/tb.c

index a9d26a2ec259bd46ed3fc00f07280556b47446fe..72a0dd27937e82025184bf31470e9330c6f74ed8 100644 (file)
@@ -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: