diff options
Diffstat (limited to 'kernel/power/suspend.c')
| -rw-r--r-- | kernel/power/suspend.c | 15 | 
1 files changed, 15 insertions, 0 deletions
| diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c index bef86d121eb..454568e6c8d 100644 --- a/kernel/power/suspend.c +++ b/kernel/power/suspend.c @@ -25,6 +25,7 @@  #include <linux/suspend.h>  #include <linux/syscore_ops.h>  #include <linux/ftrace.h> +#include <linux/rtc.h>  #include <trace/events/power.h>  #include "power.h" @@ -358,6 +359,18 @@ static int enter_state(suspend_state_t state)  	return error;  } +static void pm_suspend_marker(char *annotation) +{ +	struct timespec ts; +	struct rtc_time tm; + +	getnstimeofday(&ts); +	rtc_time_to_tm(ts.tv_sec, &tm); +	pr_info("PM: suspend %s %d-%02d-%02d %02d:%02d:%02d.%09lu UTC\n", +		annotation, tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday, +		tm.tm_hour, tm.tm_min, tm.tm_sec, ts.tv_nsec); +} +  /**   * pm_suspend - Externally visible function for suspending the system.   * @state: System sleep state to enter. @@ -372,6 +385,7 @@ int pm_suspend(suspend_state_t state)  	if (state <= PM_SUSPEND_ON || state >= PM_SUSPEND_MAX)  		return -EINVAL; +	pm_suspend_marker("entry");  	error = enter_state(state);  	if (error) {  		suspend_stats.fail++; @@ -379,6 +393,7 @@ int pm_suspend(suspend_state_t state)  	} else {  		suspend_stats.success++;  	} +	pm_suspend_marker("exit");  	return error;  }  EXPORT_SYMBOL(pm_suspend); |