linux-stable/drivers/thunderbolt
Mika Westerberg b3de490f25 thunderbolt: Use different lane for second DisplayPort tunnel
[ Upstream commit 9d2d0a5cf0 ]

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>
2022-06-14 18:41:34 +02:00
..
Kconfig
Makefile
acpi.c
cap.c
ctl.c
ctl.h
debugfs.c
dma_port.c
dma_port.h
dma_test.c
domain.c
eeprom.c
icm.c
lc.c thunderbolt: Enable CL0s for Intel Titan Ridge 2021-12-28 10:43:56 +03:00
nhi.c
nhi.h
nhi_ops.c
nhi_regs.h
nvm.c
path.c
property.c
quirks.c
retimer.c
sb_regs.h
switch.c thunderbolt: Add module parameter for CLx disabling 2021-12-28 10:43:56 +03:00
tb.c thunderbolt: Use different lane for second DisplayPort tunnel 2022-06-14 18:41:34 +02:00
tb.h thunderbolt: Enable CL0s for Intel Titan Ridge 2021-12-28 10:43:56 +03:00
tb_msgs.h
tb_regs.h thunderbolt: Enable CL0s for Intel Titan Ridge 2021-12-28 10:43:56 +03:00
test.c thunderbolt: Use different lane for second DisplayPort tunnel 2022-06-14 18:41:34 +02:00
tmu.c thunderbolt: Enable CL0s for Intel Titan Ridge 2021-12-28 10:43:56 +03:00
tunnel.c thunderbolt: Use different lane for second DisplayPort tunnel 2022-06-14 18:41:34 +02:00
tunnel.h thunderbolt: Use different lane for second DisplayPort tunnel 2022-06-14 18:41:34 +02:00
usb4.c
usb4_port.c
xdomain.c