thunderbolt: Allow multiple DMA tunnels over a single XDomain connection
authorMika Westerberg <mika.westerberg@linux.intel.com>
Fri, 8 Jan 2021 14:25:39 +0000 (16:25 +0200)
committerMika Westerberg <mika.westerberg@linux.intel.com>
Thu, 18 Mar 2021 15:25:31 +0000 (18:25 +0300)
commit180b0689425c6fb2b35e69a3316ee38371a782df
treebbfac79fc08f79f6f5ce66a584ed6c1ae1a127af
parent5cfdd300b7b1e6f2390cf0d71040a8c26297bef7
thunderbolt: Allow multiple DMA tunnels over a single XDomain connection

Currently we have had an artificial limitation of a single DMA tunnel
per XDomain connection. However, hardware wise there is no such limit
and software based connection manager can take advantage of all the DMA
rings available on the host to establish tunnels.

For this reason make the tb_xdomain_[enable|disable]_paths() to take the
DMA ring and HopID as parameter instead of storing them in the struct
tb_xdomain. We also add API functions to allocate input and output
HopIDs of the XDomain connection that the service drivers can use
instead of hard-coding.

Also convert the two existing service drivers over to this API.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
drivers/net/thunderbolt.c
drivers/thunderbolt/dma_test.c
drivers/thunderbolt/domain.c
drivers/thunderbolt/icm.c
drivers/thunderbolt/tb.c
drivers/thunderbolt/tb.h
drivers/thunderbolt/tunnel.c
drivers/thunderbolt/tunnel.h
drivers/thunderbolt/xdomain.c
include/linux/thunderbolt.h