public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <greg@kroah.com>
To: linux-kernel@vger.kernel.org
Cc: David Brownell <david-b@pacbell.net>,
	David Brownell <dbrownell@users.sourceforge.net>,
	Greg Kroah-Hartman <gregkh@suse.de>
Subject: [PATCH 19/47] PM: update docs for writing .../power/state
Date: Mon, 25 Sep 2006 22:37:39 -0700	[thread overview]
Message-ID: <11592491451786-git-send-email-greg@kroah.com> (raw)
In-Reply-To: <1159249140339-git-send-email-greg@kroah.com>

From: David Brownell <david-b@pacbell.net>

Updates to match current code:

 - Make writes to the /sys/devices/.../power/state files fail cleanly
   if the device requires the irqs-off call variants.

 - Fix comments describing the /sys/devices/.../power/state file writes
   to match the code; the last several releases have invalidated the
   previous text.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
 drivers/base/power/sysfs.c |   29 +++++++++++++++++++----------
 1 files changed, 19 insertions(+), 10 deletions(-)

diff --git a/drivers/base/power/sysfs.c b/drivers/base/power/sysfs.c
index 40d7242..e55b3c2 100644
--- a/drivers/base/power/sysfs.c
+++ b/drivers/base/power/sysfs.c
@@ -11,18 +11,23 @@ #include "power.h"
  *	state - Control current power state of device
  *
  *	show() returns the current power state of the device. '0' indicates
- *	the device is on. Other values (1-3) indicate the device is in a low
+ *	the device is on. Other values (2) indicate the device is in some low
  *	power state.
  *
