OSDN Git Service

PCI/PM: Fold __pci_start_power_transition() into its caller
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 5 Nov 2019 10:29:16 +0000 (11:29 +0100)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 20 Nov 2019 23:35:48 +0000 (17:35 -0600)
Because pci_power_up() has become the only caller of
__pci_start_power_transition(), there is no need for the latter to
be a separate function any more, so fold it into the former, drop a
redundant check and reduce the number of lines of code somewhat.

Code rearrangement, no intentional functional impact.

Link: https://lore.kernel.org/r/3458080.lsoDbfkST9@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

index 9f0977d..56bc79e 100644 (file)
@@ -1003,42 +1003,30 @@ void pci_wakeup_bus(struct pci_bus *bus)
 }
 
 /**
- * __pci_start_power_transition - Start power transition of a PCI device
- * @dev: PCI device to handle.
- * @state: State to put the device into.
+ * pci_power_up - Put the given device into D0
+ * @dev: PCI device to power up
  */
-static void __pci_start_power_transition(struct pci_dev *dev, pci_power_t state)
+int pci_power_up(struct pci_dev *dev)
 {
-       if (state == PCI_D0) {
-               pci_platform_power_transition(dev, PCI_D0);
+       pci_platform_power_transition(dev, PCI_D0);
+
+       /*
+        * Mandatory power management transition delays, see PCI Express Base
+        * Specification Revision 2.0 Section 6.6.1: Conventional Reset.  Do not
+        * delay for devices powered on/off by corresponding bridge, because
+        * have already delayed for the bridge.
+        */
+       if (dev->runtime_d3cold) {
+               if (dev->d3cold_delay && !dev->imm_ready)
+                       msleep(dev->d3cold_delay);
                /*
-                * Mandatory power management transition delays, see
-                * PCI Express Base Specification Revision 2.0 Section
-                * 6.6.1: Conventional Reset.  Do not delay for
-                * devices powered on/off by corresponding bridge,
-                * because have already delayed for the bridge.
+                * When powering on a bridge from D3cold, the whole hierarchy
+                * may be powered on into D0uninitialized state, resume them to
+                * give them a chance to suspend again
                 */
-               if (dev->runtime_d3cold) {
-                       if (dev->d3cold_delay && !dev->imm_ready)
-                               msleep(dev->d3cold_delay);
-                       /*
-                        * When powering on a bridge from D3cold, the
-                        * whole hierarchy may be powered on into
-                        * D0uninitialized state, resume them to give
-                        * them a chance to suspend again
-                        */
-                       pci_wakeup_bus(dev->subordinate);
-               }
+               pci_wakeup_bus(dev->subordinate);
        }
-}
 
-/**
- * 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);
 }