linux/drivers/thunderbolt
Mika Westerberg 9039387e16 thunderbolt: Add USB4 router operation proxy for firmware connection manager
Intel Maple Ridge and Tiger Lake connection manager firmware implements
a USB4 router operation proxy that should be used instead of direct
register access to avoid races with the firmware. This is supported in
all firmwares where the protocol version field returned in the driver
ready response is 3 (or higher).

This adds the USB4 router proxy operations support to the driver so that
we first check the protocol version and if it is 3 (or higher) the USB4
router operation is run through the firmware provided proxy. Otherwise
the native version is used.

Most USB4 router proxy operations are pretty straightforward except
NVM_AUTH where the firmware only responds once the router is restarted
but before it sends device connected notification. To support this we
split the operation so that the reply is received asynchronously and
stored to struct icm. This last reply is then returned in
icm_usb4_switch_nvm_authenticate_status() if available.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
2020-11-30 14:39:24 +03:00
..
acpi.c thunderbolt: Create device links from ACPI description 2020-09-03 12:06:42 +03:00
cap.c thunderbolt: Introduce tb_switch_next_cap() 2020-09-03 12:21:07 +03:00
ctl.c thunderbolt: Return -ENOTCONN when ERR_CONN is received 2020-11-30 14:39:24 +03:00
ctl.h thunderbolt: Populate PG field in hot plug acknowledgment packet 2019-12-18 15:34:25 +01:00
debugfs.c thunderbolt: Create debugfs directory automatically for services 2020-11-11 10:20:16 +03: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
dma_test.c thunderbolt: Add DMA traffic test driver 2020-11-11 10:20:16 +03:00
domain.c thunderbolt: Allow KUnit tests to be built also when CONFIG_USB4=m 2020-09-16 14:57:46 +03:00
eeprom.c thunderbolt: Retry DROM read once if parsing fails 2020-09-09 14:00:56 +03:00
icm.c thunderbolt: Add USB4 router operation proxy for firmware connection manager 2020-11-30 14:39:24 +03:00
Kconfig thunderbolt: Add DMA traffic test driver 2020-11-11 10:20:16 +03:00
lc.c thunderbolt: Enable wakes from system suspend 2020-09-03 12:06:42 +03:00
Makefile thunderbolt: Add DMA traffic test driver 2020-11-11 10:20:16 +03:00
nhi.c thunderbolt: Add support for end-to-end flow control 2020-11-11 10:20:16 +03:00
nhi.h thunderbolt: Add support for Intel Tiger Lake 2020-04-23 09:57:59 +03: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
nvm.c thunderbolt: Add support for separating the flush to SPI and authenticate 2020-07-01 13:51:49 +03:00
path.c thunderbolt: Log adapter numbers in decimal in path activation/deactivation 2020-11-30 14:39:23 +03:00
property.c thunderbolt: property: Fix a missing check of kzalloc 2019-03-28 11:30:47 +03:00
quirks.c thunderbolt: Correct tb_check_quirks() kernel-doc 2020-09-16 14:57:46 +03:00
retimer.c thunderbolt: Add support for on-board retimers 2020-06-22 19:58:32 +03:00
sb_regs.h thunderbolt: Add support for on-board retimers 2020-06-22 19:58:32 +03:00
switch.c thunderbolt: Perform USB4 router NVM upgrade in two phases 2020-11-30 14:39:24 +03:00
tb.c thunderbolt: Log which connection manager implementation is used 2020-11-30 14:39:23 +03:00
tb.h thunderbolt: Add connection manager specific hooks for USB4 router operations 2020-11-30 14:39:24 +03:00
tb_msgs.h thunderbolt: Add USB4 router operation proxy for firmware connection manager 2020-11-30 14:39:24 +03:00
tb_regs.h thunderbolt: Move constants for USB4 router operations to tb_regs.h 2020-11-30 14:39:24 +03:00
test.c thunderbolt: Allow KUnit tests to be built also when CONFIG_USB4=m 2020-09-16 14:57:46 +03:00
tmu.c thunderbolt: Add support for Time Management Unit 2019-12-18 15:41:15 +01:00
tunnel.c thunderbolt: Make it possible to allocate one directional DMA tunnel 2020-11-11 10:20:16 +03:00
tunnel.h thunderbolt: Add USB3 bandwidth management 2020-06-22 19:58:20 +03:00
usb4.c thunderbolt: Move constants for USB4 router operations to tb_regs.h 2020-11-30 14:39:24 +03:00
xdomain.c thunderbolt: Create debugfs directory automatically for services 2020-11-11 10:20:16 +03:00