Patchwork [RFC,2/3] PCI/PM: Make PCI devices notified when its power resource turned on

login
register
mail settings
Submitter Huang Ying
Date Sept. 17, 2012, 8:54 a.m.
Message ID <1347872076-5260-3-git-send-email-ying.huang@intel.com>
Download mbox | patch
Permalink /patch/184323/
State Not Applicable
Headers show

Comments

Huang Ying - Sept. 17, 2012, 8:54 a.m.
A set of power resources may be shared by multiple devices.  When all
devices share one set of power resources is put into D3_COLD state,
the power resources will be turned off.  When one of the device is
waked, the power resource will be turned on and all devices share it
will be powered on to D0uninitialized state.  These devices should be
resumed, so that they can get opportunity to go to low power state
later.

Signed-off-by: Huang Ying <ying.huang@intel.com>
---
 drivers/acpi/pci_bind.c |    2 ++
 1 file changed, 2 insertions(+)

--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rafael J. Wysocki - Sept. 20, 2012, 7:33 p.m.
On Monday, September 17, 2012, Huang Ying wrote:
> A set of power resources may be shared by multiple devices.  When all
> devices share one set of power resources is put into D3_COLD state,
> the power resources will be turned off.  When one of the device is
> waked, the power resource will be turned on and all devices share it
> will be powered on to D0uninitialized state.  These devices should be
> resumed, so that they can get opportunity to go to low power state
> later.
> 
> Signed-off-by: Huang Ying <ying.huang@intel.com>

Makes sense.

Acked-by: Rafael J. Wysocki <rjw@sisk.pl>

> ---
>  drivers/acpi/pci_bind.c |    2 ++
>  1 file changed, 2 insertions(+)
> 
> --- a/drivers/acpi/pci_bind.c
> +++ b/drivers/acpi/pci_bind.c
> @@ -45,6 +45,7 @@ static int acpi_pci_unbind(struct acpi_d
>  
>  	device_set_run_wake(&dev->dev, false);
>  	pci_acpi_remove_pm_notifier(device);
> +	acpi_power_resource_unregister_device(dev, device->handle);
>  
>  	if (!dev->subordinate)
>  		goto out;
> @@ -71,6 +72,7 @@ static int acpi_pci_bind(struct acpi_dev
>  		return 0;
>  
>  	pci_acpi_add_pm_notifier(device, dev);
> +	acpi_power_resource_register_device(dev, device->handle);
>  	if (device->wakeup.flags.run_wake)
>  		device_set_run_wake(&dev->dev, true);
>  
> 
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

--- a/drivers/acpi/pci_bind.c
+++ b/drivers/acpi/pci_bind.c
@@ -45,6 +45,7 @@  static int acpi_pci_unbind(struct acpi_d
 
 	device_set_run_wake(&dev->dev, false);
 	pci_acpi_remove_pm_notifier(device);
+	acpi_power_resource_unregister_device(dev, device->handle);
 
 	if (!dev->subordinate)
 		goto out;
@@ -71,6 +72,7 @@  static int acpi_pci_bind(struct acpi_dev
 		return 0;
 
 	pci_acpi_add_pm_notifier(device, dev);
+	acpi_power_resource_register_device(dev, device->handle);
 	if (device->wakeup.flags.run_wake)
 		device_set_run_wake(&dev->dev, true);