- *	store() sets the current power state, which is an integer value
- *	between 0-3. If the device is on ('0'), and the value written is
- *	greater than 0, then the device is placed directly into the low-power
- *	state (via its driver's ->suspend() method).
- *	If the device is currently in a low-power state, and the value is 0,
- *	the device is powered back on (via the ->resume() method).
- *	If the device is in a low-power state, and a different low-power state
- *	is requested, the device is first resumed, then suspended into the new
- *	low-power state.
+ *	store() sets the current power state, which is an integer valued
+ *	0, 2, or 3.  Devices with bus.suspend_late(), or bus.resume_early()
+ *	methods fail this operation; those methods couldn't be called.
+ *	Otherwise,
+ *
+ *	- If the recorded dev->power.power_state.event matches the
+ *	  target value, nothing is done.
+ *	- If the recorded event code is nonzero, the device is reactivated
+ *	  by calling bus.resume() and/or class.resume().
+ *	- If the target value is nonzero, the device is suspended by
+ *	  calling class.suspend() and/or bus.suspend() with event code
+ *	  PM_EVENT_SUSPEND.
+ *
+ *	This mechanism is DEPRECATED and should only be used for testing.
  */
 
 static ssize_t state_show(struct device * dev, struct device_attribute *attr, char * buf)
@@ -38,6 +43,10 @@ static ssize_t state_store(struct device
 	pm_message_t state;
 	int error = -EINVAL;
 
+	/* disallow incomplete suspend sequences */
+	if (dev->bus && (dev->bus->suspend_late || dev->bus->resume_early))
+		return error;
+
 	state.event = PM_EVENT_SUSPEND;
 	/* Older apps expected to write "3" here - confused with PCI D3 */
 	if ((n == 1) && !strcmp(buf, "3"))
-- 
1.4.2.1


  reply	other threads:[~2006-09-26  5:49 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-09-26  5:37 [GIT PATCH] Driver Core patches for 2.6.18 Greg KH
2006-09-26  5:37 ` [PATCH 1/47] Documentation/ABI: devfs is not obsolete, but removed! Greg KH
2006-09-26  5:37   ` [PATCH 2/47] deprecate PHYSDEV* keys Greg KH
2006-09-26  5:37     ` [PATCH 3/47] class_device_create(): make fmt argument 'const char *' Greg KH
2006-09-26  5:37       ` [PATCH 4/47] device_create(): " Greg KH
2006-09-26  5:37         ` [PATCH 5/47] Driver core: add const to class_create Greg KH
2006-09-26  5:37           ` [PATCH 6/47] sysfs: Make poll behaviour consistent Greg KH
2006-09-26  5:37             ` [PATCH 7/47] Debugfs: kernel-doc fixes for debugfs Greg KH
2006-09-26  5:37               ` [PATCH 8/47] SYSFS: allow sysfs_create_link to create symlinks in the root of sysfs Greg KH
2006-09-26  5:37                 ` [PATCH 9/47] Suspend infrastructure cleanup and extension Greg KH
2006-09-26  5:37                   ` [PATCH 10/47] Suspend changes for PCI core Greg KH
2006-09-26  5:37                     ` [PATCH 11/47] make suspend quieter Greg KH
2006-09-26  5:37                       ` [PATCH 12/47] fix broken/dubious driver suspend() methods Greg KH
2006-09-26  5:37                         ` [PATCH 13/47] PM: define PM_EVENT_PRETHAW Greg KH
2006-09-26  5:37                           ` [PATCH 14/47] PM: PCI and IDE handle PM_EVENT_PRETHAW Greg KH
2006-09-26  5:37                             ` [PATCH 15/47] PM: video drivers and PM_EVENT_PRETHAW Greg KH
2006-09-26  5:37                               ` [PATCH 16/47] PM: USB HCDs use PM_EVENT_PRETHAW Greg KH
2006-09-26  5:37                                 ` [PATCH 17/47] PM: issue PM_EVENT_PRETHAW Greg KH
2006-09-26  5:37                                   ` [PATCH 18/47] updated Documentation/power/devices.txt Greg KH
2006-09-26  5:37                                     ` Greg KH [this message]
2006-09-26  5:37                                       ` [PATCH 20/47] PM: add kconfig option for deprecated .../power/state files Greg KH
2006-09-26  5:37                                         ` [PATCH 21/47] PM: schedule /sys/devices/.../power/state for removal Greg KH
2006-09-26  5:37                                           ` [PATCH 22/47] PM: no suspend_prepare() phase Greg KH
2006-09-26  5:37                                             ` [PATCH 23/47] PM: add /sys/power documentation to Documentation/ABI Greg KH
2006-09-26  5:37                                               ` [PATCH 24/47] PM: device_suspend/resume may sleep Greg KH
2006-09-26  5:37                                                 ` [PATCH 25/47] PM: platform_bus and late_suspend/early_resume Greg KH
2006-09-26  5:37                                                   ` [PATCH 26/47] Driver core: add groups support to struct device Greg KH
2006-09-26  5:37                                                     ` [PATCH 27/47] Driver core: allow devices in classes to have no parent Greg KH
2006-09-26  5:37                                                       ` [PATCH 28/47] Driver core: add ability for classes to handle devices properly Greg KH
2006-09-26  5:37                                                         ` [PATCH 29/47] Driver core: add device_rename function Greg KH
2006-09-26  5:37                                                           ` [PATCH 30/47] Driver core: create devices/virtual/ tree Greg KH
2006-09-26  5:37                                                             ` [PATCH 31/47] Class: add support for class interfaces for devices Greg KH
2006-09-26  5:37                                                               ` [PATCH 32/47] Driver core: add ability for devices to create and remove bin files Greg KH
2006-09-26  5:37                                                                 ` [PATCH 33/47] kobject: must_check fixes Greg KH
2006-09-26  5:37                                                                   ` [PATCH 34/47] sysfs_remove_bin_file: no return value, dump_stack on error Greg KH
2006-09-26  5:37                                                                     ` [PATCH 35/47] Driver core: fix comments in drivers/base/power/resume.c Greg KH
2006-09-26  5:37                                                                       ` [PATCH 36/47] Driver core: fixed add_bind_files() definition Greg KH
2006-09-26  5:37                                                                         ` [PATCH 37/47] add __must_check to device management code Greg KH
2006-09-26  5:37                                                                           ` [PATCH 38/47] add CONFIG_ENABLE_MUST_CHECK Greg KH
2006-09-26  5:37                                                                             ` [PATCH 39/47] v4l-dev2: handle __must_check Greg KH
2006-09-26  5:38                                                                               ` [PATCH 40/47] drivers/base: Platform notify needs to occur before drivers attach to the device Greg KH
2006-09-26  5:38                                                                                 ` [PATCH 41/47] drivers/base: check errors Greg KH
2006-09-26  5:38                                                                                   ` [PATCH 42/47] sysfs: add proper sysfs_init() prototype Greg KH
2006-09-26  5:38                                                                                     ` [PATCH 43/47] Driver Core: add ability for drivers to do a threaded probe Greg KH
2006-09-26  5:38                                                                                       ` [PATCH 44/47] PCI: enable driver multi-threaded probe Greg KH
2006-09-26  5:38                                                                                         ` [PATCH 45/47] Driver core: Fix potential deadlock in driver core Greg KH
2006-09-26  5:38                                                                                           ` [PATCH 46/47] Driver core: Remove unneeded routines from " Greg KH
2006-09-26  5:38                                                                                             ` [PATCH 47/47] Driver core: Don't call put methods while holding a spinlock Greg KH
2006-09-27 18:51                                                                                         ` [PATCH 44/47] PCI: enable driver multi-threaded probe Olaf Hering
2006-09-29 23:32                                                                                           ` Greg KH
2006-09-30  6:07                                                                                             ` Olaf Hering
2006-09-26 17:23                                                                                   ` [PATCH 41/47] drivers/base: check errors Dmitry Torokhov
2006-09-27  4:33                                                                                     ` Greg KH
2006-09-26 13:24                                                             ` [PATCH 30/47] Driver core: create devices/virtual/ tree Dmitry Torokhov
2006-09-26 13:41                                                               ` Greg KH
2006-09-26 13:51                                                                 ` Dmitry Torokhov
2006-09-26 14:26                                                                   ` Greg KH
2006-09-26 17:15                                                                     ` Dmitry Torokhov
2006-09-26 13:20                                                     ` [PATCH 26/47] Driver core: add groups support to struct device Dmitry Torokhov
2006-09-26 13:46                                                       ` Greg KH
2006-09-26 14:01                                                         ` Dmitry Torokhov
2006-09-26 14:23                                                           ` Greg KH
2006-09-26 17:10                                                             ` Dmitry Torokhov
2006-09-27 14:40                                                             ` Pavel Machek
2006-09-26 15:18                                                         ` Marcel Holtmann
2006-09-26 12:34 ` [GIT PATCH] Driver Core patches for 2.6.18 Mike Galbraith
2006-09-26 20:39   ` Greg KH
2006-09-27  8:47     ` Mike Galbraith
2006-09-27  6:58       ` Rafael J. Wysocki
2006-09-27 10:48         ` Mike Galbraith
2006-09-27 13:03           ` Mike Galbraith
2006-09-27 11:42             ` 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=11592491451786-git-send-email-greg@kroah.com \
    --to=greg@kroah.com \
    --cc=david-b@pacbell.net \
    --cc=dbrownell@users.sourceforge.net \
    --cc=gregkh@suse.de \
    --cc=linux-kernel@vger.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