RE: [PATCH v2 4/9] PCI: mark USB4 devices as removable

Limonciello, Mario
2022-02-11T19:36:13Z

[Public]

> -----Original Message-----
> From: Mika Westerberg <mika.westerberg@linux.intel.com>
> Sent: Friday, February 11, 2022 04:35
> To: Limonciello, Mario <Mario.Limonciello@amd.com>
> Cc: Bjorn Helgaas <bhelgaas@google.com>; Andreas Noever
> <andreas.noever@gmail.com>; open list:PCI SUBSYSTEM <linux-
> pci@vger.kernel.org>; open list:THUNDERBOLT DRIVER <linux-
> usb@vger.kernel.org>; open list:RADEON and AMDGPU DRM DRIVERS <amd-
> gfx@lists.freedesktop.org>; open list:DRM DRIVERS <dri-
> devel@lists.freedesktop.org>; open list:DRM DRIVER FOR NVIDIA
> GEFORCE/QUADRO GPUS <nouveau@lists.freedesktop.org>; open list:X86
> PLATFORM DRIVERS <platform-driver-x86@vger.kernel.org>; Michael Jamet
> <michael.jamet@intel.com>; Yehezkel Bernat <YehezkelShB@gmail.com>;
> Lukas Wunner <lukas@wunner.de>; Deucher, Alexander
> <Alexander.Deucher@amd.com>
> Subject: Re: [PATCH v2 4/9] PCI: mark USB4 devices as removable
>
> Hi Mario,
>
> On Thu, Feb 10, 2022 at 04:43:24PM -0600, Mario Limonciello wrote:
> > USB4 class devices are also removable like Intel Thunderbolt devices.
> >
> > Drivers of downstream devices use this information to declare functional
> > differences in how the drivers perform by knowing that they are connected
> > to an upstream TBT/USB4 port.
>
> This may not be covering the integrated controllers. For discrete, yes
> but if it is the PCIe root ports that start the PCIe topology (over the
> PCIe tunnels) this does not work.
>
> For integrated we have the "usb4-host-interface" ACPI property that
> tells this for each port:
>
> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.mi
> crosoft.com%2Fen-us%2Fwindows-hardware%2Fdrivers%2Fpci%2Fdsd-for-pcie-
> root-ports%23mapping-native-protocols-pcie-displayport-tunneled-through-
> usb4-to-usb4-host-
> routers&amp;data=04%7C01%7Cmario.limonciello%40amd.com%7C64e5b663f
> 97b40f4035a08d9ed4a3162%7C3dd8961fe4884e608e11a82d994e183d%7C0%7
> C0%7C637801725176496963%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLj
> AwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&amp;sd
> ata=7BvPgExVP8Upvi25EEbqH9TacFDZ4zpCEKOfoBJWcxs%3D&amp;reserved=0
>
> and for discrete there is the PCIe DVSEC that can be used (see the USB4
> spec archive it includes the "USB4 DVSEC Version 1.0.pdf" that has more
> information). I would expect AMD controller (assuming it is discrete)
> implements this too.
>
> So I'm proposing that we mark the devices that are below PCIe ports
> (root, downstream) that fall in the above categories as "removable".
> This is then not dependent on checking the USB4 controller and how it is
> setup in a particular system.

Thanks for all of the great suggestions! I've incorporated them in v3.