summaryrefslogtreecommitdiffstats
path: root/include/linux/suspend.h
diff options
context:
space:
mode:
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>2017-08-15 21:16:59 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2017-08-17 19:54:22 -0400
commit726fb6b4f2a82a14a906f39bdabac4863b87c01a (patch)
tree9263ffaa63f641d79ad4ff0806ab2b907dfc2c1a /include/linux/suspend.h
parent23d5855f4774f4f7c246a67057ecacc904696d8a (diff)
ACPI / PM: Check low power idle constraints for debug only
For SoC to achieve its lowest power platform idle state a set of hardware preconditions must be met. These preconditions or constraints can be obtained by issuing a device specific method (_DSM) with function "1". Refer to the document provided in the link below. Here during initialization (from attach() callback of LPS0 device), invoke function 1 to get the device constraints. Each enabled constraint is stored in a table. The devices in this table are used to check whether they were in required minimum state, while entering suspend. This check is done from platform freeze wake() callback, only when /sys/power/pm_debug_messages attribute is non zero. If any constraint is not met and device is ACPI power managed then it prints the device information to kernel logs. Also if debug is enabled in acpi/sleep.c, the constraint table and state of each device on wake is dumped in kernel logs. Since pm_debug_messages_on setting is used as condition to check constraints outside kernel/power/main.c, pm_debug_messages_on is changed to a global variable. Link: http://www.uefi.org/sites/default/files/resources/Intel_ACPI_Low_Power_S0_Idle.pdf Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'include/linux/suspend.h')
-rw-r--r--include/linux/suspend.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/suspend.h b/include/linux/suspend.h
index 0d41daf7e89d..d10b7980799d 100644
--- a/include/linux/suspend.h
+++ b/include/linux/suspend.h
@@ -495,9 +495,11 @@ static inline void unlock_system_sleep(void) {}
495 495
496#ifdef CONFIG_PM_SLEEP_DEBUG 496#ifdef CONFIG_PM_SLEEP_DEBUG
497extern bool pm_print_times_enabled; 497extern bool pm_print_times_enabled;
498extern bool pm_debug_messages_on;
498extern __printf(2, 3) void __pm_pr_dbg(bool defer, const char *fmt, ...); 499extern __printf(2, 3) void __pm_pr_dbg(bool defer, const char *fmt, ...);
499#else 500#else
500#define pm_print_times_enabled (false) 501#define pm_print_times_enabled (false)
502#define pm_debug_messages_on (false)
501 503
502#include <linux/printk.h> 504#include <linux/printk.h>
503 505