OSDN Git Service

PCI: Shuffle pci-acpi.c functions to group them logically
authorBjorn Helgaas <bhelgaas@google.com>
Fri, 12 Sep 2014 21:36:29 +0000 (15:36 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Sat, 13 Sep 2014 02:01:38 +0000 (20:01 -0600)
Move code around to put all the ACPI power management stuff together and
all the pieces related to ACPI methods (_CBA, _HPP, _HPX) together.

No functional change.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
drivers/pci/pci-acpi.c

index e514d50..6ebf8ed 100644 (file)
 #include <linux/pm_qos.h>
 #include "pci.h"
 
-/**
- * pci_acpi_wake_bus - Root bus wakeup notification fork function.
- * @work: Work item to handle.
- */
-static void pci_acpi_wake_bus(struct work_struct *work)
-{
-       struct acpi_device *adev;
-       struct acpi_pci_root *root;
-
-       adev = container_of(work, struct acpi_device, wakeup.context.work);
-       root = acpi_driver_data(adev);
-       pci_pme_wakeup_bus(root->bus);
-}
-
-/**
- * pci_acpi_wake_dev - PCI device wakeup notification work function.
- * @handle: ACPI handle of a device the notification is for.
- * @work: Work item to handle.
- */
-static void pci_acpi_wake_dev(struct work_struct *work)
-{
-       struct acpi_device_wakeup_context *context;
-       struct pci_dev *pci_dev;
-
-       context = container_of(work, struct acpi_device_wakeup_context, work);
-       pci_dev = to_pci_dev(context->dev);
-
-       if (pci_dev->pme_poll)
-               pci_dev->pme_poll = false;
-
-       if (pci_dev->current_state == PCI_D3cold) {
-               pci_wakeup_event(pci_dev);
-               pm_runtime_resume(&pci_dev->dev);
-               return;
-       }
-
-       /* Clear PME Status if set. */
-       if (pci_dev->pme_support)
-               pci_check_pme_status(pci_dev);
-
-       pci_wakeup_event(pci_dev);
-       pm_runtime_resume(&pci_dev->dev);
-
-       if (pci_dev->subordinate)
-               pci_pme_wakeup_bus(pci_dev->subordinate);
-}
-
-/**
- * pci_acpi_add_bus_pm_notifier - Register PM notifier for root PCI bus.
- * @dev: PCI root bridge ACPI device.
- */
-acpi_status pci_acpi_add_bus_pm_notifier(struct acpi_device *dev)
-{
-       return acpi_add_pm_notifier(dev, NULL, pci_acpi_wake_bus);
-}
-
-/**
- * pci_acpi_add_pm_notifier - Register PM notifier for given PCI device.
- * @dev: ACPI device to add the notifier for.
- * @pci_dev: PCI device to check for the PME status if an event is signaled.
- */
-acpi_status pci_acpi_add_pm_notifier(struct acpi_device *dev,
-                                    struct pci_dev *pci_dev)
-{
-       return acpi_add_pm_notifier(dev, &pci_dev->dev, pci_acpi_wake_dev);
-}
-
 phys_addr_t acpi_pci_root_get_mcfg_addr(acpi_handle handle)
 {
        acpi_status status = AE_NOT_EXIST;
@@ -346,6 +279,73 @@ int pci_get_hp_params(struct pci_dev *dev, struct hotplug_params *hpp)
 }
 EXPORT_SYMBOL_GPL(pci_get_hp_params);
 
+/**
+ * pci_acpi_wake_bus - Root bus wakeup notification fork function.
+ * @work: Work item to handle.
+ */
+static void pci_acpi_wake_bus(struct work_struct *work)
+{
+       struct acpi_device *adev;
+       struct acpi_pci_root *root;
+
+       adev = container_of(work, struct acpi_device, wakeup.context.work);
+       root = acpi_driver_data(adev);
+       pci_pme_wakeup_bus(root->bus);
+}
+
+/**
+ * pci_acpi_wake_dev - PCI device wakeup notification work function.
+ * @handle: ACPI handle of a device the notification is for.
+ * @work: Work item to handle.
+ */
+static void pci_acpi_wake_dev(struct work_struct *work)
+{
+       struct acpi_device_wakeup_context *context;
+       struct pci_dev *pci_dev;
+
+       context = container_of(work, struct acpi_device_wakeup_context, work);
+       pci_dev = to_pci_dev(context->dev);
+
+       if (pci_dev->pme_poll)
+               pci_dev->pme_poll = false;
+
+       if (pci_dev->current_state == PCI_D3cold) {
+               pci_wakeup_event(pci_dev);
+               pm_runtime_resume(&pci_dev->dev);
+               return;
+       }
+
+       /* Clear PME Status if set. */
+       if (pci_dev->pme_support)
+               pci_check_pme_status(pci_dev);
+
+       pci_wakeup_event(pci_dev);
+       pm_runtime_resume(&pci_dev->dev);
+
+       if (pci_dev->subordinate)
+               pci_pme_wakeup_bus(pci_dev->subordinate);
+}
+
+/**
+ * pci_acpi_add_bus_pm_notifier - Register PM notifier for root PCI bus.
+ * @dev: PCI root bridge ACPI device.
+ */
+acpi_status pci_acpi_add_bus_pm_notifier(struct acpi_device *dev)
+{
+       return acpi_add_pm_notifier(dev, NULL, pci_acpi_wake_bus);
+}
+
+/**
+ * pci_acpi_add_pm_notifier - Register PM notifier for given PCI device.
+ * @dev: ACPI device to add the notifier for.
+ * @pci_dev: PCI device to check for the PME status if an event is signaled.
+ */
+acpi_status pci_acpi_add_pm_notifier(struct acpi_device *dev,
+                                    struct pci_dev *pci_dev)
+{
+       return acpi_add_pm_notifier(dev, &pci_dev->dev, pci_acpi_wake_dev);
+}
+
 /*
  * _SxD returns the D-state with the highest power
  * (lowest D-state number) supported in the S-state "x".