Hi all, This series improves the Thunderbolt/USB4 driver to support tree topologies that are now possible with USB4 devices (it is possible with TBT devices but there are no such devices available in the market with more than two ports). We also take advantage of KUnit and add unit tests for path walking and tunneling (in cases where hardware is not needed). In addition we add initial support for USB3 tunnel bandwidth management so that the driver can share isochronous bandwidth between USB3 and DisplayPort. Mika Westerberg (17): thunderbolt: Fix path indices used in USB3 tunnel discovery thunderbolt: Make tb_next_port_on_path() work with tree topologies thunderbolt: Make tb_path_alloc() work with tree topologies thunderbolt: Check that both ports are reachable when allocating path thunderbolt: Handle incomplete PCIe/USB3 paths correctly in discovery thunderbolt: Increase path length in discovery thunderbolt: Add KUnit tests for path walking thunderbolt: Add DP IN resources for all routers thunderbolt: Do not tunnel USB3 if link is not USB4 thunderbolt: Make usb4_switch_map_usb3_down() also return enabled ports thunderbolt: Make usb4_switch_map_pcie_down() also return enabled ports thunderbolt: Report consumed bandwidth in both directions thunderbolt: Increase DP DPRX wait timeout thunderbolt: Implement USB3 bandwidth negotiation routines thunderbolt: Make tb_port_get_link_speed() available to other files thunderbolt: Add USB3 bandwidth management thunderbolt: Add KUnit tests for tunneling drivers/thunderbolt/Kconfig | 5 + drivers/thunderbolt/Makefile | 2 + drivers/thunderbolt/path.c | 38 +- drivers/thunderbolt/switch.c | 25 +- drivers/thunderbolt/tb.c | 378 ++++++-- drivers/thunderbolt/tb.h | 35 +- drivers/thunderbolt/tb_regs.h | 20 + drivers/thunderbolt/test.c | 1626 +++++++++++++++++++++++++++++++++ drivers/thunderbolt/tunnel.c | 326 ++++++- drivers/thunderbolt/tunnel.h | 37 +- drivers/thunderbolt/usb4.c | 369 +++++++- 11 files changed, 2709 insertions(+), 152 deletions(-) create mode 100644 drivers/thunderbolt/test.c -- 2.27.0.rc2