summaryrefslogtreecommitdiffstats
path: root/kernel/power/main.c
diff options
context:
space:
mode:
authorNigel Cunningham <nigel@nigel.suspend2.net>2007-07-19 01:47:41 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-19 10:04:43 -0700
commit5a60d6235c8352ade8f2699e72fcdfe853730456 (patch)
treecafab638df562b912e9e2a653e5c7238816d9706 /kernel/power/main.c
parentbd804eba1c8597cbb7cd5a5f9fe886aae16a079a (diff)
downloadop-kernel-dev-5a60d6235c8352ade8f2699e72fcdfe853730456.zip
op-kernel-dev-5a60d6235c8352ade8f2699e72fcdfe853730456.tar.gz
PM: Optional beeping during resume from suspend to RAM
Add a feature allowing the user to make the system beep during a resume from suspend to RAM, on x86_64 and i386. This is useful for the users with broken resume from RAM, so that they can verify if the control reaches the kernel after a wake-up event. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/power/main.c')
-rw-r--r--kernel/power/main.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/kernel/power/main.c b/kernel/power/main.c
index 32147b5..c74a564 100644
--- a/kernel/power/main.c
+++ b/kernel/power/main.c
@@ -332,6 +332,27 @@ static ssize_t state_store(struct kset *kset, const char *buf, size_t n)
power_attr(state);
+unsigned long s2ram_beep = 0;
+
+static ssize_t s2ram_beep_show(struct kset *kset, char *buf)
+{
+ return sprintf(buf, "%d\n", s2ram_beep);
+}
+
+static ssize_t
+s2ram_beep_store(struct kset *kset, const char *buf, size_t n)
+{
+ int val;
+
+ if (sscanf(buf, "%d", &val) > 0) {
+ s2ram_beep = val;
+ return n;
+ }
+ return -EINVAL;
+}
+
+power_attr(s2ram_beep);
+
#ifdef CONFIG_PM_TRACE
int pm_trace_enabled;
@@ -357,11 +378,13 @@ power_attr(pm_trace);
static struct attribute * g[] = {
&state_attr.attr,
&pm_trace_attr.attr,
+ &s2ram_beep_attr.attr,
NULL,
};
#else
static struct attribute * g[] = {
&state_attr.attr,
+ &s2ram_beep_attr.attr,
NULL,
};
#endif /* CONFIG_PM_TRACE */
OpenPOWER on IntegriCloud