Am Dienstag, den 01.10.2019, 14:38 +0300 schrieb Mika Westerberg: > From: Rajmohan Mani <rajmohan.mani@xxxxxxxxx> > > USB4 added a capability to tunnel USB 3.x protocol over the USB4 > fabric. USB4 device routers may include integrated SuperSpeed HUB or a > function or both. USB tunneling follows PCIe so that the tunnel is > created between the parent and the child router from USB downstream > adapter port to USB upstream adapter port over a single USB4 link. > > This adds support for USB tunneling and also capability to discover > existing USB tunnels (for example created by connection manager in boot > firmware). > > Signed-off-by: Rajmohan Mani <rajmohan.mani@xxxxxxxxx> > Co-developed-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> > Signed-off-by: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> > --- > drivers/thunderbolt/switch.c | 35 ++++++++ > drivers/thunderbolt/tb.c | 153 ++++++++++++++++++++++++++------ > drivers/thunderbolt/tb.h | 15 ++++ > drivers/thunderbolt/tb_regs.h | 9 +- > drivers/thunderbolt/tunnel.c | 158 +++++++++++++++++++++++++++++++++- > drivers/thunderbolt/tunnel.h | 9 ++ > drivers/thunderbolt/usb4.c | 41 ++++++++- > 7 files changed, 393 insertions(+), 27 deletions(-) > > diff --git a/drivers/thunderbolt/switch.c b/drivers/thunderbolt/switch.c > index 58e3f54ddbb9..5a3236fefb76 100644 > --- a/drivers/thunderbolt/switch.c > +++ b/drivers/thunderbolt/switch.c > @@ -1025,11 +1025,46 @@ bool tb_port_is_enabled(struct tb_port *port) > case TB_TYPE_DP_HDMI_OUT: > return tb_dp_port_is_enabled(port); > > + case TB_TYPE_USB_UP: > + case TB_TYPE_USB_DOWN: > + return tb_usb_port_is_enabled(port); > + > default: > return false; > } > } > > +/** > + * tb_usb_port_is_enabled() - Is the USB adapter port enabled > + * @port: USB port to check > + */ > +bool tb_usb_port_is_enabled(struct tb_port *port) Should these functions be called tb_usb3_port... ? This looks like all USB would need this. > -static const char * const tb_tunnel_names[] = { "PCI", "DP", "DMA" }; > +static const char * const tb_tunnel_names[] = { "PCI", "DP", "DMA", "USB"}; USB3 ? Regards Oliver