From: "Rafael J. Wysocki" <rjw@sisk.pl>
To: David Brownell <david-b@pacbell.net>
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>,
Andrew Victor <andrew@sanpeople.com>
Subject: Re: [RFC/RFT][PATCH -mm 1/8][bugfix] PM: Introduce set_target method in pm_ops
Date: Wed, 27 Jun 2007 22:55:55 +0200 [thread overview]
Message-ID: <200706272255.57243.rjw@sisk.pl> (raw)
In-Reply-To: <200706271341.53599.david-b@pacbell.net>
On Wednesday, 27 June 2007 22:41, David Brownell wrote:
> On Monday 25 June 2007, Rafael J. Wysocki wrote:
> > From: Rafael J. Wysocki <rjw@sisk.pl>
> >
> > The at91 platform code incorrectly assumes that pm_ops->prepare() will be called
>
> Make that "code assumes that ... but that requirement was broken
> by a patch merged in RC5 to make ACPI behave better." That is,
> the problem is not that the AT91 code was doing anything wrong,
> it's that the API definition changed (incompatibly!) in RC5.
>
> > before devices are suspended and uses it to make the PM core set the target
> > system sleep state used by the platform when suspending devices. Thus, at91
> > needs a new member function in 'struct pm_ops' that will be used by the PM core
> > to convey the target system sleep state to the platform code before devices are
> > suspended.
> >
> > Moreover, in the future 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. 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, so we need an additional means to
> > convey the target system sleep state to the ACPI core. The new member function
> > in 'struct pm_ops', set_target(), can be used for this purpose.
>
> That's all extremely verbose: (a) prepare() used to be called
> early, so a platform knew the target state while devices were
> being suspended; (b) that changed in RC5; (c) we still need a
> call delivering the original semantics, since (c1) AT91 depends
> on it now and (c2) ACPI should be depending on it, and this change
> broke a patch fixing that; ... so (d) here's a patch adding a new
> function that can do what prepare() used to do.
OK, I'll modify the changelog.
> >
> > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
>
> Acked-by: David Brownell <dbrownell@users.sourceforge.net>
Thanks,
Rafael
--
"Premature optimization is the root of all evil." - Donald Knuth
next prev parent reply other threads:[~2007-06-27 20:48 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-24 20:40 ` Rafael J. Wysocki
2007-06-25 2:11 ` David Brownell
2007-06-25 2:11 ` David Brownell
2007-06-25 22:06 ` Rafael J. Wysocki
2007-06-25 22:06 ` Rafael J. Wysocki
2007-06-25 21:28 ` Johannes Berg
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-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-24 20:42 ` 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:44 ` [RFC/RFT][PATCH -mm 4/4] PM: Rework struct platform_suspend_operations Rafael J. Wysocki
2007-06-24 20:44 ` Rafael J. Wysocki
2007-06-25 21:30 ` Johannes Berg
2007-06-25 21:30 ` Johannes Berg
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 [this message]
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-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:45 ` [RFC/RFT][PATCH -mm 3/8] ACPI: Add acpi_pm_device_sleep_state helper routine 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-25 22:52 ` 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: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=200706272255.57243.rjw@sisk.pl \
--to=rjw@sisk.pl \
--cc=andrew@sanpeople.com \
--cc=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=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.