From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: Lin Ming <ming.m.lin@intel.com>
Cc: Zhang Rui <rui.zhang@intel.com>, Jeff Garzik <jgarzik@pobox.com>,
Alan Stern <stern@rowland.harvard.edu>, Tejun Heo <tj@kernel.org>,
Len Brown <lenb@kernel.org>,
linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org,
linux-scsi@vger.kernel.org, linux-pm@vger.kernel.org,
ACPI Devel Mailing List <linux-acpi@vger.kernel.org>
Subject: Re: [RFC PATCH 1/6] ACPI: Introduce ACPI D3_COLD state support
Date: Mon, 13 Feb 2012 21:25:15 +0100 [thread overview]
Message-ID: <201202132125.15537.rjw@sisk.pl> (raw)
In-Reply-To: <1329124271-29464-2-git-send-email-ming.m.lin@intel.com>
On Monday, February 13, 2012, Lin Ming wrote:
> From: Zhang Rui <rui.zhang@intel.com>
>
> If a device has _PR3._ON, it means the device supports D3_HOT.
> If a device has _PR3._OFF, it means the device supports D3_COLD.
> Add the ability to validate and enter D3_COLD state in ACPI.
>
> Signed-off-by: Zhang Rui <rui.zhang@intel.com>
This is supposed to be ACPI 5.0 support, right?
So can anyone please tell me what part of the ACPI 5.0 spec is the
basis of this patch, because I can't see that immediately?
The only places where D3Cold is _mentioned_ are Section 7.2.12 (_PRE, which
appears to be new in 5.0), Section 7.2.20 (_S0W), Section 7.2.21 (_S1W),
Section 7.2.22 (_S2W), Section 7.2.23 (_S3W) and Section 7.2.24 (_S4W).
None of them mentions those _PR3._ON and _PR3._OFF things above.
Moreover, my understanding of the spec is that D3Cold means all of the
power resources returned by _PR3 are "off" (whereas some of them will be
"on" in D3hot).
> ---
> drivers/acpi/power.c | 4 ++--
> drivers/acpi/scan.c | 10 +++++++++-
> 2 files changed, 11 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/acpi/power.c b/drivers/acpi/power.c
> index 9ac2a9f..0d681fb 100644
> --- a/drivers/acpi/power.c
> +++ b/drivers/acpi/power.c
> @@ -500,14 +500,14 @@ int acpi_power_transition(struct acpi_device *device, int state)
> {
> int result;
>
> - if (!device || (state < ACPI_STATE_D0) || (state > ACPI_STATE_D3))
> + if (!device || (state < ACPI_STATE_D0) || (state > ACPI_STATE_D3_COLD))
> return -EINVAL;
>
> if (device->power.state == state)
> return 0;
>
> if ((device->power.state < ACPI_STATE_D0)
> - || (device->power.state > ACPI_STATE_D3))
> + || (device->power.state > ACPI_STATE_D3_COLD))
> return -ENODEV;
>
> /* TBD: Resources must be ordered. */
> diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
> index 8ab80ba..a9d4391 100644
> --- a/drivers/acpi/scan.c
> +++ b/drivers/acpi/scan.c
> @@ -881,8 +881,16 @@ static int acpi_bus_get_power_flags(struct acpi_device *device)
>
> device->power.flags.power_resources = 1;
> ps->flags.valid = 1;
> - for (j = 0; j < ps->resources.count; j++)
> + for (j = 0; j < ps->resources.count; j++) {
> acpi_bus_add_power_resource(ps->resources.handles[j]);
> + /* Check for D3_COLD support. _PR3._OFF equals D3_COLD ? */
> + if (i == ACPI_STATE_D3) {
> + if (j == 0)
> + device->power.states[ACPI_STATE_D3_COLD].flags.valid = 1;
> + status = acpi_get_handle(ps->resources.handles[j], "_OFF", &handle);
> + device->power.states[ACPI_STATE_D3_COLD].flags.valid &= ACPI_SUCCESS(status);
> + }
> + }
Sorry, but this doesn't make sense to me. Power resources always have
the _OFF method, right?
> }
>
> /* Evaluate "_PSx" to see if we can do explicit sets */
>
Rafael
next prev parent reply other threads:[~2012-02-13 20:21 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-13 9:11 [RFC] ACPI D3Cold state and SATA ZPODD support Lin Ming
2012-02-13 9:11 ` [RFC PATCH 1/6] ACPI: Introduce ACPI D3_COLD state support Lin Ming
2012-02-13 20:25 ` Rafael J. Wysocki [this message]
2012-02-14 7:07 ` Zhang Rui
2012-02-14 7:07 ` Zhang Rui
2012-02-14 22:29 ` Rafael J. Wysocki
2012-02-14 22:29 ` Rafael J. Wysocki
2012-02-16 7:08 ` Zhang Rui
2012-02-16 7:08 ` Zhang Rui
2012-02-17 22:23 ` Rafael J. Wysocki
2012-02-17 22:23 ` Rafael J. Wysocki
2012-02-20 5:39 ` Zhang Rui
2012-02-20 5:39 ` Zhang Rui
2012-02-13 9:11 ` [RFC PATCH 2/6] ACPI: Reference devices in ACPI Power Resource Lin Ming
2012-02-13 20:48 ` Rafael J. Wysocki
2012-02-14 7:59 ` Zhang Rui
2012-02-14 22:36 ` Rafael J. Wysocki
2012-02-16 7:18 ` Zhang Rui
2012-02-16 15:13 ` Alan Stern
2012-02-16 15:13 ` Alan Stern
2012-02-17 1:12 ` Lin Ming
2012-02-17 22:37 ` Rafael J. Wysocki
2012-02-17 7:05 ` Zhang, Rui
2012-02-17 15:07 ` Alan Stern
2012-02-21 14:07 ` Lin Ming
2012-02-21 16:06 ` Alan Stern
2012-02-23 13:41 ` Lin Ming
2012-02-23 13:41 ` Lin Ming
2012-02-23 18:10 ` Alan Stern
2012-02-17 22:34 ` Rafael J. Wysocki
2012-02-20 5:43 ` Zhang Rui
2012-02-13 9:11 ` [RFC PATCH 3/6] ACPI: Runtime resume all devices covered by a power resource Lin Ming
2012-02-13 9:11 ` [RFC PATCH 4/6] PM / Runtime: Introduce flag can_power_off Lin Ming
2012-02-13 15:01 ` Alan Stern
2012-02-13 15:01 ` Alan Stern
2012-02-13 19:38 ` Rafael J. Wysocki
2012-02-13 20:41 ` Alan Stern
2012-02-13 20:41 ` Alan Stern
2012-02-13 20:50 ` Rafael J. Wysocki
2012-02-14 7:11 ` Zhang Rui
2012-02-14 7:11 ` Zhang Rui
2012-02-14 22:38 ` Rafael J. Wysocki
2012-02-14 6:17 ` Zhang Rui
2012-02-14 22:39 ` Rafael J. Wysocki
2012-02-16 7:41 ` Zhang Rui
2012-02-17 23:54 ` Rafael J. Wysocki
2012-02-18 12:54 ` huang ying
2012-02-18 20:35 ` Rafael J. Wysocki
2012-02-20 3:23 ` Zhang Rui
2012-02-20 23:13 ` Rafael J. Wysocki
2012-02-21 1:13 ` Zhang Rui
2012-02-21 21:43 ` Rafael J. Wysocki
2012-02-22 0:57 ` Zhang Rui
2012-02-14 6:07 ` Zhang Rui
2012-02-14 6:07 ` Zhang Rui
2012-02-13 9:11 ` [RFC PATCH 5/6] PCI: Move acpi_dev_run_wake to acpi core Lin Ming
2012-02-13 20:49 ` Rafael J. Wysocki
2012-02-13 9:11 ` [RFC PATCH 6/6] libata: add ZPODD support Lin Ming
2012-02-15 6:06 ` Aaron Lu
2012-02-15 6:06 ` Aaron Lu
2012-02-15 6:46 ` Lin Ming
2012-02-15 7:18 ` Aaron Lu
2012-02-15 7:18 ` 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=201202132125.15537.rjw@sisk.pl \
--to=rjw@sisk.pl \
--cc=jgarzik@pobox.com \
--cc=lenb@kernel.org \
--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=linux-scsi@vger.kernel.org \
--cc=ming.m.lin@intel.com \
--cc=rui.zhang@intel.com \
--cc=stern@rowland.harvard.edu \
--cc=tj@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.