aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/power/Kconfig
blob: ee9375768c6737cde2de98722b8f249069d05a0b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
config SUSPEND
	bool "Suspend to RAM and standby"
	depends on ARCH_SUSPEND_POSSIBLE
	default y
	---help---
	  Allow the system to enter sleep states in which main memory is
	  powered and thus its contents are preserved, such as the
	  suspend-to-RAM state (e.g. the ACPI S3 state).

config SUSPEND_FREEZER
	bool "Enable freezer for suspend to RAM/standby" \
		if ARCH_WANTS_FREEZER_CONTROL || BROKEN
	depends on SUSPEND
	default y
	help
	  This allows you to turn off the freezer for suspend. If this is
	  done, no tasks are frozen for suspend to RAM/standby.

	  Turning OFF this setting is NOT recommended! If in doubt, say Y.

config PM_WATCHDOG_TIMEOUT
	bool "PM Watchdog timeout"
	depends on CPU_EXYNOS4210
	default y
	---help---
	  Enable PM watchdog timer to catch lockup during early_suspend,
	  late_resume and suspend_finish.

config FAST_BOOT
	bool "Force suspend and show fake turn off which is same with suspend"
	depends on SUSPEND
	default n
	---help---
	  This allows you go to suspend instead to turn off. If this is
	  done, it goes to wake up instead to turn on. This works with power
	  source.

config HAS_WAKELOCK
	bool

config HAS_EARLYSUSPEND
	bool

config WAKELOCK
	bool "Wake lock"
	depends on PM && RTC_CLASS
	default n
	select HAS_WAKELOCK
	---help---
	  Enable wakelocks. When user space request a sleep state the
	  sleep request will be delayed until no wake locks are held.

config WAKELOCK_STAT
	bool "Wake lock stats"
	depends on WAKELOCK
	default y
	---help---
	  Report wake lock stats in /proc/wakelocks

config USER_WAKELOCK
	bool "Userspace wake locks"
	depends on WAKELOCK
	default y
	---help---
	  User-space wake lock api. Write "lockname" or "lockname timeout"
	  to /sys/power/wake_lock lock and if needed create a wake lock.
	  Write "lockname" to /sys/power/wake_unlock to unlock a user wake
	  lock.

config EARLYSUSPEND
	bool "Early suspend"
	depends on WAKELOCK
	default y
	select HAS_EARLYSUSPEND
	---help---
	  Call early suspend handlers when the user requested sleep state
	  changes.

choice
	prompt "User-space screen access"
	default FB_EARLYSUSPEND if !FRAMEBUFFER_CONSOLE
	default CONSOLE_EARLYSUSPEND
	depends on HAS_EARLYSUSPEND

	config NO_USER_SPACE_SCREEN_ACCESS_CONTROL
		bool "None"

	config CONSOLE_EARLYSUSPEND
		bool "Console switch on early-suspend"
		depends on HAS_EARLYSUSPEND && VT
		---help---
		  Register early suspend handler to perform a console switch to
		  when user-space should stop drawing to the screen and a switch
		  back when it should resume.

	config FB_EARLYSUSPEND
		bool "Sysfs interface"
		depends on HAS_EARLYSUSPEND
		---help---
		  Register early suspend handler that notifies and waits for
		  user-space through sysfs when user-space should stop drawing
		  to the screen and notifies user-space when it should resume.
endchoice

config HIBERNATE_CALLBACKS
	bool

