aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/suspend.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/suspend.h')
-rw-r--r--include/linux/suspend.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/include/linux/suspend.h b/include/linux/suspend.h
index 5efe743ce1e8..8b6ec7ef0854 100644
--- a/include/linux/suspend.h
+++ b/include/linux/suspend.h
@@ -202,6 +202,36 @@ struct platform_freeze_ops {
202extern void suspend_set_ops(const struct platform_suspend_ops *ops); 202extern void suspend_set_ops(const struct platform_suspend_ops *ops);
203extern int suspend_valid_only_mem(suspend_state_t state); 203extern int suspend_valid_only_mem(suspend_state_t state);
204 204
205extern unsigned int pm_suspend_global_flags;
206
207#define PM_SUSPEND_FLAG_FW_SUSPEND (1 << 0)
208#define PM_SUSPEND_FLAG_FW_RESUME (1 << 1)
209
210static inline void pm_suspend_clear_flags(void)
211{
212 pm_suspend_global_flags = 0;
213}
214
215static inline void pm_set_suspend_via_firmware(void)
216{
217 pm_suspend_global_flags |= PM_SUSPEND_FLAG_FW_SUSPEND;
218}
219
220static inline void pm_set_resume_via_firmware(void)
221{
222 pm_suspend_global_flags |= PM_SUSPEND_FLAG_FW_RESUME;
223}
224
225static inline bool pm_suspend_via_firmware(void)
226{
227 return !!(pm_suspend_global_flags & PM_SUSPEND_FLAG_FW_SUSPEND);
228}
229
230static inline bool pm_resume_via_firmware(void)
231{
232 return !!(pm_suspend_global_flags & PM_SUSPEND_FLAG_FW_RESUME);
233}
234
205/* Suspend-to-idle state machnine. */ 235/* Suspend-to-idle state machnine. */
206enum freeze_state { 236enum freeze_state {
207 FREEZE_STATE_NONE, /* Not suspended/suspending. */ 237 FREEZE_STATE_NONE, /* Not suspended/suspending. */
@@ -241,6 +271,12 @@ extern int pm_suspend(suspend_state_t state);
241#else /* !CONFIG_SUSPEND */ 271#else /* !CONFIG_SUSPEND */
242#define suspend_valid_only_mem NULL 272#define suspend_valid_only_mem NULL
243 273
274static inline void pm_suspend_clear_flags(void) {}
275static inline void pm_set_suspend_via_firmware(void) {}
276static inline void pm_set_resume_via_firmware(void) {}
277static inline bool pm_suspend_via_firmware(void) { return false; }
278static inline bool pm_resume_via_firmware(void) { return false; }
279
244static inline void suspend_set_ops(const struct platform_suspend_ops *ops) {} 280static inline void suspend_set_ops(const struct platform_suspend_ops *ops) {}
245static inline int pm_suspend(suspend_state_t state) { return -ENOSYS; } 281static inline int pm_suspend(suspend_state_t state) { return -ENOSYS; }
246static inline bool idle_should_freeze(void) { return false; } 282static inline bool idle_should_freeze(void) { return false; }
@@ -387,10 +423,12 @@ extern int unregister_pm_notifier(struct notifier_block *nb);
387 423
388/* drivers/base/power/wakeup.c */ 424/* drivers/base/power/wakeup.c */
389extern bool events_check_enabled; 425extern bool events_check_enabled;
426extern unsigned int pm_wakeup_irq;
390 427
391extern bool pm_wakeup_pending(void); 428extern bool pm_wakeup_pending(void);
392extern void pm_system_wakeup(void); 429extern void pm_system_wakeup(void);
393extern void pm_wakeup_clear(void); 430extern void pm_wakeup_clear(void);
431extern void pm_system_irq_wakeup(unsigned int irq_number);
394extern bool pm_get_wakeup_count(unsigned int *count, bool block); 432extern bool pm_get_wakeup_count(unsigned int *count, bool block);
395extern bool pm_save_wakeup_count(unsigned int count); 433extern bool pm_save_wakeup_count(unsigned int count);
396extern void pm_wakep_autosleep_enabled(bool set); 434extern void pm_wakep_autosleep_enabled(bool set);
@@ -440,6 +478,7 @@ static inline int unregister_pm_notifier(struct notifier_block *nb)
440static inline bool pm_wakeup_pending(void) { return false; } 478static inline bool pm_wakeup_pending(void) { return false; }
441static inline void pm_system_wakeup(void) {} 479static inline void pm_system_wakeup(void) {}
442static inline void pm_wakeup_clear(void) {} 480static inline void pm_wakeup_clear(void) {}
481static inline void pm_system_irq_wakeup(unsigned int irq_number) {}
443 482
444static inline void lock_system_sleep(void) {} 483static inline void lock_system_sleep(void) {}
445static inline void unlock_system_sleep(void) {} 484static inline void unlock_system_sleep(void) {}