aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/power/Kconfig
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2012-04-29 16:53:42 -0400
committerRafael J. Wysocki <rjw@sisk.pl>2012-05-01 15:26:05 -0400
commitb86ff9820fd5df69295273b9aa68e58786ffc23f (patch)
treee8af5745652c926b9a82b3b7531dc455564efdfb /kernel/power/Kconfig
parent55850945e872531644f31fefd217d61dd15dcab8 (diff)
PM / Sleep: Add user space interface for manipulating wakeup sources, v3
Android allows user space to manipulate wakelocks using two sysfs file located in /sys/power/, wake_lock and wake_unlock. Writing a wakelock name and optionally a timeout to the wake_lock file causes the wakelock whose name was written to be acquired (it is created before is necessary), optionally with the given timeout. Writing the name of a wakelock to wake_unlock causes that wakelock to be released. Implement an analogous interface for user space using wakeup sources. Add the /sys/power/wake_lock and /sys/power/wake_unlock files allowing user space to create, activate and deactivate wakeup sources, such that writing a name and optionally a timeout to wake_lock causes the wakeup source of that name to be activated, optionally with the given timeout. If that wakeup source doesn't exist, it will be created and then activated. Writing a name to wake_unlock causes the wakeup source of that name, if there is one, to be deactivated. Wakeup sources created with the help of wake_lock that haven't been used for more than 5 minutes are garbage collected and destroyed. Moreover, there can be only WL_NUMBER_LIMIT wakeup sources created with the help of wake_lock present at a time. The data type used to track wakeup sources created by user space is called "struct wakelock" to indicate the origins of this feature. This version of the patch includes an rbtree manipulation fix from John Stultz. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Reviewed-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'kernel/power/Kconfig')
-rw-r--r--kernel/power/Kconfig8
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
index 67947083f842..1d534076d33a 100644
--- a/kernel/power/Kconfig
+++ b/kernel/power/Kconfig
@@ -111,6 +111,14 @@ config PM_AUTOSLEEP
111 Allow the kernel to trigger a system transition into a global sleep 111 Allow the kernel to trigger a system transition into a global sleep
112 state automatically whenever there are no active wakeup sources. 112 state automatically whenever there are no active wakeup sources.
113 113
114config PM_WAKELOCKS
115 bool "User space wakeup sources interface"
116 depends on PM_SLEEP
117 default n
118 ---help---
119 Allow user space to create, activate and deactivate wakeup source
120 objects with the help of a sysfs-based interface.
121
114config PM_RUNTIME 122config PM_RUNTIME
115 bool "Run-time PM core functionality" 123 bool "Run-time PM core functionality"
116 depends on !IA64_HP_SIM 124 depends on !IA64_HP_SIM