Re: [RFC PATCH 17/22] thunderbolt: Add initial support for USB4

From: Mika Westerberg
Date: Tue Oct 01 2019 - 09:09:12 EST


On Tue, Oct 01, 2019 at 02:47:48PM +0200, Greg Kroah-Hartman wrote:
> > - Thunderbolt Controller driver. This driver is required if you
> > - want to hotplug Thunderbolt devices on Apple hardware or on PCs
> > - with Intel Falcon Ridge or newer.
> > + USB4 (Thunderbolt) driver. USB4 is the public spec based on
> > + Thunderbolt 3 protocol. This driver is required if you want to
> > + hotplug Thunderbolt and USB4 compliant devices on Apple
> > + hardware or on PCs with Intel Falcon Ridge or newer.
>
> Wait, did "old" thunderbolt just get re-branded as USB4?

Not but the driver started supporting USB4 as well :)

USB4 is pretty much public spec of Thunderbolt 3 but with some
differences in register layouts (this is because Thunderbolt uses some
vendor specific capabilities which are now moved to more "standard"
places).

> Because if I have an "old" laptop that needs Thunderbolt support, how am
> I going to know it is now called USB4 instead?

Well the Kconfig option tries to have both names there:

tristate "USB4 (Thunderbolt) support"

and then

USB4 (Thunderbolt) driver. USB4 is the public spec based on
Thunderbolt 3 protocol. This driver is required if you want to hotplug
Thunderbolt and USB4 compliant devices on Apple hardware or on PCs
with Intel Falcon Ridge or newer.

and the Kconfig option is still CONFIG_THUNDERBOLT. I know this is
confusing but I don't have better ideas how we can advertise both. I
borrowed this "format" from firewire.

> Shouldn't there just be a new USB4 option that only enables/builds the
> USB4 stuff if selected? Why would I want all of this additional code on
> my old system if it's not going to do anything at all?

USB4 devices are backward compatible with Thunderbolt 3 so you should be
able to plug in USB4 device to your old Thunderbolt 3 laptop for
example. It goes the other way as well. Some things are optional but for
example USB4 hubs must support also Thunderbolt 3.

Does that clarify?