mbox series

[00/18] thunderbolt: Align with USB4 inter-domain and DROM specs

Message ID 20210304123125.43630-1-mika.westerberg@linux.intel.com (mailing list archive)
Headers show
Series thunderbolt: Align with USB4 inter-domain and DROM specs | expand

Message

Mika Westerberg March 4, 2021, 12:31 p.m. UTC
Hi all,

The latest USB4 spec [1] also includes inter-domain (peer-to-peer, XDomain)
and DROM (per-device ROM) specs. There are sligth differences between what
the driver is doing now and what the spec say so this series tries to align
the driver(s) with that. We also improve the "service" stack so that it is
possible to run multiple DMA tunnels over a single XDomain connection, and
update the two existing service drivers accordingly.

We also decrease the control channel timeout when software based connection
manager is used.

The USB4 DROM spec adds a new product descriptor that includes the device
and IDs instead of the generic entries in the Thunderbotl 1-3 DROMs. This
series updates the driver to parse this descriptor too.

[1] https://www.usb.org/document-library/usb4tm-specification

Mika Westerberg (18):
  thunderbolt: Disable retry logic for intra-domain control packets
  thunderbolt: Do not pass timeout for tb_cfg_reset()
  thunderbolt: Decrease control channel timeout for software connection manager
  Documentation / thunderbolt: Drop speed/lanes entries for XDomain
  thunderbolt: Add more logging to XDomain connections
  thunderbolt: Do not re-establish XDomain DMA paths automatically
  thunderbolt: Use pseudo-random number as initial property block generation
  thunderbolt: Align XDomain protocol timeouts with the spec
  thunderbolt: Add tb_property_copy_dir()
  thunderbolt: Add support for maxhopid XDomain property
  thunderbolt: Use dedicated flow control for DMA tunnels
  thunderbolt: Drop unused tb_port_set_initial_credits()
  thunderbolt: Allow multiple DMA tunnels over a single XDomain connection
  net: thunderbolt: Align the driver to the USB4 networking spec
  thunderbolt: Add KUnit tests for XDomain properties
  thunderbolt: Add KUnit tests for DMA tunnels
  thunderbolt: Check quirks in tb_switch_add()
  thunderbolt: Add support for USB4 DROM

 .../ABI/testing/sysfs-bus-thunderbolt         |  35 +-
 drivers/net/thunderbolt.c                     |  56 +-
 drivers/thunderbolt/ctl.c                     |  21 +-
 drivers/thunderbolt/ctl.h                     |   8 +-
 drivers/thunderbolt/dma_test.c                |  35 +-
 drivers/thunderbolt/domain.c                  |  90 ++--
 drivers/thunderbolt/eeprom.c                  | 105 +++-
 drivers/thunderbolt/icm.c                     |  34 +-
 drivers/thunderbolt/property.c                |  71 +++
 drivers/thunderbolt/switch.c                  |  26 +-
 drivers/thunderbolt/tb.c                      |  52 +-
 drivers/thunderbolt/tb.h                      |  19 +-
 drivers/thunderbolt/test.c                    | 492 ++++++++++++++++++
 drivers/thunderbolt/tunnel.c                  | 102 +++-
 drivers/thunderbolt/tunnel.h                  |   8 +-
 drivers/thunderbolt/xdomain.c                 | 416 +++++++++------
 include/linux/thunderbolt.h                   |  54 +-
 17 files changed, 1220 insertions(+), 404 deletions(-)

Comments

Mika Westerberg March 18, 2021, 3:30 p.m. UTC | #1
On Thu, Mar 04, 2021 at 03:31:07PM +0300, Mika Westerberg wrote:
> Hi all,
> 
> The latest USB4 spec [1] also includes inter-domain (peer-to-peer, XDomain)
> and DROM (per-device ROM) specs. There are sligth differences between what
> the driver is doing now and what the spec say so this series tries to align
> the driver(s) with that. We also improve the "service" stack so that it is
> possible to run multiple DMA tunnels over a single XDomain connection, and
> update the two existing service drivers accordingly.
> 
> We also decrease the control channel timeout when software based connection
> manager is used.
> 
> The USB4 DROM spec adds a new product descriptor that includes the device
> and IDs instead of the generic entries in the Thunderbotl 1-3 DROMs. This
> series updates the driver to parse this descriptor too.
> 
> [1] https://www.usb.org/document-library/usb4tm-specification
> 
> Mika Westerberg (18):
>   thunderbolt: Disable retry logic for intra-domain control packets
>   thunderbolt: Do not pass timeout for tb_cfg_reset()
>   thunderbolt: Decrease control channel timeout for software connection manager
>   Documentation / thunderbolt: Drop speed/lanes entries for XDomain
>   thunderbolt: Add more logging to XDomain connections
>   thunderbolt: Do not re-establish XDomain DMA paths automatically
>   thunderbolt: Use pseudo-random number as initial property block generation
>   thunderbolt: Align XDomain protocol timeouts with the spec
>   thunderbolt: Add tb_property_copy_dir()
>   thunderbolt: Add support for maxhopid XDomain property
>   thunderbolt: Use dedicated flow control for DMA tunnels
>   thunderbolt: Drop unused tb_port_set_initial_credits()
>   thunderbolt: Allow multiple DMA tunnels over a single XDomain connection
>   net: thunderbolt: Align the driver to the USB4 networking spec
>   thunderbolt: Add KUnit tests for XDomain properties
>   thunderbolt: Add KUnit tests for DMA tunnels
>   thunderbolt: Check quirks in tb_switch_add()
>   thunderbolt: Add support for USB4 DROM

All applied to thunderbolt.git/next.