config HIBERNATION
	bool "Hibernation (aka 'suspend to disk')"
	depends on SWAP && ARCH_HIBERNATION_POSSIBLE
	select HIBERNATE_CALLBACKS
	select LZO_COMPRESS
	select LZO_DECOMPRESS
	---help---
	  Enable the suspend to disk (STD) functionality, which is usually
	  called "hibernation" in user interfaces.  STD checkpoints the
	  system and powers it off; and restores that checkpoint on reboot.

	  You can suspend your machine with 'echo disk > /sys/power/state'
	  after placing resume=/dev/swappartition on the kernel command line
	  in your bootloader's configuration file.

	  Alternatively, you can use the additional userland tools available
	  from <http://suspend.sf.net>.

	  In principle it does not require ACPI or APM, although for example
	  ACPI will be used for the final steps when it is available.  One
	  of the reasons to use software suspend is that the firmware hooks
	  for suspend states like suspend-to-RAM (STR) often don't work very
	  well with Linux.

	  It creates an image which is saved in your active swap. Upon the next
	  boot, pass the 'resume=/dev/swappartition' argument to the kernel to
	  have it detect the saved image, restore memory state from it, and
	  continue to run as before. If you do not want the previous state to
	  be reloaded, then use the 'noresume' kernel command line argument.
	  Note, however, that fsck will be run on your filesystems and you will
	  need to run mkswap against the swap partition used for the suspend.

	  It also works with swap files to a limited extent (for details see
	  <file:Documentation/power/swsusp-and-swap-files.txt>).

	  Right now you may boot without resuming and resume later but in the
	  meantime you cannot use the swap partition(s)/file(s) involved in
	  suspending.  Also in this case you must not use the filesystems
	  that were mounted before the suspend.  In particular, you MUST NOT
	  MOUNT any journaled filesystems mounted before the suspend or they
	  will get corrupted in a nasty way.

	  For more information take a look at <file:Documentation/power/swsusp.txt>.

config FULL_PAGE_RECLAIM
	bool "Using Full Page Reclaim during Suspend-to-Disk"
	depends on HIBERNATION
	default n
	---help---
	  Reclaim whole pages if possible before creating hibernation snapshot
	  image. For reducing snapshot image size, reclaim them.

	  With this config, the size of hibernation snapshot image is
	  dramatically decreased and small size of hibernation snapshot image
	  has benefit for fast booting.

config FAST_RESUME
	bool "Using fast resume during Suspend-to-Disk"
	depends on HIBERNATION
	---help---
	  software_resume() function which triggers hibernation restore is
	  called faster on booting time by introducing new initcalls. This has
	  benefit for fast booting on hibernation

config PM_STD_PARTITION
	string "Default resume partition"
	depends on HIBERNATION
	default ""
	---help---
	  The default resume partition is the partition that the suspend-
	  to-disk implementation will look for a suspended disk image. 

	  The partition specified here will be different for almost every user. 
	  It should be a valid swap partition (at least for now) that is turned
	  on before suspending. 

	  The partition specified can be overridden by specifying:

		resume=/dev/<other device> 

	  which will set the resume partition to the device specified. 

	  Note there is currently not a way to specify which device to save the
	  suspended image to. It will simply pick the first available swap 
	  device.

config PM_SLEEP
	def_bool y
	depends on SUSPEND || HIBERNATE_CALLBACKS

config PM_SLEEP_SMP
	def_bool y
	depends on SMP
	depends on ARCH_SUSPEND_POSSIBLE || ARCH_HIBERNATION_POSSIBLE
	depends on PM_SLEEP
	select HOTPLUG
	select HOTPLUG_CPU

config PM_RUNTIME
	bool "Run-time PM core functionality"
	depends on !IA64_HP_SIM
	---help---
	  Enable functionality allowing I/O devices to be put into energy-saving
	  (low power) states at run time (or autosuspended) after a specified
	  period of inactivity and woken up in response to a hardware-generated
	  wake-up event or a driver's request.

	  Hardware support is generally required for this functionality to work
	  and the bus type drivers of the buses the devices are on are
	  responsible for the actual handling of the autosuspend requests and
	  wake-up events.

config PM
	def_bool y
	depends on PM_SLEEP || PM_RUNTIME

config PM_DEBUG
	bool "Power Management Debug Support"
	depends on PM
	---help---
	This option enables various debugging support in the Power Management
	code. This is helpful when debugging and reporting PM bugs, like
	suspend support.

