From: Huang Ying <ying.huang@intel.com>
To: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: huang ying <huang.ying.caritas@gmail.com>,
Zhang Rui <rui.zhang@intel.com>, Lin Ming <ming.m.lin@intel.com>,
Aaron Lu <aaron.lu@amd.com>, Len Brown <lenb@kernel.org>,
linux-acpi@vger.kernel.org, linux-pm@vger.kernel.org,
linux-kernel@vger.kernel.org, Andiry Xu <andiry.xu@amd.com>,
Alex He <alex.he@amd.com>, Yan Zheng <zheng.z.yan@intel.com>
Subject: Re: [PATCH] ACPI: evaluate _PS3 when entering D3 Cold
Date: Mon, 09 Apr 2012 10:24:45 +0800 [thread overview]
Message-ID: <1333938285.26747.8.camel@yhuang-dev> (raw)
In-Reply-To: <201204090141.36766.rjw@sisk.pl>
On Mon, 2012-04-09 at 01:41 +0200, Rafael J. Wysocki wrote:
> > >
> > > If _PS3 is present, then _PR3 may or may not be present. In the latter case
> > > we can only execute _PS3 in the hope it does the right thing, but as long
> > > as we restore the device's configuration registers while resuming it (which is
> > > done by all of our PCI device resume callback routines as far as I can say),
> > > the only possible difference is the resume latency (which may be greater if
> > > power is removed from the device entirely).
> >
> > Another difference between D3Hot and D3Cold for PCI devices is config
> > space availability. That is, in D3Hot, you can access D3Hot, while in
> > D3Cold you can not do that. For example, PME poll logic need to be
> > disabled if we put device into D3Cold.
>
> We're not talking about PCI here. PCI D3hot/D3cold is actually well defined,
> while the ACPI "couterparts" aren't. And BTW I know the properties of the PCI
> power management states. :-)
I see.
> > > However, in that case we shouldn't
> > > turn off the device's power resources after _PS3 has been executed (if we
> > > turned them off, power would be removed from the device, which wouldn't be
> > > what PCI wanted). So, to handle this particular case we need to pass
> > > ACPI_STATE_D3_HOT to acpi_bus_set_power(), meaning "avoid going into D3_cold,
> > > if possible".
> > >
> > > In both _PS3 and _PR3 are present, we should evaluate _PS3 and then turn off
> > > the power resources listed as "off" by _PR3 (and turn on the power resoruces
> > > listed by it as "on"), but we need to restore the configuration registers of
> > > the device while resuming it. I think this is handled correctly without
> > > modifications.
> > >
> > > If neither _PS3 nor _PR3 is present, we shouldn't turn off the device's
> > > power resources, because PCI doesn't want power to be removed from the device.
> >
> > For PCI device plugged into system via slot (not integrated into PCH
> > or motherboard), there is no ACPI handle associate with it, so that
> > there are neither _PS3 nor _PR3 presented. But it is still possible
> > to turn off the device power via the associated PCIe port, which has
> > _PS3 and/or _PR3 presented. I think that situation is reasonable too.
>
> Again, this hasn't anything to do with ACPI.
>
> We're discussing standard interfaces exposed by ACPI. That is, if I say
> "to turn of the device's power resources" I mean to call _OFF for all of the
> power resources listed by _PR0 for that device. Nothing more or less than
> that.
>
> > > In summary, if PCI wants the device to be put into PCI_D3hot and _PS3 is
> > > present, we should evaluate _PS3. However, we shouldn't turn the device's
> > > power resources off unless _PR3 is present, in which case we can turn off
> > > the power resources listed by it as "off".
> >
> > How to turn the device's power resources off without _PR3? It may be
> > possible via PCIe port as I said above. Do you mean that? Or
> > something else?
>
> If _PR0 is present, it returns the list of power resources needed by the
> device. If you turn them all off, the assumption is that power has been
> removed from the device, so it is in D3(cold).
So. If PCI wants the device to be put into PCI_D3hot and _PS3 is
present. We should evaluate _PS3 AND set the pci_dev->current_state to
PCI_D3cold?
Best Regards,
Huang Ying
next prev parent reply other threads:[~2012-04-09 2:24 UTC|newest]
Thread overview: 61+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-31 18:18 [PATCH] ACPI: evaluate _PS3 when entering D3 Cold Aaron Lu
2012-03-31 18:18 ` Aaron Lu
2012-04-01 5:27 ` Lin Ming
2012-04-01 5:56 ` Aaron Lu
2012-04-01 5:56 ` Aaron Lu
2012-04-01 6:28 ` Lin Ming
2012-04-01 6:28 ` Lin Ming
2012-04-01 7:23 ` Rafael J. Wysocki
2012-04-01 7:23 ` Rafael J. Wysocki
2012-04-01 7:45 ` Zhang Rui
2012-04-01 7:45 ` Zhang Rui
2012-04-01 8:49 ` Rafael J. Wysocki
2012-04-01 8:49 ` Rafael J. Wysocki
2012-04-05 3:20 ` huang ying
2012-04-05 3:20 ` huang ying
2012-04-08 23:41 ` Rafael J. Wysocki
2012-04-08 23:41 ` Rafael J. Wysocki
2012-04-09 2:24 ` Huang Ying [this message]
2012-04-09 21:24 ` Rafael J. Wysocki
2012-04-05 2:31 ` Lin Ming
2012-04-05 2:31 ` Lin Ming
2012-04-05 2:56 ` Aaron Lu
2012-04-05 2:56 ` Aaron Lu
2012-04-05 3:01 ` Lin Ming
2012-04-08 23:54 ` Rafael J. Wysocki
2012-04-09 1:38 ` Lin Ming
2012-04-09 21:25 ` Rafael J. Wysocki
2012-04-08 23:53 ` Rafael J. Wysocki
2012-04-08 23:47 ` Rafael J. Wysocki
2012-04-08 23:47 ` Rafael J. Wysocki
2012-04-05 2:38 ` Lin Ming
2012-04-05 2:38 ` Lin Ming
2012-04-09 0:02 ` Rafael J. Wysocki
2012-04-09 0:02 ` Rafael J. Wysocki
2012-04-01 14:41 ` Aaron Lu
2012-04-01 14:41 ` Aaron Lu
2012-04-01 7:03 ` Zhang Rui
2012-04-01 7:03 ` Zhang Rui
2012-04-01 7:29 ` Rafael J. Wysocki
2012-04-01 15:34 ` Aaron Lu
2012-04-01 15:34 ` Aaron Lu
2012-04-01 7:47 ` Rafael J. Wysocki
2012-04-01 7:47 ` Rafael J. Wysocki
2012-04-01 8:01 ` Zhang Rui
2012-04-01 8:55 ` Rafael J. Wysocki
2012-04-01 8:55 ` Rafael J. Wysocki
2012-04-23 1:09 ` Aaron Lu
2012-04-23 1:09 ` Aaron Lu
2012-04-23 11:43 ` Rafael J. Wysocki
2012-04-23 15:13 ` Aaron Lu
2012-04-23 19:50 ` Rafael J. Wysocki
2012-04-24 2:07 ` Aaron Lu
2012-04-24 2:07 ` Aaron Lu
2012-04-24 2:29 ` Lin Ming
2012-04-24 3:10 ` Aaron Lu
2012-04-24 3:10 ` Aaron Lu
2012-04-24 13:15 ` Lin Ming
2012-04-24 14:24 ` Aaron Lu
2012-04-24 21:15 ` Rafael J. Wysocki
2012-04-26 8:55 ` huang ying
2012-04-26 20:04 ` Rafael J. Wysocki
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=1333938285.26747.8.camel@yhuang-dev \
--to=ying.huang@intel.com \
--cc=aaron.lu@amd.com \
--cc=alex.he@amd.com \
--cc=andiry.xu@amd.com \
--cc=huang.ying.caritas@gmail.com \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=ming.m.lin@intel.com \
--cc=rjw@sisk.pl \
--cc=rui.zhang@intel.com \
--cc=zheng.z.yan@intel.com \
/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.