aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/pm-trace.h
diff options
context:
space:
mode:
authorZhonghui Fu <zhonghui.fu@linux.intel.com>2015-03-18 10:54:27 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2015-03-18 10:54:27 -0400
commit431d452af13720463dda498999b2e9a08729c03a (patch)
tree581e00b8b20d6fbc60df1d0d0c4390141abe1f4f /include/linux/pm-trace.h
parent1d4a9c17d4d204a159139361e8d4db7f9f267879 (diff)
PM / sleep: add pm-trace support for suspending phase
Occasionally, the system can't come back up after suspend/resume due to problems of device suspending phase. This patch make PM_TRACE infrastructure cover device suspending phase of suspend/resume process, and the information in RTC can tell developers which device suspending function make system hang. Signed-off-by: Zhonghui Fu <zhonghui.fu@linux.intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'include/linux/pm-trace.h')
-rw-r--r--include/linux/pm-trace.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/include/linux/pm-trace.h b/include/linux/pm-trace.h
new file mode 100644
index 000000000000..ecbde7a5548e
--- /dev/null
+++ b/include/linux/pm-trace.h
@@ -0,0 +1,35 @@
1#ifndef PM_TRACE_H
2#define PM_TRACE_H
3
4#ifdef CONFIG_PM_TRACE
5#include <asm/pm-trace.h>
6#include <linux/types.h>
7
8extern int pm_trace_enabled;
9
10static inline int pm_trace_is_enabled(void)
11{
12 return pm_trace_enabled;
13}
14
15struct device;
16extern void set_trace_device(struct device *);
17extern void generate_pm_trace(const void *tracedata, unsigned int user);
18extern int show_trace_dev_match(char *buf, size_t size);
19
20#define TRACE_DEVICE(dev) do { \
21 if (pm_trace_enabled) \
22 set_trace_device(dev); \
23 } while(0)
24
25#else
26
27static inline int pm_trace_is_enabled(void) { return 0; }
28
29#define TRACE_DEVICE(dev) do { } while (0)
30#define TRACE_RESUME(dev) do { } while (0)
31#define TRACE_SUSPEND(dev) do { } while (0)
32
33#endif
34
35#endif