thunderbolt: Use different lane for second DisplayPort tunnel
authorMika Westerberg <mika.westerberg@linux.intel.com>
Fri, 1 Apr 2022 14:24:28 +0000 (17:24 +0300)
committerMika Westerberg <mika.westerberg@linux.intel.com>
Tue, 19 Apr 2022 07:26:18 +0000 (10:26 +0300)
commit9d2d0a5cf0ca063f417681cc33e767ce52615286
treea5f8c4deb919a2e471e8ba39290963f4717345cc
parent259e0c71e552557294d4820c840f62185e135c3a
thunderbolt: Use different lane for second DisplayPort tunnel

Brad reported that on Apple hardware with Light Ridge or Falcon Ridge
controller, plugging in a chain of Thunderbolt displays (Light Ridge
based controllers) causes all kinds of tearing and flickering. The
reason for this is that on Thunderbolt 1 hardware there is no lane
bonding so we have two independent 10 Gb/s lanes, and currently Linux
tunnels both displays through the lane 1. This makes the displays to
share the 10 Gb/s bandwidth which may not be enough for higher
resolutions.

For this reason make the second tunnel go through the lane 0 instead.
This seems to match what the macOS connection manager is also doing.

Reported-by: Brad Campbell <lists2009@fnarfbargle.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Tested-by: Brad Campbell <lists2009@fnarfbargle.com>
drivers/thunderbolt/tb.c
drivers/thunderbolt/test.c
drivers/thunderbolt/tunnel.c
drivers/thunderbolt/tunnel.h