From: David Brownell <david-b@pacbell.net>
To: Zhang Rui <rui.zhang@intel.com>
Cc: linux-pm@lists.linux-foundation.org,
"linux-acpi@vger" <linux-acpi@vger.kernel.org>
Subject: Re: [patch 2.6.21-rc5-git 0/3] x86_pc and ACPI support /sys/devices/.../wakeup
Date: Wed, 18 Apr 2007 09:33:07 -0700 [thread overview]
Message-ID: <200704180933.07601.david-b@pacbell.net> (raw)
In-Reply-To: <1176889866.5376.34.camel@localhost.localdomain>
On Wednesday 18 April 2007 2:51 am, Zhang Rui wrote:
> Hi, David,
>
> On Thu, 2007-04-05 at 12:48 -0700, David Brownell wrote:
> > Following are three patches for basic driver model wakeup flag support on
> > PCs. I think the first two are nearly mergable. The third previously broke
> > powerpc, so it's likely not yet mergeable ... the issue was arch-specific
> > differences in PCI initialization, someone else will need to solve them.
> >
> > The patches are:
> >
> > - Define a platform_enable_wakeup() PM hook and use it with PCI. (This
> > might help OLPC with its non-RTC events...)
> >
> > - Make ACPI init and use driver model wakeup flags for the (motherboard)
> > devices in its table ... and implement that new platform hook. Now
> > /proc/acpi/wakeup is almost purely informative.
>
> Yes.
> But /proc/acpi/wakeup is exporting the wrong information then.
I'd say it's always exported the wrong information ... and
since those /proc files are going away, this there's no
strong need to continue following that path.
The literal meaning hasn't changed: it still reflects the
value of the acpi_device.wakeup.state.enabled flag. This
version of the patch avoided changing that meaning, to make
the compatibility story simpler.
But managing that ACPI flag through that procfs file has never
related well to what has been needed, or how non-ACPI systems
(e.g. without GPEs) behave.
> I.e. when a physical device is set to may_wakeup, the corresponding
> GPE will be enabled before entering a system sleep state.
The GPE is not always enabled when device_may_wakeup(dev)
returns true. When drivers aren't set up to handle wakeups,
they won't make requests that boil down to enabling GPEs.
What /proc/acpi/wakeup shows in those cases is the state
of what I called "manual overrides". Drivers that aren't
wakeup-aware will use those settings ... same as always.
(Unless userspace disables wakeup for that device through
the driver model.)
Wakeup-aware drivers will manage their GPEs directly, by
calling pci_enable_wake() -- or whatever -- according to
what device_may_wakeup(dev) tells them to do.
It's always been strange that /proc/acpi/wakeup flags just
ignored pci_enable_wake() directions from drivers. From the
driver perspective, those flags have been sadly divorced from
what they needed to do ... I count that as a bug, so that
these two patches are a bugfix for pci_enable_wake() in the
context of ACPI.
> But we always get status of the ACPI device is disabled
> via /proc/acpi/wakeup, even if they could be enabled in
> acpi_platform_enable_wakeup when suspending.
If a driver enables wakeup earlier, then it would be
displayed earlier. But of course, pci_enable_wake()
and similar wakeup control logic mostly triggers when
a system leaves (or reenters) the S0 state(*).
You're overlooking the flip side. Previously, that
flag would be shown as "enabled" even when drivers
requested that their device NOT be a wakeup source.
Surely that has been equally wrong...
- Dave
(*) The separate issue of wanting devices enter e.g. a
D3hot state to save power when the system is in S0,
and then rely on wake events, still remains.
next prev parent reply other threads:[~2007-04-18 16:37 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-05 19:48 [patch 2.6.21-rc5-git 0/3] x86_pc and ACPI support /sys/devices/.../wakeup David Brownell
2007-04-05 23:20 ` David Brownell
2007-04-05 23:30 ` Matthew Garrett
2007-04-05 23:48 ` David Brownell
2007-04-05 23:54 ` Matthew Garrett
2007-04-06 0:05 ` Rafael J. Wysocki
2007-04-08 16:56 ` Jordan Crouse
2007-04-17 20:15 ` [patch 2.6.21-rc5-git 0/3] " David Brownell
2007-04-18 9:51 ` Zhang Rui
2007-04-18 16:33 ` David Brownell [this message]
2007-04-19 9:48 ` Zhang Rui
2007-04-19 19:24 ` David Brownell
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=200704180933.07601.david-b@pacbell.net \
--to=david-b@pacbell.net \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=rui.zhang@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox