diff options
author | Rafael J. Wysocki <rjw@sisk.pl> | 2006-09-25 23:32:58 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-26 08:49:04 -0700 |
commit | c5c6ba4e08ab9c9e390a0f3a7d9a5c332f5cc6ef (patch) | |
tree | 4e13a9eebd8f3901dcc187c585369ef843d1e1a7 /kernel/power | |
parent | 7d145aa3abf4d96c91f37c012facd5cfbb9010d1 (diff) | |
download | op-kernel-dev-c5c6ba4e08ab9c9e390a0f3a7d9a5c332f5cc6ef.zip op-kernel-dev-c5c6ba4e08ab9c9e390a0f3a7d9a5c332f5cc6ef.tar.gz |
[PATCH] PM: Add pm_trace switch
Add the pm_trace attribute in /sys/power which has to be explicitly set to
one to really enable the "PM tracing" code compiled in when CONFIG_PM_TRACE
is set (which modifies the machine's CMOS clock in unpredictable ways).
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel/power')
-rw-r--r-- | kernel/power/main.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/kernel/power/main.c b/kernel/power/main.c index 4d40332..873228c 100644 --- a/kernel/power/main.c +++ b/kernel/power/main.c @@ -17,6 +17,7 @@ #include <linux/pm.h> #include <linux/console.h> #include <linux/cpu.h> +#include <linux/resume-trace.h> #include "power.h" @@ -281,10 +282,39 @@ static ssize_t state_store(struct subsystem * subsys, const char * buf, size_t n power_attr(state); +#ifdef CONFIG_PM_TRACE +int pm_trace_enabled; + +static ssize_t pm_trace_show(struct subsystem * subsys, char * buf) +{ + return sprintf(buf, "%d\n", pm_trace_enabled); +} + +static ssize_t +pm_trace_store(struct subsystem * subsys, const char * buf, size_t n) +{ + int val; + + if (sscanf(buf, "%d", &val) == 1) { + pm_trace_enabled = !!val; + return n; + } + return -EINVAL; +} + +power_attr(pm_trace); + +static struct attribute * g[] = { + &state_attr.attr, + &pm_trace_attr.attr, + NULL, +}; +#else static struct attribute * g[] = { &state_attr.attr, NULL, }; +#endif /* CONFIG_PM_TRACE */ static struct attribute_group attr_group = { .attrs = g, |