linux/drivers/thunderbolt
Mika Westerberg b04079837b thunderbolt: Add initial support for USB4
USB4 is the public specification based on Thunderbolt 3 protocol. There
are some differences in register layouts and flows. In addition to PCIe
and DP tunneling, USB4 supports tunneling of USB 3.x. USB4 is also
backward compatible with Thunderbolt 3 (and older generations but the
spec only talks about 3rd generation). USB4 compliant devices can be
identified by checking USB4 version field in router configuration space.

This patch adds initial support for USB4 compliant hosts and devices
which enables following features provided by the existing functionality
in the driver:

  - PCIe tunneling
  - Display Port tunneling
  - Host and device NVM firmware upgrade
  - P2P networking

This brings the USB4 support to the same level that we already have for
Thunderbolt 1, 2 and 3 devices.

Note the spec talks about host and device "routers" but in the driver we
still use term "switch" in most places. Both can be used interchangeably.

Co-developed-by: Rajmohan Mani <rajmohan.mani@intel.com>
Signed-off-by: Rajmohan Mani <rajmohan.mani@intel.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Link: https://lore.kernel.org/r/20191217123345.31850-5-mika.westerberg@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-12-18 15:38:55 +01:00
..
cap.c thunderbolt: Expand controller name in tb_switch_is_xy() 2019-11-02 12:13:31 +03:00
ctl.c thunderbolt: Populate PG field in hot plug acknowledgment packet 2019-12-18 15:34:25 +01:00
ctl.h thunderbolt: Populate PG field in hot plug acknowledgment packet 2019-12-18 15:34:25 +01:00
dma_port.c thunderbolt: Convert rest of the driver files to use SPDX identifier 2018-10-02 15:52:08 -07:00
dma_port.h thunderbolt: Convert rest of the driver files to use SPDX identifier 2018-10-02 15:52:08 -07:00
domain.c crypto: shash - remove shash_desc::flags 2019-04-25 15:38:12 +08:00
eeprom.c thunderbolt: Add initial support for USB4 2019-12-18 15:38:55 +01:00
icm.c thunderbolt: Do not start firmware unless asked by the user 2019-11-02 12:13:31 +03:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
lc.c thunderbolt: Add Display Port adapter pairing and resource management 2019-11-02 12:13:31 +03:00
Makefile thunderbolt: Add initial support for USB4 2019-12-18 15:38:55 +01:00
nhi_ops.c thunderbolt: Drop unnecessary read when writing LC command in Ice Lake 2019-10-08 12:08:21 +03:00
nhi_regs.h thunderbolt: Add support for Intel Ice Lake 2019-08-26 12:15:06 +03:00
nhi.c thunderbolt: Add initial support for USB4 2019-12-18 15:38:55 +01:00
nhi.h thunderbolt: Add initial support for USB4 2019-12-18 15:38:55 +01:00
path.c thunderbolt: Add bandwidth management for Display Port tunnels 2019-11-02 12:13:31 +03:00
property.c thunderbolt: property: Fix a missing check of kzalloc 2019-03-28 11:30:47 +03:00
switch.c thunderbolt: Add initial support for USB4 2019-12-18 15:38:55 +01:00
tb_msgs.h thunderbolt: Populate PG field in hot plug acknowledgment packet 2019-12-18 15:34:25 +01:00
tb_regs.h thunderbolt: Add initial support for USB4 2019-12-18 15:38:55 +01:00
tb.c thunderbolt: Add initial support for USB4 2019-12-18 15:38:55 +01:00
tb.h thunderbolt: Add initial support for USB4 2019-12-18 15:38:55 +01:00
tunnel.c thunderbolt: Add initial support for USB4 2019-12-18 15:38:55 +01:00
tunnel.h thunderbolt: Add bandwidth management for Display Port tunnels 2019-11-02 12:13:31 +03:00
usb4.c thunderbolt: Add initial support for USB4 2019-12-18 15:38:55 +01:00
xdomain.c thunderbolt: Add initial support for USB4 2019-12-18 15:38:55 +01:00