PCI/PM: Use pci_power_up() in pci_set_power_state()
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 5 Nov 2019 10:27:49 +0000 (11:27 +0100)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 20 Nov 2019 23:35:41 +0000 (17:35 -0600)
Make it explicitly clear that the code to put devices into D0 in
pci_set_power_state() and in pci_pm_default_resume_early() is the
same by making the latter use pci_power_up() for transitions into D0.

Code rearrangement, no intentional functional impact.

Link: https://lore.kernel.org/r/2520019.OZ1nXS5aSj@kreacher
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
drivers/pci/pci.c
drivers/pci/pci.h

index 11b4d9274d96c76d0fec02ec775a8dec3cccfaa5..9f0977d0ac5ac5accb1711da09a344c48ac8ffdf 100644 (file)
@@ -1032,6 +1032,16 @@ static void __pci_start_power_transition(struct pci_dev *dev, pci_power_t state)
        }
 }
 
+/**
+ * pci_power_up - Put the given device into D0
+ * @dev: PCI device to power up
+ */
+int pci_power_up(struct pci_dev *dev)
+{
+       __pci_start_power_transition(dev, PCI_D0);
+       return pci_raw_set_power_state(dev, PCI_D0);
+}
+
 /**
  * __pci_dev_set_current_state - Set current state of a PCI device
  * @dev: Device to handle
@@ -1117,6 +1127,9 @@ int pci_set_power_state(struct pci_dev *dev, pci_power_t state)
        if (dev->current_state == state)
                return 0;
 
+       if (state == PCI_D0)
+               return pci_power_up(dev);
+
        /*
         * This device is quirked not to be put into D3, so don't put it in
         * D3
@@ -1124,8 +1137,6 @@ int pci_set_power_state(struct pci_dev *dev, pci_power_t state)
        if (state >= PCI_D3hot && (dev->dev_flags & PCI_DEV_FLAGS_NO_D3))
                return 0;
 
-       __pci_start_power_transition(dev, state);
-
        /*
         * To put device in D3cold, we put device into D3hot in native
         * way, then put device into D3cold with platform ops
@@ -1140,16 +1151,6 @@ int pci_set_power_state(struct pci_dev *dev, pci_power_t state)
 }
 EXPORT_SYMBOL(pci_set_power_state);
 
-/**
- * pci_power_up - Put the given device into D0 forcibly
- * @dev: PCI device to power up
- */
-void pci_power_up(struct pci_dev *dev)
-{
-       __pci_start_power_transition(dev, PCI_D0);
-       pci_raw_set_power_state(dev, PCI_D0);
-}
-
 /**
  * pci_choose_state - Choose the power state of a PCI device
  * @dev: PCI device to be suspended
index 3f6947ee3324a9854ff275501732441d045ab581..7c68312c72f4aa2c05187613cae12466510f8a07 100644 (file)
@@ -85,7 +85,7 @@ struct pci_platform_pm_ops {
 int pci_set_platform_pm(const struct pci_platform_pm_ops *ops);
 void pci_update_current_state(struct pci_dev *dev, pci_power_t state);
 void pci_refresh_power_state(struct pci_dev *dev);
-void pci_power_up(struct pci_dev *dev);
+int pci_power_up(struct pci_dev *dev);
 void pci_disable_enabled_device(struct pci_dev *dev);
 int pci_finish_runtime_suspend(struct pci_dev *dev);
 void pcie_clear_root_pme_status(struct pci_dev *dev);