linux/drivers/thunderbolt
Mika Westerberg 8e1de70425 thunderbolt: Add support for XDomain lane bonding
The USB4 Inter-Domain Service specification defines a protocol that can
be used to establish lane bonding between two USB4 domains (hosts). So
far we have not implemented it because the host controller DMA was not
fast enough to be able to go over 20 Gbits/s even if lanes were bonded.
However, starting from Intel Alder Lake CPUs the DMA can go over
20 Gbits/s so now it makes more sense to add this support to the driver.

Because both ends need to negotiate the bonding we add a simple state
machine that tracks the connection state and does the necessary steps
described by the USB4 Inter-Domain Service specification. We only
establish lane bonding when both sides of the link support it. Otherwise
we default to use the single lane. Also this is only done when software
connection manager is used. On systems with firmware based connection
manager, it handles the high-speed tunneling so bonding lanes is
specific to the implementation (Intel firmware based connection manager
does not support lane bonding).

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2022-05-05 09:25:23 +03:00
..
acpi.c thunderbolt: Replace acpi_bus_get_device() 2022-02-02 17:06:10 +03:00
cap.c thunderbolt: cap: Fix kernel-doc formatting issue 2021-01-28 12:33:18 +03:00
ctl.c thunderbolt: Replace usage of found with dedicated list iterator variable 2022-04-04 12:31:50 +03:00
ctl.h thunderbolt: Decrease control channel timeout for software connection manager 2021-03-18 18:25:30 +03:00
debugfs.c thunderbolt: debugfs: Show all accessible dwords 2021-03-12 13:13:34 +03: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 thunderbolt: Convert rest of the driver files to use SPDX identifier 2018-10-02 15:52:08 -07:00
dma_test.c thunderbolt: Allow multiple DMA tunnels over a single XDomain connection 2021-03-18 18:25:31 +03:00
domain.c bus: Make remove callback return void 2021-07-21 11:53:42 +02:00
eeprom.c thunderbolt: Rename EEPROM handling bits to match USB4 spec 2022-03-04 17:10:36 +03:00
icm.c thunderbolt: Check return value of kmemdup() in icm_handle_event() 2021-12-15 13:39:08 +03:00
Kconfig thunderbolt: Add DMA traffic test driver 2020-11-11 10:20:16 +03:00
lc.c thunderbolt: Add internal xHCI connect flows for Thunderbolt 3 devices 2022-02-02 13:56:51 +03:00
Makefile thunderbolt: build kunit tests without structleak plugin 2021-10-06 17:53:49 -06: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: Add support for Intel Ice Lake 2019-08-26 12:15:06 +03:00
nhi.c thunderbolt: Fix typo in comment 2022-04-19 10:26:00 +03:00
nhi.h thunderbolt: Add support for Intel Alder Lake 2021-06-11 11:42:54 +03:00
nvm.c thunderbolt: Drop duplicate NULL checks around nvmem_unregister() 2022-02-21 18:00:30 +01:00
path.c thunderbolt: Dump path config space entries during discovery 2022-04-19 10:26:13 +03:00
property.c thunderbolt: Add tb_property_copy_dir() 2021-03-18 18:25:31 +03:00
quirks.c thunderbolt: Add quirk for Intel Goshen Ridge DP credits 2021-06-01 10:48:59 +03:00
retimer.c thunderbolt: Runtime resume USB4 port when retimers are scanned 2021-12-07 15:18:33 +03:00
sb_regs.h thunderbolt: Add additional USB4 port operations for retimer access 2021-06-01 10:53:31 +03:00
switch.c thunderbolt: Ignore port locked error in tb_port_wait_for_link_width() 2022-05-05 09:25:16 +03:00
tb_msgs.h thunderbolt: Add support for XDomain lane bonding 2022-05-05 09:25:23 +03:00
tb_regs.h thunderbolt: Add support for XDomain lane bonding 2022-05-05 09:25:23 +03:00
tb.c thunderbolt: Add support for XDomain lane bonding 2022-05-05 09:25:23 +03:00
tb.h thunderbolt: Split setting link width and lane bonding into own functions 2022-05-05 09:25:04 +03:00
test.c thunderbolt: Use different lane for second DisplayPort tunnel 2022-04-19 10:26:18 +03: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-04-19 10:26:18 +03:00
tunnel.h thunderbolt: Use different lane for second DisplayPort tunnel 2022-04-19 10:26:18 +03:00
usb4_port.c thunderbolt: Link USB4 ports to their USB Type-C connectors 2022-04-29 12:17:48 +03:00
usb4.c thunderbolt: Move usb4_switch_wait_for_bit() to switch.c 2021-12-22 17:13:14 +03:00
xdomain.c thunderbolt: Add support for XDomain lane bonding 2022-05-05 09:25:23 +03:00