PCI: Use pci_find_vsec_capability() when looking for TBT devices
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Mon, 15 Nov 2021 11:29:02 +0000 (13:29 +0200)
committerBjorn Helgaas <bhelgaas@google.com>
Mon, 15 Nov 2021 20:01:11 +0000 (14:01 -0600)
Currently set_pcie_thunderbolt() open-codes pci_find_vsec_capability().
Refactor the former to use the latter. No functional change intended.

Link: https://lore.kernel.org/r/20211115112902.24033-1-andriy.shevchenko@linux.intel.com
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Krzysztof WilczyƄski <kw@linux.com>
drivers/pci/probe.c

index 087d365..496c8b8 100644 (file)
@@ -1579,20 +1579,12 @@ void set_pcie_hotplug_bridge(struct pci_dev *pdev)
 
 static void set_pcie_thunderbolt(struct pci_dev *dev)
 {
-       int vsec = 0;
-       u32 header;
+       u16 vsec;
 
-       while ((vsec = pci_find_next_ext_capability(dev, vsec,
-                                                   PCI_EXT_CAP_ID_VNDR))) {
-               pci_read_config_dword(dev, vsec + PCI_VNDR_HEADER, &header);
-
-               /* Is the device part of a Thunderbolt controller? */
-               if (dev->vendor == PCI_VENDOR_ID_INTEL &&
-                   PCI_VNDR_HEADER_ID(header) == PCI_VSEC_ID_INTEL_TBT) {
-                       dev->is_thunderbolt = 1;
-                       return;
-               }
-       }
+       /* Is the device part of a Thunderbolt controller? */
+       vsec = pci_find_vsec_capability(dev, PCI_VENDOR_ID_INTEL, PCI_VSEC_ID_INTEL_TBT);
+       if (vsec)
+               dev->is_thunderbolt = 1;
 }
 
 static void set_pcie_untrusted(struct pci_dev *dev)