diff options
Diffstat (limited to 'drivers/acpi/pci_root.c')
| -rw-r--r-- | drivers/acpi/pci_root.c | 9 | 
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c index 64f55b6db73c..d724736d56c8 100644 --- a/drivers/acpi/pci_root.c +++ b/drivers/acpi/pci_root.c @@ -30,6 +30,7 @@  #include <linux/proc_fs.h>  #include <linux/spinlock.h>  #include <linux/pm.h> +#include <linux/pm_runtime.h>  #include <linux/pci.h>  #include <linux/pci-acpi.h>  #include <linux/acpi.h> @@ -528,6 +529,10 @@ static int __devinit acpi_pci_root_add(struct acpi_device *device)  	if (flags != base_flags)  		acpi_pci_osc_support(root, flags); +	pci_acpi_add_bus_pm_notifier(device, root->bus); +	if (device->wakeup.flags.run_wake) +		device_set_run_wake(root->bus->bridge, true); +  	return 0;  end: @@ -549,6 +554,9 @@ static int acpi_pci_root_remove(struct acpi_device *device, int type)  {  	struct acpi_pci_root *root = acpi_driver_data(device); +	device_set_run_wake(root->bus->bridge, false); +	pci_acpi_remove_bus_pm_notifier(device); +  	kfree(root);  	return 0;  } @@ -558,6 +566,7 @@ static int __init acpi_pci_root_init(void)  	if (acpi_pci_disabled)  		return 0; +	pci_acpi_crs_quirks();  	if (acpi_bus_register_driver(&acpi_pci_root_driver) < 0)  		return -ENODEV;  |