diff options
Diffstat (limited to 'kernel/power/Kconfig')
-rw-r--r-- | kernel/power/Kconfig | 253 |
1 files changed, 119 insertions, 134 deletions
diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig index ca6066a6952e..87f4d24b55b0 100644 --- a/kernel/power/Kconfig +++ b/kernel/power/Kconfig | |||
@@ -1,128 +1,12 @@ | |||
1 | config PM | ||
2 | bool "Power Management support" | ||
3 | depends on !IA64_HP_SIM | ||
4 | ---help--- | ||
5 | "Power Management" means that parts of your computer are shut | ||
6 | off or put into a power conserving "sleep" mode if they are not | ||
7 | being used. There are two competing standards for doing this: APM | ||
8 | and ACPI. If you want to use either one, say Y here and then also | ||
9 | to the requisite support below. | ||
10 | |||
11 | Power Management is most important for battery powered laptop | ||
12 | computers; if you have a laptop, check out the Linux Laptop home | ||
13 | page on the WWW at <http://www.linux-on-laptops.com/> or | ||
14 | Tuxmobil - Linux on Mobile Computers at <http://www.tuxmobil.org/> | ||
15 | and the Battery Powered Linux mini-HOWTO, available from | ||
16 | <http://www.tldp.org/docs.html#howto>. | ||
17 | |||
18 | Note that, even if you say N here, Linux on the x86 architecture | ||
19 | will issue the hlt instruction if nothing is to be done, thereby | ||
20 | sending the processor to sleep and saving power. | ||
21 | |||
22 | config PM_DEBUG | ||
23 | bool "Power Management Debug Support" | ||
24 | depends on PM | ||
25 | ---help--- | ||
26 | This option enables various debugging support in the Power Management | ||
27 | code. This is helpful when debugging and reporting PM bugs, like | ||
28 | suspend support. | ||
29 | |||
30 | config PM_ADVANCED_DEBUG | ||
31 | bool "Extra PM attributes in sysfs for low-level debugging/testing" | ||
32 | depends on PM_DEBUG | ||
33 | default n | ||
34 | ---help--- | ||
35 | Add extra sysfs attributes allowing one to access some Power Management | ||
36 | fields of device objects from user space. If you are not a kernel | ||
37 | developer interested in debugging/testing Power Management, say "no". | ||
38 | |||
39 | config PM_VERBOSE | ||
40 | bool "Verbose Power Management debugging" | ||
41 | depends on PM_DEBUG | ||
42 | default n | ||
43 | ---help--- | ||
44 | This option enables verbose messages from the Power Management code. | ||
45 | |||
46 | config CAN_PM_TRACE | ||
47 | def_bool y | ||
48 | depends on PM_DEBUG && PM_SLEEP && EXPERIMENTAL | ||
49 | |||
50 | config PM_TRACE | ||
51 | bool | ||
52 | help | ||
53 | This enables code to save the last PM event point across | ||
54 | reboot. The architecture needs to support this, x86 for | ||
55 | example does by saving things in the RTC, see below. | ||
56 | |||
57 | The architecture specific code must provide the extern | ||
58 | functions from <linux/resume-trace.h> as well as the | ||
59 | <asm/resume-trace.h> header with a TRACE_RESUME() macro. | ||
60 | |||
61 | The way the information is presented is architecture- | ||
62 | dependent, x86 will print the information during a | ||
63 | late_initcall. | ||
64 | |||
65 | config PM_TRACE_RTC | ||
66 | bool "Suspend/resume event tracing" | ||
67 | depends on CAN_PM_TRACE | ||
68 | depends on X86 | ||
69 | select PM_TRACE | ||
70 | default n | ||
71 | ---help--- | ||
72 | This enables some cheesy code to save the last PM event point in the | ||
73 | RTC across reboots, so that you can debug a machine that just hangs | ||
74 | during suspend (or more commonly, during resume). | ||
75 | |||
76 | To use this debugging feature you should attempt to suspend the | ||
77 | machine, reboot it and then run | ||
78 | |||
79 | dmesg -s 1000000 | grep 'hash matches' | ||
80 | |||
81 | CAUTION: this option will cause your machine's real-time clock to be | ||
82 | set to an invalid time after a resume. | ||
83 | |||
84 | config PM_SLEEP_SMP | ||
85 | bool | ||
86 | depends on SMP | ||
87 | depends on ARCH_SUSPEND_POSSIBLE || ARCH_HIBERNATION_POSSIBLE | ||
88 | depends on PM_SLEEP | ||
89 | select HOTPLUG_CPU | ||
90 | default y | ||
91 | |||
92 | config PM_SLEEP | ||
93 | bool | ||
94 | depends on SUSPEND || HIBERNATION || XEN_SAVE_RESTORE | ||
95 | default y | ||
96 | |||
97 | config PM_SLEEP_ADVANCED_DEBUG | ||
98 | bool | ||
99 | depends on PM_ADVANCED_DEBUG | ||
100 | default n | ||
101 | |||
102 | config SUSPEND_NVS | ||
103 | bool | ||
104 | |||
105 | config SUSPEND | 1 | config SUSPEND |
106 | bool "Suspend to RAM and standby" | 2 | bool "Suspend to RAM and standby" |
107 | depends on PM && ARCH_SUSPEND_POSSIBLE | 3 | depends on ARCH_SUSPEND_POSSIBLE |
108 | select SUSPEND_NVS if HAS_IOMEM | ||
109 | default y | 4 | default y |
110 | ---help--- | 5 | ---help--- |
111 | Allow the system to enter sleep states in which main memory is | 6 | Allow the system to enter sleep states in which main memory is |
112 | powered and thus its contents are preserved, such as the | 7 | powered and thus its contents are preserved, such as the |
113 | suspend-to-RAM state (e.g. the ACPI S3 state). | 8 | suspend-to-RAM state (e.g. the ACPI S3 state). |
114 | 9 | ||
115 | config PM_TEST_SUSPEND | ||
116 | bool "Test suspend/resume and wakealarm during bootup" | ||
117 | depends on SUSPEND && PM_DEBUG && RTC_CLASS=y | ||
118 | ---help--- | ||
119 | This option will let you suspend your machine during bootup, and | ||
120 | make it wake up a few seconds later using an RTC wakeup alarm. | ||
121 | Enable this with a kernel parameter like "test_suspend=mem". | ||
122 | |||
123 | You probably want to have your system's RTC driver statically | ||
124 | linked, ensuring that it's available when this test runs. | ||
125 | |||
126 | config SUSPEND_FREEZER | 10 | config SUSPEND_FREEZER |
127 | bool "Enable freezer for suspend to RAM/standby" \ | 11 | bool "Enable freezer for suspend to RAM/standby" \ |
128 | if ARCH_WANTS_FREEZER_CONTROL || BROKEN | 12 | if ARCH_WANTS_FREEZER_CONTROL || BROKEN |
@@ -134,10 +18,15 @@ config SUSPEND_FREEZER | |||
134 | 18 | ||
135 | Turning OFF this setting is NOT recommended! If in doubt, say Y. | 19 | Turning OFF this setting is NOT recommended! If in doubt, say Y. |
136 | 20 | ||
21 | config HIBERNATE_CALLBACKS | ||
22 | bool | ||
23 | |||
137 | config HIBERNATION | 24 | config HIBERNATION |
138 | bool "Hibernation (aka 'suspend to disk')" | 25 | bool "Hibernation (aka 'suspend to disk')" |
139 | depends on PM && SWAP && ARCH_HIBERNATION_POSSIBLE | 26 | depends on SWAP && ARCH_HIBERNATION_POSSIBLE |
140 | select SUSPEND_NVS if HAS_IOMEM | 27 | select HIBERNATE_CALLBACKS |
28 | select LZO_COMPRESS | ||
29 | select LZO_DECOMPRESS | ||
141 | ---help--- | 30 | ---help--- |
142 | Enable the suspend to disk (STD) functionality, which is usually | 31 | Enable the suspend to disk (STD) functionality, which is usually |
143 | called "hibernation" in user interfaces. STD checkpoints the | 32 | called "hibernation" in user interfaces. STD checkpoints the |
@@ -198,6 +87,100 @@ config PM_STD_PARTITION | |||
198 | suspended image to. It will simply pick the first available swap | 87 | suspended image to. It will simply pick the first available swap |
199 | device. | 88 | device. |
200 | 89 | ||
90 | config PM_SLEEP | ||
91 | def_bool y | ||
92 | depends on SUSPEND || HIBERNATE_CALLBACKS | ||
93 | |||
94 | config PM_SLEEP_SMP | ||
95 | def_bool y | ||
96 | depends on SMP | ||
97 | depends on ARCH_SUSPEND_POSSIBLE || ARCH_HIBERNATION_POSSIBLE | ||
98 | depends on PM_SLEEP | ||
99 | select HOTPLUG | ||
100 | select HOTPLUG_CPU | ||
101 | |||
102 | config PM_RUNTIME | ||
103 | bool "Run-time PM core functionality" | ||
104 | depends on !IA64_HP_SIM | ||
105 | ---help--- | ||
106 | Enable functionality allowing I/O devices to be put into energy-saving | ||
107 | (low power) states at run time (or autosuspended) after a specified | ||
108 | period of inactivity and woken up in response to a hardware-generated | ||
109 | wake-up event or a driver's request. | ||
110 | |||
111 | Hardware support is generally required for this functionality to work | ||
112 | and the bus type drivers of the buses the devices are on are | ||
113 | responsible for the actual handling of the autosuspend requests and | ||
114 | wake-up events. | ||
115 | |||
116 | config PM | ||
117 | def_bool y | ||
118 | depends on PM_SLEEP || PM_RUNTIME | ||
119 | |||
120 | config PM_DEBUG | ||
121 | bool "Power Management Debug Support" | ||
122 | depends on PM | ||
123 | ---help--- | ||
124 | This option enables various debugging support in the Power Management | ||
125 | code. This is helpful when debugging and reporting PM bugs, like | ||
126 | suspend support. | ||
127 | |||
128 | config PM_ADVANCED_DEBUG | ||
129 | bool "Extra PM attributes in sysfs for low-level debugging/testing" | ||
130 | depends on PM_DEBUG | ||
131 | ---help--- | ||
132 | Add extra sysfs attributes allowing one to access some Power Management | ||
133 | fields of device objects from user space. If you are not a kernel | ||
134 | developer interested in debugging/testing Power Management, say "no". | ||
135 | |||
136 | config PM_TEST_SUSPEND | ||
137 | bool "Test suspend/resume and wakealarm during bootup" | ||
138 | depends on SUSPEND && PM_DEBUG && RTC_CLASS=y | ||
139 | ---help--- | ||
140 | This option will let you suspend your machine during bootup, and | ||
141 | make it wake up a few seconds later using an RTC wakeup alarm. | ||
142 | Enable this with a kernel parameter like "test_suspend=mem". | ||
143 | |||
144 | You probably want to have your system's RTC driver statically | ||
145 | linked, ensuring that it's available when this test runs. | ||
146 | |||
147 | config CAN_PM_TRACE | ||
148 | def_bool y | ||
149 | depends on PM_DEBUG && PM_SLEEP | ||
150 | |||
151 | config PM_TRACE | ||
152 | bool | ||
153 | help | ||
154 | This enables code to save the last PM event point across | ||
155 | reboot. The architecture needs to support this, x86 for | ||
156 | example does by saving things in the RTC, see below. | ||
157 | |||
158 | The architecture specific code must provide the extern | ||
159 | functions from <linux/resume-trace.h> as well as the | ||
160 | <asm/resume-trace.h> header with a TRACE_RESUME() macro. | ||
161 | |||
162 | The way the information is presented is architecture- | ||
163 | dependent, x86 will print the information during a | ||
164 | late_initcall. | ||
165 | |||
166 | config PM_TRACE_RTC | ||
167 | bool "Suspend/resume event tracing" | ||
168 | depends on CAN_PM_TRACE | ||
169 | depends on X86 | ||
170 | select PM_TRACE | ||
171 | ---help--- | ||
172 | This enables some cheesy code to save the last PM event point in the | ||
173 | RTC across reboots, so that you can debug a machine that just hangs | ||
174 | during suspend (or more commonly, during resume). | ||
175 | |||
176 | To use this debugging feature you should attempt to suspend the | ||
177 | machine, reboot it and then run | ||
178 | |||
179 | dmesg -s 1000000 | grep 'hash matches' | ||
180 | |||
181 | CAUTION: this option will cause your machine's real-time clock to be | ||
182 | set to an invalid time after a resume. | ||
183 | |||
201 | config APM_EMULATION | 184 | config APM_EMULATION |
202 | tristate "Advanced Power Management Emulation" | 185 | tristate "Advanced Power Management Emulation" |
203 | depends on PM && SYS_SUPPORTS_APM_EMULATION | 186 | depends on PM && SYS_SUPPORTS_APM_EMULATION |
@@ -224,21 +207,23 @@ config APM_EMULATION | |||
224 | anything, try disabling/enabling this option (or disabling/enabling | 207 | anything, try disabling/enabling this option (or disabling/enabling |
225 | APM in your BIOS). | 208 | APM in your BIOS). |
226 | 209 | ||
227 | config PM_RUNTIME | 210 | config ARCH_HAS_OPP |
228 | bool "Run-time PM core functionality" | 211 | bool |
229 | depends on PM | 212 | |
213 | config PM_OPP | ||
214 | bool "Operating Performance Point (OPP) Layer library" | ||
215 | depends on ARCH_HAS_OPP | ||
230 | ---help--- | 216 | ---help--- |
231 | Enable functionality allowing I/O devices to be put into energy-saving | 217 | SOCs have a standard set of tuples consisting of frequency and |
232 | (low power) states at run time (or autosuspended) after a specified | 218 | voltage pairs that the device will support per voltage domain. This |
233 | period of inactivity and woken up in response to a hardware-generated | 219 | is called Operating Performance Point or OPP. The actual definitions |
234 | wake-up event or a driver's request. | 220 | of OPP varies over silicon within the same family of devices. |
235 | 221 | ||
236 | Hardware support is generally required for this functionality to work | 222 | OPP layer organizes the data internally using device pointers |
237 | and the bus type drivers of the buses the devices are on are | 223 | representing individual voltage domains and provides SOC |
238 | responsible for the actual handling of the autosuspend requests and | 224 | implementations a ready to use framework to manage OPPs. |
239 | wake-up events. | 225 | For more information, read <file:Documentation/power/opp.txt> |
240 | 226 | ||
241 | config PM_OPS | 227 | config PM_RUNTIME_CLK |
242 | bool | 228 | def_bool y |
243 | depends on PM_SLEEP || PM_RUNTIME | 229 | depends on PM_RUNTIME && HAVE_CLK |
244 | default y | ||