linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Lin Ming <ming.m.lin@intel.com>
To: Aaron Lu <aaron.lu@amd.com>
Cc: Zhang Rui <rui.zhang@intel.com>, Jeff Garzik <jgarzik@pobox.com>,
	Alan Stern <stern@rowland.harvard.edu>,
	"Rafael J. Wysocki" <rjw@sisk.pl>, Tejun Heo <tj@kernel.org>,
	linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org,
	linux-scsi@vger.kernel.org, linux-pm@vger.kernel.org,
	linux-acpi <linux-acpi@vger.kernel.org>
Subject: Re: [RFC PATCH v2 1/8] ACPI: Introduce ACPI D3_COLD state support
Date: Mon, 12 Mar 2012 10:43:43 +0800	[thread overview]
Message-ID: <1331520223.3436.8.camel@minggr> (raw)
In-Reply-To: <20120312020016.GB2820@ladygaga>

On Mon, 2012-03-12 at 10:00 +0800, Aaron Lu wrote:
> Hi,
> 
> On Thu, Mar 01, 2012 at 05:02:50PM +0800, Lin Ming wrote:
> > From: Zhang Rui <rui.zhang@intel.com>
> > 
> > If a device has _PR3, it means the device supports D3_COLD.
> 
> This confused me...So this means if a device is put to D3, instead of
> turning up the power resources referenced in _PR3, turning them all off
> will make the device in D3 cold. This is understandable, but what about
> _PR0? What power state this device is in when I turned off all the power
> resources referenced in _PR0? Undefined?

I understand your confusion...and even more confused because _PR0 and
_PR3 usually share the same power resource.

We are still contacting with the ACPI spec authors to get a clear
understanding of the D3/D3Hot/D3Cold definition.

> 
> I'm also confused with _PS3, what power state the device is in after its
> _PS3 is executed? The spec said it will be in D3 cold or D3 hot, so I
> guess there is no way to tell, right?

Yes,

The spec says,

"This control method is used to put the specific device into its D3hot
or D3 state"

I'm not sure what "D3 state" here means.
Probably not "D3 cold".

Lin Ming 

> 
> Thanks,
> Aaron
> 
> > Add the ability to validate and enter D3_COLD state in ACPI.
> > 
> > Signed-off-by: Zhang Rui <rui.zhang@intel.com>
> > Signed-off-by: Lin Ming <ming.m.lin@intel.com>
> > ---
> >  drivers/acpi/power.c |    4 ++--
> >  drivers/acpi/scan.c  |    7 +++++++
> >  2 files changed, 9 insertions(+), 2 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..571396c 100644
> > --- a/drivers/acpi/scan.c
> > +++ b/drivers/acpi/scan.c
> > @@ -885,6 +885,13 @@ static int acpi_bus_get_power_flags(struct acpi_device *device)
> >  				acpi_bus_add_power_resource(ps->resources.handles[j]);
> >  		}
> >  
> > +		/* The exist of _PR3 indicates D3Cold support */
> > +		if (i == ACPI_STATE_D3) {
> > +			status = acpi_get_handle(device->handle, object_name, &handle);
> > +			if (ACPI_SUCCESS(status))
> > +				device->power.states[ACPI_STATE_D3_COLD].flags.valid = 1;
> > +		}
> > +
> >  		/* Evaluate "_PSx" to see if we can do explicit sets */
> >  		object_name[2] = 'S';
> >  		status = acpi_get_handle(device->handle, object_name, &handle);
> > -- 
> > 1.7.2.5
> > 
> > 
> 



  reply	other threads:[~2012-03-12  2:43 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-01  9:02 [RFC PATCH v2 0/8] ACPI D3Cold state and SATA ZPODD support Lin Ming
2012-03-01  9:02 ` [RFC PATCH v2 1/8] ACPI: Introduce ACPI D3_COLD state support Lin Ming
2012-03-12  2:00   ` Aaron Lu
2012-03-12  2:43     ` Lin Ming [this message]
2012-03-01  9:02 ` [RFC PATCH v2 2/8] ACPI: Add interface to register/unregister device to/from power resources Lin Ming
2012-03-19  1:32   ` Lin Ming
2012-03-01  9:02 ` [RFC PATCH v2 3/8] PCI: Move acpi_dev_run_wake to acpi core Lin Ming
2012-03-01  9:02 ` [RFC PATCH v2 4/8] libata-acpi: set acpi state for SATA port Lin Ming
2012-03-12  2:02   ` Aaron Lu
2012-03-01  9:02 ` [RFC PATCH v2 5/8] libata-acpi: add ata port runtime D3Cold support Lin Ming
2012-03-19  3:36   ` Aaron Lu
2012-03-19  5:27     ` Lin Ming
2012-03-19  6:35       ` Aaron Lu
2012-03-19  7:03         ` Lin Ming
2012-03-21  4:48           ` Aaron Lu
2012-03-01  9:02 ` [RFC PATCH v2 6/8] libata-acpi: register/unregister device to/from power resource Lin Ming
2012-03-01  9:02 ` [RFC PATCH v2 7/8] PM / Runtime: Add can_power_off flag to subsys data Lin Ming
2012-03-19  1:34   ` Lin Ming
2012-03-01  9:02 ` [RFC PATCH v2 8/8] [SCSI] sr: check and enable Zero-power ODD support Lin Ming
2012-03-01 16:02   ` Alan Stern
2012-03-02  7:02     ` Lin Ming
2012-03-02 15:08       ` Aaron Lu
2012-03-03  3:05         ` Lin Ming
2012-03-12  2:49           ` Lin Ming
2012-03-12  4:53             ` 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=1331520223.3436.8.camel@minggr \
    --to=ming.m.lin@intel.com \
    --cc=aaron.lu@amd.com \
    --cc=jgarzik@pobox.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=linux-scsi@vger.kernel.org \
    --cc=rjw@sisk.pl \
    --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 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).