diff options
Diffstat (limited to 'kernel/power/main.c')
-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 4d403323a7bb..873228c71dab 100644 --- a/kernel/power/main.c +++ b/kernel/power/main.c | |||
@@ -17,6 +17,7 @@ | |||
17 | #include <linux/pm.h> | 17 | #include <linux/pm.h> |
18 | #include <linux/console.h> | 18 | #include <linux/console.h> |
19 | #include <linux/cpu.h> | 19 | #include <linux/cpu.h> |
20 | #include <linux/resume-trace.h> | ||
20 | 21 | ||
21 | #include "power.h" | 22 | #include "power.h" |
22 | 23 | ||
@@ -281,10 +282,39 @@ static ssize_t state_store(struct subsystem * subsys, const char * buf, size_t n | |||
281 | 282 | ||
282 | power_attr(state); | 283 | power_attr(state); |
283 | 284 | ||
285 | #ifdef CONFIG_PM_TRACE | ||
286 | int pm_trace_enabled; | ||
287 | |||
288 | static ssize_t pm_trace_show(struct subsystem * subsys, char * buf) | ||
289 | { | ||
290 | return sprintf(buf, "%d\n", pm_trace_enabled); | ||
291 | } | ||
292 | |||
293 | static ssize_t | ||
294 | pm_trace_store(struct subsystem * subsys, const char * buf, size_t n) | ||
295 | { | ||
296 | int val; | ||
297 | |||
298 | if (sscanf(buf, "%d", &val) == 1) { | ||
299 | pm_trace_enabled = !!val; | ||
300 | return n; | ||
301 | } | ||
302 | return -EINVAL; | ||
303 | } | ||
304 | |||
305 | power_attr(pm_trace); | ||
306 | |||
307 | static struct attribute * g[] = { | ||
308 | &state_attr.attr, | ||
309 | &pm_trace_attr.attr, | ||
310 | NULL, | ||
311 | }; | ||
312 | #else | ||
284 | static struct attribute * g[] = { | 313 | static struct attribute * g[] = { |
285 | &state_attr.attr, | 314 | &state_attr.attr, |
286 | NULL, | 315 | NULL, |
287 | }; | 316 | }; |
317 | #endif /* CONFIG_PM_TRACE */ | ||
288 | 318 | ||
289 | static struct attribute_group attr_group = { | 319 | static struct attribute_group attr_group = { |
290 | .attrs = g, | 320 | .attrs = g, |