diff options
author | Zhonghui Fu <zhonghui.fu@linux.intel.com> | 2015-03-18 15:54:27 +0100 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-03-18 15:54:27 +0100 |
commit | 431d452af13720463dda498999b2e9a08729c03a (patch) | |
tree | 581e00b8b20d6fbc60df1d0d0c4390141abe1f4f /include/linux/pm-trace.h | |
parent | 1d4a9c17d4d204a159139361e8d4db7f9f267879 (diff) | |
download | linux-stable-431d452af13720463dda498999b2e9a08729c03a.tar.gz linux-stable-431d452af13720463dda498999b2e9a08729c03a.tar.bz2 linux-stable-431d452af13720463dda498999b2e9a08729c03a.zip |
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.h | 35 |
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 @@ +#ifndef PM_TRACE_H +#define PM_TRACE_H + +#ifdef CONFIG_PM_TRACE +#include <asm/pm-trace.h> +#include <linux/types.h> + +extern int pm_trace_enabled; + +static inline int pm_trace_is_enabled(void) +{ + return pm_trace_enabled; +} + +struct device; +extern void set_trace_device(struct device *); +extern void generate_pm_trace(const void *tracedata, unsigned int user); +extern int show_trace_dev_match(char *buf, size_t size); + +#define TRACE_DEVICE(dev) do { \ + if (pm_trace_enabled) \ + set_trace_device(dev); \ + } while(0) + +#else + +static inline int pm_trace_is_enabled(void) { return 0; } + +#define TRACE_DEVICE(dev) do { } while (0) +#define TRACE_RESUME(dev) do { } while (0) +#define TRACE_SUSPEND(dev) do { } while (0) + +#endif + +#endif |