[Public] > -----Original Message----- > From: Mika Westerberg <mika.westerberg@xxxxxxxxxxxxxxx> > Sent: Friday, February 11, 2022 04:35 > To: Limonciello, Mario <Mario.Limonciello@xxxxxxx> > Cc: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>; Andreas Noever > <andreas.noever@xxxxxxxxx>; open list:PCI SUBSYSTEM <linux- > pci@xxxxxxxxxxxxxxx>; open list:THUNDERBOLT DRIVER <linux- > usb@xxxxxxxxxxxxxxx>; open list:RADEON and AMDGPU DRM DRIVERS <amd- > gfx@xxxxxxxxxxxxxxxxxxxxx>; open list:DRM DRIVERS <dri- > devel@xxxxxxxxxxxxxxxxxxxxx>; open list:DRM DRIVER FOR NVIDIA > GEFORCE/QUADRO GPUS <nouveau@xxxxxxxxxxxxxxxxxxxxx>; open list:X86 > PLATFORM DRIVERS <platform-driver-x86@xxxxxxxxxxxxxxx>; Michael Jamet > <michael.jamet@xxxxxxxxx>; Yehezkel Bernat <YehezkelShB@xxxxxxxxx>; > Lukas Wunner <lukas@xxxxxxxxx>; Deucher, Alexander > <Alexander.Deucher@xxxxxxx> > 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&data=04%7C01%7Cmario.limonciello%40amd.com%7C64e5b663f > 97b40f4035a08d9ed4a3162%7C3dd8961fe4884e608e11a82d994e183d%7C0%7 > C0%7C637801725176496963%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLj > AwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sd > ata=7BvPgExVP8Upvi25EEbqH9TacFDZ4zpCEKOfoBJWcxs%3D&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.