public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
From: Johannes Berg <johannes@sipsolutions.net>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-pm <linux-pm@lists.linux-foundation.org>
Subject: [PATCH] power management: change /sys/power/disk display
Date: Thu, 12 Apr 2007 02:37:04 +0200	[thread overview]
Message-ID: <1176338224.3579.2.camel@johannes.berg> (raw)

This patch changes /sys/power/disk to display all valid modes
as well as the currently selected one in a fashion known from
the LED subsystem.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>

---
This changes userspace API, but it is apparently not used much (we asked
some userspace developers)

 Documentation/power/interface.txt |    8 ++++++--
 kernel/power/disk.c               |   34 +++++++++++++++++++++++++++++++---
 2 files changed, 37 insertions(+), 5 deletions(-)

--- wireless-dev.orig/kernel/power/disk.c	2007-04-11 18:01:08.389481358 +0200
+++ wireless-dev/kernel/power/disk.c	2007-04-11 18:01:10.109481358 +0200
@@ -322,7 +322,34 @@ static const char * const pm_disk_modes[
 
 static ssize_t disk_show(struct subsystem * subsys, char * buf)
 {
-	return sprintf(buf, "%s\n", pm_disk_modes[pm_disk_mode]);
+	int i;
+	char *start = buf;
+
+	for (i = PM_DISK_PLATFORM; i < PM_DISK_MAX; i++) {
+		if (!pm_disk_modes[i])
+			continue;
+		switch (i) {
+		case PM_DISK_SHUTDOWN:
+		case PM_DISK_REBOOT:
+		case PM_DISK_TEST:
+		case PM_DISK_TESTPROC:
+			break;
+		default:
+			if (pm_ops && pm_ops->enter &&
+			    (i == pm_ops->pm_disk_mode))
+				break;
+			/* not a valid mode, continue with loop */
+			continue;
+		}
+		if (i == pm_disk_mode)
+			buf += sprintf(buf, "[%s]", pm_disk_modes[i]);
+		else
+			buf += sprintf(buf, "%s", pm_disk_modes[i]);
+		if (i+1 != PM_DISK_MAX)
+			buf += sprintf(buf, " ");
+	}
+	buf += sprintf(buf, "\n");
+	return buf-start;
 }
 
 
@@ -363,8 +390,9 @@ static ssize_t disk_store(struct subsyst
 		error = -EINVAL;
 	}
 
-	pr_debug("PM: suspend-to-disk mode set to '%s'\n",
-		 pm_disk_modes[mode]);
+	if (!error)
+		pr_debug("PM: suspend-to-disk mode set to '%s'\n",
+			 pm_disk_modes[mode]);
 	mutex_unlock(&pm_mutex);
 	return error ? error : n;
 }
--- wireless-dev.orig/Documentation/power/interface.txt	2007-04-11 18:01:08.389481358 +0200
+++ wireless-dev/Documentation/power/interface.txt	2007-04-11 18:01:10.109481358 +0200
@@ -34,8 +34,12 @@ for 5 seconds, resume devices, unfreeze 
 we are able to look in the log messages and work out, for example, which code
 is being slow and which device drivers are misbehaving.
 
-Reading from this file will display what the mode is currently set
-to. Writing to this file will accept one of
+Reading from this file will display all supported modes and the currently
+selected one in brackets, for example
+
+	[shutdown] reboot test testproc
+
+Writing to this file will accept one of
 
        'platform' (only if the platform supports it)
        'shutdown'

             reply	other threads:[~2007-04-12  0:37 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-12  0:37 Johannes Berg [this message]
2007-04-12 10:41 ` [PATCH] power management: change /sys/power/disk display Rafael J. Wysocki
2007-04-12 10:43   ` Johannes Berg
2007-04-12 10:49 ` [PATCH v2] " Johannes Berg
2007-04-12 14:56   ` Rafael J. Wysocki
2007-04-12 20:05     ` Pavel Machek
  -- strict thread matches above, loose matches on Subject: below --
2007-03-21  9:23 [PATCH] introduce /sys/power/disk_powerdown_mode Johannes Berg
2007-03-21 12:29 ` Pavel Machek
2007-03-21 12:32   ` Johannes Berg
2007-03-21 13:11     ` Pavel Machek
2007-03-21 13:12       ` Johannes Berg
2007-03-22 14:34         ` [PATCH] power management: change /sys/power/disk display Johannes Berg
2007-03-22 21:45           ` Rafael J. Wysocki
2007-03-23  0:05           ` Pavel Machek
2007-03-23 13:48             ` Johannes Berg
2007-03-23 23:46               ` Pavel Machek
2007-03-23 23:53                 ` Johannes Berg
2007-03-24  0:14                   ` Pavel Machek
2007-03-24  0:16                     ` Johannes Berg

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=1176338224.3579.2.camel@johannes.berg \
    --to=johannes@sipsolutions.net \
    --cc=akpm@linux-foundation.org \
    --cc=linux-pm@lists.linux-foundation.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