On Tue, Oct 01, 2019 at 02:38:08PM +0300, Mika Westerberg wrote: > Hi all, > > I'm sending this as RFC because the series is still missing important > features such as power management so not ready for merging. However, I > think it is good to get any early feedback from the community. We are > working to add support for the missing features. > > USB4 is the public specification of Thunderbolt 3 protocol and can be > downloaded here: > > https://www.usb.org/sites/default/files/USB4%20Specification_1.zip > > USB4 is about tunneling different protocols over a single cable (in the > same way as Thunderbolt). The current USB4 spec supports PCIe, Display Port > and USB 3.x, and also software based protocols such as networking between > domains (hosts). > > So far PCs have been using firmware based Connection Manager and Apple > systems have been using software based one. A Connection Manager is the > entity that handles creation of different tunnel types through the USB4 > (and Thunderbolt) fabric. With USB4 the plan is to have software based > Connection Manager everywhere but some early systems will also support > firmware to allow OS downgrade for example. > > Current Linux Thunderbolt driver supports both "modes" and can detect which > one to use dynamically. > > This series first adds support for Thunderbolt 3 devices to the software > connection manager and then extends that to support USB4 compliant hosts > and devices (this applies to both firmware and software based connection > managers). With this series the following features are supported also for > USB4 compliant devices: > > - PCIe tunneling > - Display Port tunneling > - USB 3.x tunneling > - P2P networking (implemented in drivers/net/thunderbolt.c) > - Host and device NVM firmware upgrade > > We also add two new sysfs attributes under each device that expose link > speed and width to userspace. The rest of the userspace ABI stays the same. > > I'm including Linux USB folks as well because USB4 is officially coming > from USB-IF which puts us on same boat now. > > While I changed the user visible Kconfig string to mention "USB4" (the > Kconfig option is still CONFIG_THUNDERBOLT), I'm wondering whether we > should move the whole Thunderbolt driver under drivers/usb/thunderbolt as > well? Looks "interesting", nice work! I stopped at patch "Add initial support for USB4" as I don't think we want to add USB4 code to a system that we know does not have it, right? Everything up to then is just "normal" thunderbolt, and with the exception of a few minor comments, all look fine to me. I didn't actually read the USB4 patch just yet, as I figured we needed to argue about that some more :) thanks, greg k-h