Various drivers in the kernel use `is_thunderbolt` or `pci_is_thunderbolt_attached` to designate behaving differently from a device that is internally in the machine. This relies upon checks for a specific capability only set on Intel controllers. Non-Intel USB4 designs should also match this designation so that they can be treated the same regardless of the host they're connected to. As part of adding the generic USB4 controller code, it was realized that `is_thunderbolt` and `pcie_is_thunderbolt_attached` have been overloaded. Instead migrate to using removable attribute from device core. Changes from v3->v4: - Add tags from last review where applicable - Update titles of different patches - Add more comments and commit messages to various patches to address comments raised in review - Re-order the patch series, moving more contentious patches later - Drop patch marking NHI removable - Drop patch changing gmux on it's own, roll into patch to drop `is_thunderbolt` - Modify patch to mark integrated USB4 tunnel PCIe root ports as "external" instead of removable. - Modify patch to mark discrete USB4 tunnel root ports as "external" instead of removable. - Fix bit mask error in discrete USB4 tunnel patch - Fix USB IF vendor designation location in pci_ids.h Changes from v2->v3: - Add various tags for patches that haven't changed from v2->v3 - Add new patches for Mika's suggestions: * Moving Apple Thunderbolt D3 declaration into quirks * Detect PCIe root port used for PCIe tunneling on integrated controllers using `usb4-host-interface` * Detect PCIe root port used for PCIe tunneling on discrete controllers using the USB4 DVSEC specification Changes from v1->v2: - Add Alex's tag to first patch - Move lack of command completion into a quirk (Lukas) - Drop `is_thunderbolt` attribute and `pci_is_thunderbolt_attached` and use device core removable attribute instead - Adjust all consumers of old attribute to use removable Note: this spans USB/DRM/platform-x86/PCI trees. As a majority of the changes are in PCI, it should probably come through that tree if possible. Mario Limonciello (10): PCI: Add USB4 class definition PCI: Move `is_thunderbolt` check for lack of command completed to a quirk PCI: Detect root port of internal USB4 controllers PCI: Detect PCIe root ports for discrete USB4 controllers PCI: Move check for old Apple Thunderbolt controllers into a quirk PCI: Drop the `is_thunderbolt` attribute from PCI core drm/amd: drop the use of `pci_is_thunderbolt_attached` drm/nouveau: drop the use of `pci_is_thunderbolt_attached` drm/radeon: drop the use of `pci_is_thunderbolt_attached` PCI: drop `pci_is_thunderbolt_attached` drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 2 +- drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c | 2 +- drivers/gpu/drm/nouveau/nouveau_vga.c | 4 +- drivers/gpu/drm/radeon/radeon_device.c | 4 +- drivers/gpu/drm/radeon/radeon_kms.c | 2 +- drivers/pci/hotplug/pciehp_hpc.c | 6 +- drivers/pci/pci-acpi.c | 15 ++++- drivers/pci/pci.c | 17 +++-- drivers/pci/probe.c | 52 ++++++++++++++- drivers/pci/quirks.c | 84 +++++++++++++++++++++++++ drivers/platform/x86/apple-gmux.c | 2 +- drivers/thunderbolt/nhi.h | 2 - include/linux/pci.h | 25 +------- include/linux/pci_ids.h | 3 + 14 files changed, 173 insertions(+), 47 deletions(-) -- 2.34.1