On Tue, Oct 01, 2019 at 02:59:06PM +0000, Mario.Limonciello@xxxxxxxx wrote: > > > > -----Original Message----- > > From: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > > Sent: Tuesday, October 1, 2019 9:54 AM > > To: Mika Westerberg > > Cc: linux-usb@xxxxxxxxxxxxxxx; Andreas Noever; Michael Jamet; Yehezkel Bernat; > > Rajmohan Mani; Nicholas Johnson; Lukas Wunner; Alan Stern; Limonciello, Mario; > > Anthony Wong; linux-kernel@xxxxxxxxxxxxxxx > > Subject: Re: [RFC PATCH 17/22] thunderbolt: Add initial support for USB4 > > > > > > [EXTERNAL EMAIL] > > > > 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? > > How about CONFIG_USB4_PCIE? > > I think that will help align that certain aspects of USB4 can be built optionally. But this is not about PCIe - it is just one type of a tunnel that is optional with USB4. > > > > 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. > > > > > If PCIe tunnels are an optional feature in USB4, how can it be mandatory to support > Thunderbolt 3? It is mandatory for USB4 hubs. For peripheral devices and hosts Thunderbolt 3 support is optional. So for example you could have USB4 host that does not enter Thunderbolt 3 alternate mode at all so it only supports USB4 devices.