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

From: Mika Westerberg
Date: Tue Oct 01 2019 - 11:26:53 EST


On Tue, Oct 01, 2019 at 05:19:35PM +0200, Greg Kroah-Hartman wrote:
> On Tue, Oct 01, 2019 at 06:07:34PM +0300, Mika Westerberg wrote:
> > On Tue, Oct 01, 2019 at 04:53:54PM +0200, Greg Kroah-Hartman wrote:
> > > On Tue, Oct 01, 2019 at 04:09:05PM +0300, Mika Westerberg wrote:
> > > > 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).
> > >
> > > Ok, then we need to rename the Kconfig option as well, otherwise no one
> > > will "know" that this changed, so they will not be prompted for it.
> > >
> > > > > 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.
> > >
> > > CONFIG_USB4 instead?
> >
> > OK, but does that break existing .configs? I mean if you have already
> > CONFIG_THUNDERBOLT in your .config/defconfig does it now just get
> > dropped silently?
>
> Yup. And then you get asked about CONFIG_USB4

I see.

> > For example firewire has CONFIG_FIREWIRE even though the "standard" name
> > is IEEE 1394. I was thinking maybe we can do the same for
> > USB4/Thunderbolt?
>
> It comes down to the what do you want to do for the next 20+ years,
> explain to people that "to get USB4 support, enable CONFIG_THUNDERBOLT"?

That's a very good point indeed :)