diff mbox

PM / PCI: Do not resume any devices in pci_pm_prepare()

Message ID 1877076.QiUpNxchJO@aspire.rjw.lan (mailing list archive)
State Mainlined
Delegated to: Rafael Wysocki
Headers show

Commit Message

Rafael J. Wysocki Sept. 24, 2017, 11:33 p.m. UTC
From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

It should not be necessary to resume devices with ignore_children set
in pci_pm_prepare(), because they should be resumed explcitly by
their children drivers during suspend if need be and they will be
resumed by pci_pm_suspend() after that anyway, so avoid doing that.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
 drivers/pci/pci-driver.c |    7 -------
 1 file changed, 7 deletions(-)

Comments

Bjorn Helgaas Sept. 26, 2017, 9:34 p.m. UTC | #1
On Mon, Sep 25, 2017 at 01:33:13AM +0200, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> 
> It should not be necessary to resume devices with ignore_children set
> in pci_pm_prepare(), because they should be resumed explcitly by

s/explcitly/explicitly/

> their children drivers during suspend if need be and they will be
> resumed by pci_pm_suspend() after that anyway, so avoid doing that.
> 
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Acked-by: Bjorn Helgaas <bhelgaas@google.com>

I think your previous patches to this file mostly used a "PCI / PM"
subject line prefix (as opposed to the "PM / PCI" here).  But maybe
the difference means something?

> ---
>  drivers/pci/pci-driver.c |    7 -------
>  1 file changed, 7 deletions(-)
> 
> Index: linux-pm/drivers/pci/pci-driver.c
> ===================================================================
> --- linux-pm.orig/drivers/pci/pci-driver.c
> +++ linux-pm/drivers/pci/pci-driver.c
> @@ -680,13 +680,6 @@ static int pci_pm_prepare(struct device
>  {
>  	struct device_driver *drv = dev->driver;
>  
> -	/*
> -	 * Devices having power.ignore_children set may still be necessary for
> -	 * suspending their children in the next phase of device suspend.
> -	 */
> -	if (dev->power.ignore_children)
> -		pm_runtime_resume(dev);
> -
>  	if (drv && drv->pm && drv->pm->prepare) {
>  		int error = drv->pm->prepare(dev);
>  		if (error)
>
Bjorn Helgaas Sept. 26, 2017, 9:35 p.m. UTC | #2
On Mon, Sep 25, 2017 at 01:33:13AM +0200, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> 
> It should not be necessary to resume devices with ignore_children set
> in pci_pm_prepare(), because they should be resumed explcitly by
> their children drivers during suspend if need be and they will be
> resumed by pci_pm_suspend() after that anyway, so avoid doing that.
> 
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

Oh, and I meant to also say that you've merged the PM-related things
here in the past, so I assume you'll take this one :)

> ---
>  drivers/pci/pci-driver.c |    7 -------
>  1 file changed, 7 deletions(-)
> 
> Index: linux-pm/drivers/pci/pci-driver.c
> ===================================================================
> --- linux-pm.orig/drivers/pci/pci-driver.c
> +++ linux-pm/drivers/pci/pci-driver.c
> @@ -680,13 +680,6 @@ static int pci_pm_prepare(struct device
>  {
>  	struct device_driver *drv = dev->driver;
>  
> -	/*
> -	 * Devices having power.ignore_children set may still be necessary for
> -	 * suspending their children in the next phase of device suspend.
> -	 */
> -	if (dev->power.ignore_children)
> -		pm_runtime_resume(dev);
> -
>  	if (drv && drv->pm && drv->pm->prepare) {
>  		int error = drv->pm->prepare(dev);
>  		if (error)
>
Rafael J. Wysocki Sept. 26, 2017, 9:39 p.m. UTC | #3
On Tue, Sep 26, 2017 at 11:34 PM, Bjorn Helgaas <helgaas@kernel.org> wrote:
> On Mon, Sep 25, 2017 at 01:33:13AM +0200, Rafael J. Wysocki wrote:
>> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>>
>> It should not be necessary to resume devices with ignore_children set
>> in pci_pm_prepare(), because they should be resumed explcitly by
>
> s/explcitly/explicitly/

Yup.

>> their children drivers during suspend if need be and they will be
>> resumed by pci_pm_suspend() after that anyway, so avoid doing that.
>>
>> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>
> Acked-by: Bjorn Helgaas <bhelgaas@google.com>
>
> I think your previous patches to this file mostly used a "PCI / PM"
> subject line prefix (as opposed to the "PM / PCI" here).  But maybe
> the difference means something?

No, it doesn't.  I'll change it to match the previous ones. :-)

Thanks,
Rafael
Rafael J. Wysocki Sept. 26, 2017, 9:39 p.m. UTC | #4
On Tue, Sep 26, 2017 at 11:35 PM, Bjorn Helgaas <helgaas@kernel.org> wrote:
> On Mon, Sep 25, 2017 at 01:33:13AM +0200, Rafael J. Wysocki wrote:
>> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>>
>> It should not be necessary to resume devices with ignore_children set
>> in pci_pm_prepare(), because they should be resumed explcitly by
>> their children drivers during suspend if need be and they will be
>> resumed by pci_pm_suspend() after that anyway, so avoid doing that.
>>
>> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>
> Oh, and I meant to also say that you've merged the PM-related things
> here in the past, so I assume you'll take this one :)

I will. :-)
diff mbox

Patch

Index: linux-pm/drivers/pci/pci-driver.c
===================================================================
--- linux-pm.orig/drivers/pci/pci-driver.c
+++ linux-pm/drivers/pci/pci-driver.c
@@ -680,13 +680,6 @@  static int pci_pm_prepare(struct device
 {
 	struct device_driver *drv = dev->driver;
 
-	/*
-	 * Devices having power.ignore_children set may still be necessary for
-	 * suspending their children in the next phase of device suspend.
-	 */
-	if (dev->power.ignore_children)
-		pm_runtime_resume(dev);
-
 	if (drv && drv->pm && drv->pm->prepare) {
 		int error = drv->pm->prepare(dev);
 		if (error)