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