|
@@ -332,6 +332,8 @@ static inline bool system_entering_hibernation(void) { return false; }
|
|
|
#define PM_RESTORE_PREPARE 0x0005 /* Going to restore a saved image */
|
|
|
#define PM_POST_RESTORE 0x0006 /* Restore failed */
|
|
|
|
|
|
+extern struct mutex pm_mutex;
|
|
|
+
|
|
|
#ifdef CONFIG_PM_SLEEP
|
|
|
void save_processor_state(void);
|
|
|
void restore_processor_state(void);
|
|
@@ -352,6 +354,19 @@ extern bool events_check_enabled;
|
|
|
extern bool pm_wakeup_pending(void);
|
|
|
extern bool pm_get_wakeup_count(unsigned int *count);
|
|
|
extern bool pm_save_wakeup_count(unsigned int count);
|
|
|
+
|
|
|
+static inline void lock_system_sleep(void)
|
|
|
+{
|
|
|
+ freezer_do_not_count();
|
|
|
+ mutex_lock(&pm_mutex);
|
|
|
+}
|
|
|
+
|
|
|
+static inline void unlock_system_sleep(void)
|
|
|
+{
|
|
|
+ mutex_unlock(&pm_mutex);
|
|
|
+ freezer_count();
|
|
|
+}
|
|
|
+
|
|
|
#else /* !CONFIG_PM_SLEEP */
|
|
|
|
|
|
static inline int register_pm_notifier(struct notifier_block *nb)
|
|
@@ -367,30 +382,11 @@ static inline int unregister_pm_notifier(struct notifier_block *nb)
|
|
|
#define pm_notifier(fn, pri) do { (void)(fn); } while (0)
|
|
|
|
|
|
static inline bool pm_wakeup_pending(void) { return false; }
|
|
|
-#endif /* !CONFIG_PM_SLEEP */
|
|
|
-
|
|
|
-extern struct mutex pm_mutex;
|
|
|
|
|
|
-#ifndef CONFIG_HIBERNATE_CALLBACKS
|
|
|
static inline void lock_system_sleep(void) {}
|
|
|
static inline void unlock_system_sleep(void) {}
|
|
|
|
|
|
-#else
|
|
|
-
|
|
|
-/* Let some subsystems like memory hotadd exclude hibernation */
|
|
|
-
|
|
|
-static inline void lock_system_sleep(void)
|
|
|
-{
|
|
|
- freezer_do_not_count();
|
|
|
- mutex_lock(&pm_mutex);
|
|
|
-}
|
|
|
-
|
|
|
-static inline void unlock_system_sleep(void)
|
|
|
-{
|
|
|
- mutex_unlock(&pm_mutex);
|
|
|
- freezer_count();
|
|
|
-}
|
|
|
-#endif
|
|
|
+#endif /* !CONFIG_PM_SLEEP */
|
|
|
|
|
|
#ifdef CONFIG_ARCH_SAVE_PAGE_KEYS
|
|
|
/*
|