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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 14 Jun 2022 16:36:20 +0000 (18:36 +0200)
commit04a8e39c8c9b4e3d5c3c4f14a629875cc79d232e
tree28bc50584fd9e93796b5ea3a2d257ad2cf8fa4ab
parent5f9b2e4ca88cab1a96b86ecd45544e488ca43faf
thunderbolt: Use different lane for second DisplayPort tunnel

[ Upstream commit 9d2d0a5cf0ca063f417681cc33e767ce52615286 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/thunderbolt/tb.c
drivers/thunderbolt/test.c
drivers/thunderbolt/tunnel.c
drivers/thunderbolt/tunnel.h