arm64: dts: rockchip: add hdmi node on rk3366.dtsi
[firefly-linux-kernel-4.4.55.git] / kernel / power / Kconfig
1 config SUSPEND
2         bool "Suspend to RAM and standby"
3         depends on ARCH_SUSPEND_POSSIBLE
4         default y
5         ---help---
6           Allow the system to enter sleep states in which main memory is
7           powered and thus its contents are preserved, such as the
8           suspend-to-RAM state (e.g. the ACPI S3 state).
9
10 config SUSPEND_FREEZER
11         bool "Enable freezer for suspend to RAM/standby" \
12                 if ARCH_WANTS_FREEZER_CONTROL || BROKEN
13         depends on SUSPEND
14         default y
15         help
16           This allows you to turn off the freezer for suspend. If this is
17           done, no tasks are frozen for suspend to RAM/standby.
18
19           Turning OFF this setting is NOT recommended! If in doubt, say Y.
20
21 config SUSPEND_SKIP_SYNC
22         bool "Skip kernel's sys_sync() on suspend to RAM/standby"
23         depends on SUSPEND
24         depends on EXPERT
25         help
26           Skip the kernel sys_sync() before freezing user processes.
27           Some systems prefer not to pay this cost on every invocation
28           of suspend, or they are content with invoking sync() from
29           user-space before invoking suspend.  Say Y if that's your case.
30
31 config HAS_WAKELOCK
32         bool
33         default y
34
35 config WAKELOCK
36         bool
37         default y
38
39 config HIBERNATE_CALLBACKS
40         bool
41
42 config HIBERNATION
43         bool "Hibernation (aka 'suspend to disk')"
44         depends on SWAP && ARCH_HIBERNATION_POSSIBLE
45         select HIBERNATE_CALLBACKS
46         select LZO_COMPRESS
47         select LZO_DECOMPRESS
48         select CRC32
49         ---help---
50           Enable the suspend to disk (STD) functionality, which is usually
51           called "hibernation" in user interfaces.  STD checkpoints the
52           system and powers it off; and restores that checkpoint on reboot.
53
54           You can suspend your machine with 'echo disk > /sys/power/state'
55           after placing resume=/dev/swappartition on the kernel command line
56           in your bootloader's configuration file.
57
58           Alternatively, you can use the additional userland tools available
59           from <http://suspend.sf.net>.
60
61           In principle it does not require ACPI or APM, although for example
62           ACPI will be used for the final steps when it is available.  One
63           of the reasons to use software suspend is that the firmware hooks
64           for suspend states like suspend-to-RAM (STR) often don't work very
65           well with Linux.
66
67           It creates an image which is saved in your active swap. Upon the next
68           boot, pass the 'resume=/dev/swappartition' argument to the kernel to
69           have it detect the saved image, restore memory state from it, and
70           continue to run as before. If you do not want the previous state to
71           be reloaded, then use the 'noresume' kernel command line argument.
72           Note, however, that fsck will be run on your filesystems and you will
73           need to run mkswap against the swap partition used for the suspend.
74
75           It also works with swap files to a limited extent (for details see
76           <file:Documentation/power/swsusp-and-swap-files.txt>).
77
78           Right now you may boot without resuming and resume later but in the
79           meantime you cannot use the swap partition(s)/file(s) involved in
80           suspending.  Also in this case you must not use the filesystems
81           that were mounted before the suspend.  In particular, you MUST NOT
82           MOUNT any journaled filesystems mounted before the suspend or they
83           will get corrupted in a nasty way.
84
85           For more information take a look at <file:Documentation/power/swsusp.txt>.
86
87 config ARCH_SAVE_PAGE_KEYS
88         bool
89
90 config PM_STD_PARTITION
91         string "Default resume partition"
92         depends on HIBERNATION
93         default ""
94         ---help---
95           The default resume partition is the partition that the suspend-
96           to-disk implementation will look for a suspended disk image. 
97
98           The partition specified here will be different for almost every user. 
99           It should be a valid swap partition (at least for now) that is turned
100           on before suspending. 
101
102           The partition specified can be overridden by specifying:
103
104                 resume=/dev/<other device> 
105
106           which will set the resume partition to the device specified. 
107
108           Note there is currently not a way to specify which device to save the
109           suspended image to. It will simply pick the first available swap 
110           device.
111
112 config PM_SLEEP
113         def_bool y
114         depends on SUSPEND || HIBERNATE_CALLBACKS
115         select PM
116
117 config PM_SLEEP_SMP
118         def_bool y
119         depends on SMP
120         depends on ARCH_SUSPEND_POSSIBLE || ARCH_HIBERNATION_POSSIBLE
121         depends on PM_SLEEP
122         select HOTPLUG_CPU
123
124 config PM_AUTOSLEEP
125         bool "Opportunistic sleep"
126         depends on PM_SLEEP
127         default n
128         ---help---
129         Allow the kernel to trigger a system transition into a global sleep
130         state automatically whenever there are no active wakeup sources.
131
132 config PM_WAKELOCKS
133         bool "User space wakeup sources interface"
134         depends on PM_SLEEP
135         default n
136         ---help---
137         Allow user space to create, activate and deactivate wakeup source
138         objects with the help of a sysfs-based interface.
139
140 config PM_WAKELOCKS_LIMIT
141         int "Maximum number of user space wakeup sources (0 = no limit)"
142         range 0 100000
143         default 100
144         depends on PM_WAKELOCKS
145
146 config PM_WAKELOCKS_GC
147         bool "Garbage collector for user space wakeup sources"
148         depends on PM_WAKELOCKS
149         default y
150
151 config PM
152         bool "Device power management core functionality"
153         ---help---
154           Enable functionality allowing I/O devices to be put into energy-saving
155           (low power) states, for example after a specified period of inactivity
156           (autosuspended), and woken up in response to a hardware-generated
157           wake-up event or a driver's request.
158
159           Hardware support is generally required for this functionality to work
160           and the bus type drivers of the buses the devices are on are
161           responsible for the actual handling of device suspend requests and
162           wake-up events.
163
164 config PM_DEBUG
165         bool "Power Management Debug Support"
166         depends on PM
167         ---help---
168         This option enables various debugging support in the Power Management
169         code. This is helpful when debugging and reporting PM bugs, like
170         suspend support.
171
172 config PM_ADVANCED_DEBUG
173         bool "Extra PM attributes in sysfs for low-level debugging/testing"
174         depends on PM_DEBUG
175         ---help---
176         Add extra sysfs attributes allowing one to access some Power Management
177         fields of device objects from user space.  If you are not a kernel
178         developer interested in debugging/testing Power Management, say "no".
179
180 config PM_TEST_SUSPEND
181         bool "Test suspend/resume and wakealarm during bootup"
182         depends on SUSPEND && PM_DEBUG && RTC_CLASS=y
183         ---help---
184         This option will let you suspend your machine during bootup, and
185         make it wake up a few seconds later using an RTC wakeup alarm.
186         Enable this with a kernel parameter like "test_suspend=mem".
187
188         You probably want to have your system's RTC driver statically
189         linked, ensuring that it's available when this test runs.
190
191 config PM_SLEEP_DEBUG
192         def_bool y
193         depends on PM_DEBUG && PM_SLEEP
194
195 config DPM_WATCHDOG
196         bool "Device suspend/resume watchdog"
197         depends on PM_DEBUG && PSTORE
198         ---help---
199           Sets up a watchdog timer to capture drivers that are
200           locked up attempting to suspend/resume a device.
201           A detected lockup causes system panic with message
202           captured in pstore device for inspection in subsequent
203           boot session.
204
205 config DPM_WATCHDOG_TIMEOUT
206         int "Watchdog timeout in seconds"
207         range 1 120
208         default 60
209         depends on DPM_WATCHDOG
210
211 config PM_TRACE
212         bool
213         help
214           This enables code to save the last PM event point across
215           reboot. The architecture needs to support this, x86 for
216           example does by saving things in the RTC, see below.
217
218           The architecture specific code must provide the extern
219           functions from <linux/resume-trace.h> as well as the
220           <asm/resume-trace.h> header with a TRACE_RESUME() macro.
221
222           The way the information is presented is architecture-
223           dependent, x86 will print the information during a
224           late_initcall.
225
226 config PM_TRACE_RTC
227         bool "Suspend/resume event tracing"
228         depends on PM_SLEEP_DEBUG
229         depends on X86
230         select PM_TRACE
231         ---help---
232         This enables some cheesy code to save the last PM event point in the
233         RTC across reboots, so that you can debug a machine that just hangs
234         during suspend (or more commonly, during resume).
235
236         To use this debugging feature you should attempt to suspend the
237         machine, reboot it and then run
238
239                 dmesg -s 1000000 | grep 'hash matches'
240
241         CAUTION: this option will cause your machine's real-time clock to be
242         set to an invalid time after a resume.
243
244 config APM_EMULATION
245         tristate "Advanced Power Management Emulation"
246         depends on PM && SYS_SUPPORTS_APM_EMULATION
247         help
248           APM is a BIOS specification for saving power using several different
249           techniques. This is mostly useful for battery powered laptops with
250           APM compliant BIOSes. If you say Y here, the system time will be
251           reset after a RESUME operation, the /proc/apm device will provide
252           battery status information, and user-space programs will receive
253           notification of APM "events" (e.g. battery status change).
254
255           In order to use APM, you will need supporting software. For location
256           and more information, read <file:Documentation/power/apm-acpi.txt>
257           and the Battery Powered Linux mini-HOWTO, available from
258           <http://www.tldp.org/docs.html#howto>.
259
260           This driver does not spin down disk drives (see the hdparm(8)
261           manpage ("man 8 hdparm") for that), and it doesn't turn off
262           VESA-compliant "green" monitors.
263
264           Generally, if you don't have a battery in your machine, there isn't
265           much point in using this driver and you should say N. If you get
266           random kernel OOPSes or reboots that don't seem to be related to
267           anything, try disabling/enabling this option (or disabling/enabling
268           APM in your BIOS).
269
270 config PM_OPP
271         bool
272         select SRCU
273         ---help---
274           SOCs have a standard set of tuples consisting of frequency and
275           voltage pairs that the device will support per voltage domain. This
276           is called Operating Performance Point or OPP. The actual definitions
277           of OPP varies over silicon within the same family of devices.
278
279           OPP layer organizes the data internally using device pointers
280           representing individual voltage domains and provides SOC
281           implementations a ready to use framework to manage OPPs.
282           For more information, read <file:Documentation/power/opp.txt>
283
284 config PM_CLK
285         def_bool y
286         depends on PM && HAVE_CLK
287
288 config PM_GENERIC_DOMAINS
289         bool
290         depends on PM
291
292 config WQ_POWER_EFFICIENT_DEFAULT
293         bool "Enable workqueue power-efficient mode by default"
294         depends on PM
295         default n
296         help
297           Per-cpu workqueues are generally preferred because they show
298           better performance thanks to cache locality; unfortunately,
299           per-cpu workqueues tend to be more power hungry than unbound
300           workqueues.
301
302           Enabling workqueue.power_efficient kernel parameter makes the
303           per-cpu workqueues which were observed to contribute
304           significantly to power consumption unbound, leading to measurably
305           lower power usage at the cost of small performance overhead.
306
307           This config option determines whether workqueue.power_efficient
308           is enabled by default.
309
310           If in doubt, say N.
311
312 config PM_GENERIC_DOMAINS_SLEEP
313         def_bool y
314         depends on PM_SLEEP && PM_GENERIC_DOMAINS
315
316 config PM_GENERIC_DOMAINS_OF
317         def_bool y
318         depends on PM_GENERIC_DOMAINS && OF
319
320 config CPU_PM
321         bool