OpenCloudOS-Kernel/drivers/thunderbolt
Sanath S 3c1d704d92 thunderbolt: Reset topology created by the boot firmware
commit 59a54c5f3dbde00b8ad30aef27fe35b1fe07bf5c upstream.

Boot firmware (typically BIOS) might have created tunnels of its own.
The tunnel configuration that it does might be sub-optimal. For instance
it may only support HBR2 monitors so the DisplayPort tunnels it created
may limit Linux graphics drivers. In addition there is an issue on some
AMD based systems where the BIOS does not allocate enough PCIe resources
for future topology extension. By resetting the USB4 topology the PCIe
links will be reset as well allowing Linux to re-allocate.

This aligns the behavior with Windows Connection Manager.

We already issued host router reset for USB4 v2 routers, now extend it
to USB4 v1 routers as well. For pre-USB4 (that's Apple systems) we leave
it as is and continue to discover the existing tunnels.

Suggested-by: Mario Limonciello <mario.limonciello@amd.com>
Signed-off-by: Sanath S <Sanath.S@amd.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-04-27 17:11:35 +02:00
..
Kconfig thunderbolt: Changes for v6.1 merge window 2022-09-30 13:44:59 +02:00
Makefile thunderbolt: Move CLx support functions into clx.c 2023-06-09 12:07:23 +03:00
acpi.c thunderbolt: Log a warning if device links are not found 2023-08-08 08:13:11 +03:00
cap.c thunderbolt: cap: Fix kernel-doc formatting issue 2021-01-28 12:33:18 +03:00
clx.c thunderbolt: Enable CL2 low power state 2023-06-16 09:53:28 +03:00
ctl.c thunderbolt: Add the new USB4 v2 notification types 2023-06-16 09:53:28 +03:00
ctl.h thunderbolt: Add support for DisplayPort bandwidth allocation mode 2023-01-17 11:37:16 +02:00
debugfs.c thunderbolt: Fix memory leak in margining_port_remove() 2024-01-01 12:42:46 +00:00
dma_port.c thunderbolt: Use generic tb_nvm_[read|write]_data() for Thunderbolt 2/3 devices 2021-05-31 14:37:54 +03:00
dma_port.h
dma_test.c thunderbolt: Add support for USB4 v2 80 Gb/s link 2023-06-16 09:53:27 +03:00
domain.c thunderbolt: Reset topology created by the boot firmware 2024-04-27 17:11:35 +02:00
eeprom.c thunderbolt: Ignore data CRC mismatch for USB4 routers 2023-06-16 09:53:27 +03:00
icm.c thunderbolt: Reset topology created by the boot firmware 2024-04-27 17:11:35 +02:00
lc.c thunderbolt: Introduce tb_port_reset() 2024-04-27 17:11:35 +02:00
nhi.c thunderbolt: Reset topology created by the boot firmware 2024-04-27 17:11:35 +02:00
nhi.h thunderbolt: Limit Intel Barlow Ridge USB3 bandwidth 2023-06-16 09:53:28 +03:00
nhi_ops.c thunderbolt: Software CM only should set force power in Tiger Lake 2020-09-03 12:06:40 +03:00
nhi_regs.h thunderbolt: Reset USB4 v2 host router 2023-06-16 09:53:28 +03:00
nvm.c thunderbolt: Increase NVM_MAX_SIZE to support Intel Barlow Ridge controller 2023-06-16 09:53:28 +03:00
path.c thunderbolt: Introduce tb_path_deactivate_hop() 2024-04-27 17:11:35 +02:00
property.c thunderbolt: Add tb_property_copy_dir() 2021-03-18 18:25:31 +03:00
quirks.c thunderbolt: Keep the domain powered when USB4 port is in redrive mode 2024-04-13 13:07:38 +02:00
retimer.c thunderbolt: Enable/disable sideband depending on USB4 port offline mode 2023-06-12 08:38:01 +03:00
sb_regs.h thunderbolt: Add missing UNSET_INBOUND_SBTX for retimer access 2023-03-13 11:54:20 +02:00
switch.c thunderbolt: Make tb_switch_reset() support Thunderbolt 2, 3 and USB4 routers 2024-04-27 17:11:35 +02:00
tb.c thunderbolt: Reset topology created by the boot firmware 2024-04-27 17:11:35 +02:00
tb.h thunderbolt: Reset topology created by the boot firmware 2024-04-27 17:11:35 +02:00
tb_msgs.h thunderbolt: Add the new USB4 v2 notification types 2023-06-16 09:53:28 +03:00
tb_regs.h thunderbolt: Make tb_switch_reset() support Thunderbolt 2, 3 and USB4 routers 2024-04-27 17:11:35 +02:00
test.c thunderbolt: Add test case for 3 DisplayPort tunnels 2023-06-16 09:53:29 +03:00
tmu.c thunderbolt: Correct TMU mode initialization from hardware 2023-09-15 12:59:02 +03:00
tunnel.c thunderbolt: Add DisplayPort 2.x tunneling support 2023-06-16 09:53:29 +03:00
tunnel.h thunderbolt: Add missing kernel-doc comment to tb_tunnel_maximum_bandwidth() 2023-01-27 08:25:59 +02:00
usb4.c thunderbolt: Introduce tb_port_reset() 2024-04-27 17:11:35 +02:00
usb4_port.c thunderbolt: Add wake on connect/disconnect on USB4 ports 2022-11-07 14:36:47 +02:00
xdomain.c thunderbolt: Restart XDomain discovery handshake after failure 2023-09-15 13:01:18 +03:00