mbox series

[00/17] thunderbolt: Tunneling improvements

Message ID 20200615142645.56209-1-mika.westerberg@linux.intel.com (mailing list archive)
Headers show
Series thunderbolt: Tunneling improvements | expand

Message

Mika Westerberg June 15, 2020, 2:26 p.m. UTC
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

Comments

Mika Westerberg June 29, 2020, 3:39 p.m. UTC | #1
On Mon, Jun 15, 2020 at 05:26:28PM +0300, Mika Westerberg wrote:
> 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

Queued these for v5.9.