config PM_ADVANCED_DEBUG
	bool "Extra PM attributes in sysfs for low-level debugging/testing"
	depends on PM_DEBUG
	---help---
	Add extra sysfs attributes allowing one to access some Power Management
	fields of device objects from user space.  If you are not a kernel
	developer interested in debugging/testing Power Management, say "no".

config PM_TEST_SUSPEND
	bool "Test suspend/resume and wakealarm during bootup"
	depends on SUSPEND && PM_DEBUG && RTC_CLASS=y
	---help---
	This option will let you suspend your machine during bootup, and
	make it wake up a few seconds later using an RTC wakeup alarm.
	Enable this with a kernel parameter like "test_suspend=mem".

	You probably want to have your system's RTC driver statically
	linked, ensuring that it's available when this test runs.

config CAN_PM_TRACE
	def_bool y
	depends on PM_DEBUG && PM_SLEEP

config PM_TRACE
	bool
	help
	  This enables code to save the last PM event point across
	  reboot. The architecture needs to support this, x86 for
	  example does by saving things in the RTC, see below.

	  The architecture specific code must provide the extern
	  functions from <linux/resume-trace.h> as well as the
	  <asm/resume-trace.h> header with a TRACE_RESUME() macro.

	  The way the information is presented is architecture-
	  dependent, x86 will print the information during a
	  late_initcall.

config PM_TRACE_RTC
	bool "Suspend/resume event tracing"
	depends on CAN_PM_TRACE
	depends on X86
	select PM_TRACE
	---help---
	This enables some cheesy code to save the last PM event point in the
	RTC across reboots, so that you can debug a machine that just hangs
	during suspend (or more commonly, during resume).

	To use this debugging feature you should attempt to suspend the
	machine, reboot it and then run

		dmesg -s 1000000 | grep 'hash matches'

	CAUTION: this option will cause your machine's real-time clock to be
	set to an invalid time after a resume.

config APM_EMULATION
	tristate "Advanced Power Management Emulation"
	depends on PM && SYS_SUPPORTS_APM_EMULATION
	help
	  APM is a BIOS specification for saving power using several different
	  techniques. This is mostly useful for battery powered laptops with
	  APM compliant BIOSes. If you say Y here, the system time will be
	  reset after a RESUME operation, the /proc/apm device will provide
	  battery status information, and user-space programs will receive
	  notification of APM "events" (e.g. battery status change).

	  In order to use APM, you will need supporting software. For location
	  and more information, read <file:Documentation/power/pm.txt> and the
	  Battery Powered Linux mini-HOWTO, available from
	  <http://www.tldp.org/docs.html#howto>.

	  This driver does not spin down disk drives (see the hdparm(8)
	  manpage ("man 8 hdparm") for that), and it doesn't turn off
	  VESA-compliant "green" monitors.

	  Generally, if you don't have a battery in your machine, there isn't
	  much point in using this driver and you should say N. If you get
	  random kernel OOPSes or reboots that don't seem to be related to
	  anything, try disabling/enabling this option (or disabling/enabling
	  APM in your BIOS).

config ARCH_HAS_OPP
	bool

config PM_OPP
	bool "Operating Performance Point (OPP) Layer library"
	depends on ARCH_HAS_OPP
	---help---
	  SOCs have a standard set of tuples consisting of frequency and
	  voltage pairs that the device will support per voltage domain. This
	  is called Operating Performance Point or OPP. The actual definitions
	  of OPP varies over silicon within the same family of devices.

	  OPP layer organizes the data internally using device pointers
	  representing individual voltage domains and provides SOC
	  implementations a ready to use framework to manage OPPs.
	  For more information, read <file:Documentation/power/opp.txt>

config PM_RUNTIME_CLK
	def_bool y
	depends on PM_RUNTIME && HAVE_CLK

config SUSPEND_TIME
	bool "Log time spent in suspend"
	---help---
	  Prints the time spent in suspend in the kernel log, and
	  keeps statistics on the time spent in suspend in
	  /sys/kernel/debug/suspend_time

config CPU_PM
	bool
	depends on SUSPEND || CPU_IDLE