PCI / thunderbolt: Switch to use device links instead of PCI quirk
[sfrench/cifs-2.6.git] / drivers / pci / quirks.c
index 2a589b6d6ed85ca9644dbe85e08ab7bf85455cb2..01f23e30bd8f4a0c57e9454fbc71c2fc5710d7aa 100644 (file)
@@ -3673,63 +3673,6 @@ static void quirk_apple_poweroff_thunderbolt(struct pci_dev *dev)
 DECLARE_PCI_FIXUP_SUSPEND_LATE(PCI_VENDOR_ID_INTEL,
                               PCI_DEVICE_ID_INTEL_CACTUS_RIDGE_4C,
                               quirk_apple_poweroff_thunderbolt);
-
-/*
- * Apple: Wait for the Thunderbolt controller to reestablish PCI tunnels
- *
- * During suspend the Thunderbolt controller is reset and all PCI
- * tunnels are lost. The NHI driver will try to reestablish all tunnels
- * during resume. We have to manually wait for the NHI since there is
- * no parent child relationship between the NHI and the tunneled
- * bridges.
- */
-static void quirk_apple_wait_for_thunderbolt(struct pci_dev *dev)
-{
-       struct pci_dev *sibling = NULL;
-       struct pci_dev *nhi = NULL;
-
-       if (!x86_apple_machine)
-               return;
-       if (pci_pcie_type(dev) != PCI_EXP_TYPE_DOWNSTREAM)
-               return;
-
-       /*
-        * Find the NHI and confirm that we are a bridge on the Thunderbolt
-        * host controller and not on a Thunderbolt endpoint.
-        */
-       sibling = pci_get_slot(dev->bus, 0x0);
-       if (sibling == dev)
-               goto out; /* we are the downstream bridge to the NHI */
-       if (!sibling || !sibling->subordinate)
-               goto out;
-       nhi = pci_get_slot(sibling->subordinate, 0x0);
-       if (!nhi)
-               goto out;
-       if (nhi->vendor != PCI_VENDOR_ID_INTEL
-                   || (nhi->device != PCI_DEVICE_ID_INTEL_LIGHT_RIDGE &&
-                       nhi->device != PCI_DEVICE_ID_INTEL_CACTUS_RIDGE_4C &&
-                       nhi->device != PCI_DEVICE_ID_INTEL_FALCON_RIDGE_2C_NHI &&
-                       nhi->device != PCI_DEVICE_ID_INTEL_FALCON_RIDGE_4C_NHI)
-                   || nhi->class != PCI_CLASS_SYSTEM_OTHER << 8)
-               goto out;
-       pci_info(dev, "quirk: waiting for Thunderbolt to reestablish PCI tunnels...\n");
-       device_pm_wait_for_dev(&dev->dev, &nhi->dev);
-out:
-       pci_dev_put(nhi);
-       pci_dev_put(sibling);
-}
-DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_INTEL,
-                              PCI_DEVICE_ID_INTEL_LIGHT_RIDGE,
-                              quirk_apple_wait_for_thunderbolt);
-DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_INTEL,
-                              PCI_DEVICE_ID_INTEL_CACTUS_RIDGE_4C,
-                              quirk_apple_wait_for_thunderbolt);
-DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_INTEL,
-                              PCI_DEVICE_ID_INTEL_FALCON_RIDGE_2C_BRIDGE,
-                              quirk_apple_wait_for_thunderbolt);
-DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_INTEL,
-                              PCI_DEVICE_ID_INTEL_FALCON_RIDGE_4C_BRIDGE,
-                              quirk_apple_wait_for_thunderbolt);
 #endif
 
 /*