init/bootconfig: Reorder init parameter from bootconfig and cmdline
[linux-2.6-microblaze.git] / drivers / pci / quirks.c
index 22b2bb1..6d74386 100644 (file)
@@ -27,6 +27,7 @@
 #include <linux/nvme.h>
 #include <linux/platform_data/x86/apple.h>
 #include <linux/pm_runtime.h>
+#include <linux/suspend.h>
 #include <linux/switchtec.h>
 #include <asm/dma.h>   /* isa_dma_bridge_buggy */
 #include "pci.h"
@@ -3656,6 +3657,16 @@ static void quirk_apple_poweroff_thunderbolt(struct pci_dev *dev)
                return;
        if (pci_pcie_type(dev) != PCI_EXP_TYPE_UPSTREAM)
                return;
+
+       /*
+        * SXIO/SXFP/SXLF turns off power to the Thunderbolt controller.
+        * We don't know how to turn it back on again, but firmware does,
+        * so we can only use SXIO/SXFP/SXLF if we're suspending via
+        * firmware.
+        */
+       if (!pm_suspend_via_firmware())
+               return;
+
        bridge = ACPI_HANDLE(&dev->dev);
        if (!bridge)
                return;