Commit a00e771c authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Merge back ACPI power management material for 6.20

parents 7edf6f7e 057edc58
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -586,8 +586,7 @@ acpi_status acpi_add_pm_notifier(struct acpi_device *adev, struct device *dev,
		goto out;

	mutex_lock(&acpi_pm_notifier_lock);
	adev->wakeup.ws = wakeup_source_register(&adev->dev,
						 dev_name(&adev->dev));
	adev->wakeup.ws = wakeup_source_register(dev, dev_name(&adev->dev));
	adev->wakeup.context.dev = dev;
	adev->wakeup.context.func = func;
	adev->wakeup.flags.notifier_present = true;
+1 −1
Original line number Diff line number Diff line
@@ -738,7 +738,7 @@ static int acpi_pci_root_add(struct acpi_device *device,
	if (no_aspm)
		pcie_no_aspm();

	pci_acpi_add_bus_pm_notifier(device);
	pci_acpi_add_root_pm_notifier(device, root);
	device_set_wakeup_capable(root->bus->bridge, device->wakeup.flags.valid);

	if (hotadd) {
+6 −9
Original line number Diff line number Diff line
@@ -847,12 +847,7 @@ bool shpchp_is_native(struct pci_dev *bridge)
 */
static void pci_acpi_wake_bus(struct acpi_device_wakeup_context *context)
{
	struct acpi_device *adev;
	struct acpi_pci_root *root;

	adev = container_of(context, struct acpi_device, wakeup.context);
	root = acpi_driver_data(adev);
	pci_pme_wakeup_bus(root->bus);
	pci_pme_wakeup_bus(to_pci_host_bridge(context->dev)->bus);
}

/**
@@ -885,12 +880,14 @@ static void pci_acpi_wake_dev(struct acpi_device_wakeup_context *context)
}

/**
 * pci_acpi_add_bus_pm_notifier - Register PM notifier for root PCI bus.
 * pci_acpi_add_root_pm_notifier - Register PM notifier for root PCI bus.
 * @dev: PCI root bridge ACPI device.
 * @root: PCI root corresponding to @dev.
 */
acpi_status pci_acpi_add_bus_pm_notifier(struct acpi_device *dev)
acpi_status pci_acpi_add_root_pm_notifier(struct acpi_device *dev,
					  struct acpi_pci_root *root)
{
	return acpi_add_pm_notifier(dev, NULL, pci_acpi_wake_bus);
	return acpi_add_pm_notifier(dev, root->bus->bridge, pci_acpi_wake_bus);
}

/**
+2 −1
Original line number Diff line number Diff line
@@ -12,7 +12,8 @@
#include <linux/acpi.h>

#ifdef CONFIG_ACPI
extern acpi_status pci_acpi_add_bus_pm_notifier(struct acpi_device *dev);
extern acpi_status pci_acpi_add_root_pm_notifier(struct acpi_device *dev,
						 struct acpi_pci_root *pci_root);
static inline acpi_status pci_acpi_remove_bus_pm_notifier(struct acpi_device *dev)
{
	return acpi_remove_pm_notifier(dev);