linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Aaron Lu <aaron.lu@intel.com>
To: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: ACPI Devel Maling List <linux-acpi@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Linux PM list <linux-pm@vger.kernel.org>,
	Yinghai Lu <yinghai@kernel.org>,
	Bjorn Helgaas <bhelgaas@google.com>, Tejun Heo <tj@kernel.org>,
	linux-ide@vger.kernel.org
Subject: Re: [PATCH 1/3] ACPI / PM: Only set power states of devices that are power manageable
Date: Mon, 29 Jul 2013 22:09:53 +0800	[thread overview]
Message-ID: <51F677B1.9090502@intel.com> (raw)
In-Reply-To: <1657971.1utElu0Hzo@vostro.rjw.lan>

On 07/27/2013 09:10 PM, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> 
> Make acpi_device_set_power() check if the given device is power
> manageable before checking if the given power state is valid for that
> device.  Otherwise it will print that "Device does not support" that
> power state into the kernel log, which may not make sense for some
> power states (D0 and D3cold are supported by all devices by
> definition).

It will not print "Device does not support" that power state if that
power state is D0 or D3cold since we have unconditionally set those two
power state's valid flag.

OTOH, what value should we return for a device node that is not power
manageable in acpi_device_set_power when the target state is D0 or D3
cold? The old behavior is to return 0, meanning success without taking
any actual action.

In acpi_bus_set_power, if the device is not power manageable, we will
return -ENODEV; in acpi_dev_pm_full/low_power, we will return 0 as in
the original acpi_device_set_power. So return -EINVAL here is correct?

-Aaron

> 
> Tested-by: Yinghai Lu <yinghai@kernel.org>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> ---
>  drivers/acpi/device_pm.c |    3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> Index: linux-pm/drivers/acpi/device_pm.c
> ===================================================================
> --- linux-pm.orig/drivers/acpi/device_pm.c
> +++ linux-pm/drivers/acpi/device_pm.c
> @@ -159,7 +159,8 @@ int acpi_device_set_power(struct acpi_de
>  	int result = 0;
>  	bool cut_power = false;
>  
> -	if (!device || (state < ACPI_STATE_D0) || (state > ACPI_STATE_D3_COLD))
> +	if (!device || !device->flags.power_manageable
> +	    || (state < ACPI_STATE_D0) || (state > ACPI_STATE_D3_COLD))
>  		return -EINVAL;
>  
>  	/* Make sure this is a valid target state */
> 


  reply	other threads:[~2013-07-29 14:09 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-27 13:09 [PATCH 0/3] ACPI / PM: Device PM cleanups Rafael J. Wysocki
2013-07-27 13:10 ` [PATCH 1/3] ACPI / PM: Only set power states of devices that are power manageable Rafael J. Wysocki
2013-07-29 14:09   ` Aaron Lu [this message]
2013-07-29 22:21     ` Rafael J. Wysocki
2013-07-29 23:43       ` Aaron Lu
2013-07-30 14:04         ` Rafael J. Wysocki
2013-07-31  6:48           ` Aaron Lu
2013-07-31 10:29             ` Rafael J. Wysocki
2013-07-27 13:11 ` [PATCH 2/3] ACPI / PM: Make messages in acpi_device_set_power() print device names Rafael J. Wysocki
2013-07-29  2:29   ` Aaron Lu
2013-07-29 12:20     ` Rafael J. Wysocki
2013-07-31  6:52       ` Aaron Lu
2013-07-31 10:27         ` Rafael J. Wysocki
2013-08-01  0:49           ` [PATCH updated] ACPI / PM: Add state information in error message for acpi_device_set_power Aaron Lu
2013-07-29  3:06   ` [PATCH 2/3] ACPI / PM: Make messages in acpi_device_set_power() print device names Lan Tianyu
2013-07-29  3:11     ` Joe Perches
2013-07-29 12:17       ` Rafael J. Wysocki
2013-07-29 12:16         ` Sergei Shtylyov
2013-07-29 13:36           ` Rafael J. Wysocki
2013-07-29 14:15             ` Aaron Lu
2013-07-29 12:11     ` Rafael J. Wysocki
2013-07-27 13:14 ` [PATCH 3/3] ACPI / PM: Use ACPI_STATE_D3_COLD instead of ACPI_STATE_D3 everywhere Rafael J. Wysocki
2013-07-29 14:28   ` Aaron Lu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51F677B1.9090502@intel.com \
    --to=aaron.lu@intel.com \
    --cc=bhelgaas@google.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=rjw@sisk.pl \
    --cc=tj@kernel.org \
    --cc=yinghai@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).