From: David Brownell <david-b@pacbell.net>
To: "Rafael J. Wysocki" <rjw@sisk.pl>
Cc: pm list <linux-pm@lists.linux-foundation.org>,
Alan Stern <stern@rowland.harvard.edu>,
Pavel Machek <pavel@ucw.cz>,
linux acpi <linux-acpi@vger.kernel.org>,
Len Brown <len.brown@intel.com>,
Shaohua Li <shaohua.li@intel.com>,
Johannes Berg <johannes@sipsolutions.net>,
Igor Stoppa <igor.stoppa@nokia.com>
Subject: Re: [RFC/RFT][PATCH -mm 1/4] PM: Introduce set_target method in pm_ops
Date: Sun, 24 Jun 2007 19:11:16 -0700 [thread overview]
Message-ID: <200706241911.18201.david-b@pacbell.net> (raw)
In-Reply-To: <200706242240.40476.rjw@sisk.pl>
On Sunday 24 June 2007, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rjw@sisk.pl>
>
> Some drivers may need to use ACPI to determine the low power states in which
> to place their devices, but to provide the drivers with this information the
> ACPI core needs to know what sleep state the system is going to enter.
It also needs to export that to things like the ACPI-to-PCI glue
code. So it would be good if you defined the missing routine now,
saving the effort of patching it in later:
int acpi_get_target_sleep_state(void);
It doesn't need EXPORT_SYMBOL().
> Namely, the device's state should not be too high power for given system sleep
> state and, if the device is supposed to be able to wake up the system, its state
> should not be too low power for the wake up to be possible). However,
> pm_ops->prepare() is only called after the drivers' .suspend() callbacks have
> been executed,
That's a critical point that should show up in your doc updates.
> so we need an additional means to pass the information of the
> target system sleep state to the ACPI core. For this purpose, we can introduce
> an additional member function in 'struct pm_ops'.
>
> Additionally, the at91 platform code incorrectly assumes that pm_ops->prepare()
> will be called before devices are suspended and uses it for setting the target
> system sleep state, so pm_ops->prepare() should to be replaced with the new
> operation, pm_ops->set_target(), for this architecture.
That was originally correct ... but as you pointed out, the
semantics there changed in RC5.
Which means this patch is a *BUGFIX*, preventing what would
otherwise be a regression in 2.6.22 ... and so it should
be merged for RC6 or so.
Another way to describe the changes is that set_target() now
does what prepare() used to do, while prepare() serves a
new role. A role which still needs to be well-described in
the documentation you provided, by the way... it seems to
do whatever needs to be done after devices suspend but
before nonboot CPUs are disabled.
- Dave
next prev parent reply other threads:[~2007-06-25 2:11 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-24 20:39 [RFC/RFT][PATCH -mm 0/4] PM: Rework struct pm_ops and related things Rafael J. Wysocki
2007-06-24 20:40 ` [RFC/RFT][PATCH -mm 1/4] PM: Introduce set_target method in pm_ops Rafael J. Wysocki
2007-06-25 2:11 ` David Brownell [this message]
2007-06-25 22:06 ` Rafael J. Wysocki
2007-06-25 22:06 ` Rafael J. Wysocki
2007-06-25 2:11 ` David Brownell
2007-06-25 21:28 ` Johannes Berg
2007-06-26 8:55 ` Pavel Machek
2007-06-26 9:41 ` Rafael J. Wysocki
2007-06-26 17:19 ` David Brownell
2007-06-26 20:14 ` Rafael J. Wysocki
2007-06-26 20:14 ` Rafael J. Wysocki
2007-06-26 17:19 ` David Brownell
2007-06-26 9:41 ` Rafael J. Wysocki
2007-06-25 21:28 ` Johannes Berg
2007-06-24 20:40 ` Rafael J. Wysocki
2007-06-24 20:41 ` [RFC/RFT][PATCH -mm 2/4] PM: Move definition of struct pm_ops to suspend.h Rafael J. Wysocki
2007-06-25 19:33 ` Pavel Machek
2007-06-25 19:33 ` Pavel Machek
2007-06-24 20:41 ` Rafael J. Wysocki
2007-06-24 20:42 ` [RFC/RFT][PATCH -mm 3/4] PM: Rename struct pm_ops and related things Rafael J. Wysocki
2007-06-25 4:12 ` David Brownell
2007-06-25 4:12 ` David Brownell
2007-06-25 19:34 ` Pavel Machek
2007-06-25 19:34 ` Pavel Machek
2007-06-24 20:42 ` Rafael J. Wysocki
2007-06-24 20:44 ` [RFC/RFT][PATCH -mm 4/4] PM: Rework struct platform_suspend_operations Rafael J. Wysocki
2007-06-25 21:30 ` Johannes Berg
2007-06-25 21:30 ` Johannes Berg
2007-06-24 20:44 ` Rafael J. Wysocki
2007-06-25 22:39 ` [RFC/RFT][PATCH -mm 0/8] PM: Rework struct pm_ops and related things (take 2) Rafael J. Wysocki
2007-06-25 22:41 ` [RFC/RFT][PATCH -mm 1/8][bugfix] PM: Introduce set_target method in pm_ops Rafael J. Wysocki
2007-06-25 22:41 ` Rafael J. Wysocki
2007-06-27 20:27 ` Rafael J. Wysocki
2007-06-27 20:27 ` Rafael J. Wysocki
2007-06-27 20:41 ` David Brownell
2007-06-27 20:55 ` Rafael J. Wysocki
2007-06-27 20:55 ` Rafael J. Wysocki
2007-06-27 20:41 ` David Brownell
2007-06-25 22:43 ` [RFC/RFT][PATCH -mm 2/8] ACPI: Implement the set_target() callback from pm_ops Rafael J. Wysocki
2007-06-25 22:43 ` Rafael J. Wysocki
2007-06-25 22:45 ` [RFC/RFT][PATCH -mm 3/8] ACPI: Add acpi_pm_device_sleep_state helper routine Rafael J. Wysocki
2007-06-25 22:45 ` Rafael J. Wysocki
2007-06-26 10:00 ` [RFC/RFT][PATCH -mm 3/8] ACPI: Add acpi_pm_device_sleep_state helper routine (updated) Rafael J. Wysocki
2007-06-26 10:00 ` Rafael J. Wysocki
2007-06-26 10:34 ` [RFC/RFT][PATCH -mm 3/8] ACPI: Add acpi_pm_device_sleep_state helper routine (updated 2x) Rafael J. Wysocki
2007-06-26 10:34 ` Rafael J. Wysocki
2007-06-25 22:47 ` [RFC/RFT][PATCH -mm 4/8] PM: Move definition of struct pm_ops to suspend.h Rafael J. Wysocki
2007-06-25 22:47 ` Rafael J. Wysocki
2007-06-25 22:48 ` [RFC/RFT][PATCH -mm 5/8] PM: Rename struct pm_ops and related things Rafael J. Wysocki
2007-06-25 22:48 ` Rafael J. Wysocki
2007-06-25 22:49 ` [RFC/RFT][PATCH -mm 6/8] PM: Rework struct platform_suspend_operations Rafael J. Wysocki
2007-06-25 22:49 ` Rafael J. Wysocki
2007-06-26 8:52 ` Pavel Machek
2007-06-26 8:52 ` Pavel Machek
2007-06-25 22:51 ` [RFC/RFT][PATCH -mm 7/8] PM: Rework struct hibernation_ops Rafael J. Wysocki
2007-06-25 22:51 ` Rafael J. Wysocki
2007-06-25 22:52 ` [RFC/RFT][PATCH -mm 8/8] PM: Rename hibernation_ops to platform_hibernation_operations Rafael J. Wysocki
2007-06-26 8:54 ` Pavel Machek
2007-06-27 15:19 ` Rafael J. Wysocki
2007-06-27 15:19 ` Rafael J. Wysocki
2007-06-25 22:52 ` Rafael J. Wysocki
2007-06-25 22:39 ` [RFC/RFT][PATCH -mm 0/8] PM: Rework struct pm_ops and related things (take 2) 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=200706241911.18201.david-b@pacbell.net \
--to=david-b@pacbell.net \
--cc=igor.stoppa@nokia.com \
--cc=johannes@sipsolutions.net \
--cc=len.brown@intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-pm@lists.linux-foundation.org \
--cc=pavel@ucw.cz \
--cc=rjw@sisk.pl \
--cc=shaohua.li@intel.com \
--cc=stern@rowland.harvard.edu \
/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.