blob: c205653e96447b12ab9ed163715bf9d64c0cd230 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001#
2# ACPI Configuration
3#
4
Jan Engelhardt3f2c48c2007-07-03 01:40:59 -04005menuconfig ACPI
Frans Pop355ee5e2007-10-29 17:20:38 -04006 bool "ACPI (Advanced Configuration and Power Interface) Support"
Linus Torvalds1da177e2005-04-16 15:20:36 -07007 depends on !IA64_HP_SIM
8 depends on IA64 || X86
Adrian Bunk13001242006-03-28 17:04:00 -05009 depends on PCI
Len Brown243b66e2007-02-15 22:34:36 -050010 select PNP
Linus Torvalds1da177e2005-04-16 15:20:36 -070011 default y
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070012 help
Linus Torvalds1da177e2005-04-16 15:20:36 -070013 Advanced Configuration and Power Interface (ACPI) support for
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070014 Linux requires an ACPI-compliant platform (hardware/firmware),
Linus Torvalds1da177e2005-04-16 15:20:36 -070015 and assumes the presence of OS-directed configuration and power
16 management (OSPM) software. This option will enlarge your
17 kernel by about 70K.
18
19 Linux ACPI provides a robust functional replacement for several
20 legacy configuration and power management interfaces, including
21 the Plug-and-Play BIOS specification (PnP BIOS), the
22 MultiProcessor Specification (MPS), and the Advanced Power
23 Management (APM) specification. If both ACPI and APM support
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070024 are configured, ACPI is used.
Linus Torvalds1da177e2005-04-16 15:20:36 -070025
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070026 The project home page for the Linux ACPI subsystem is here:
Rafael J. Wysockiaaf3d292013-10-10 23:25:58 +020027 <https://01.org/linux-acpi>
Linus Torvalds1da177e2005-04-16 15:20:36 -070028
29 Linux support for ACPI is based on Intel Corporation's ACPI
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070030 Component Architecture (ACPI CA). For more information on the
31 ACPI CA, see:
32 <http://acpica.org/>
Linus Torvalds1da177e2005-04-16 15:20:36 -070033
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070034 ACPI is an open industry specification co-developed by
35 Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba.
36 The specification is available at:
Linus Torvalds1da177e2005-04-16 15:20:36 -070037 <http://www.acpi.info>
38
Len Brown3e11c3c2005-05-27 04:53:27 -040039if ACPI
40
Len Brown673d5b42007-07-28 03:33:16 -040041config ACPI_SLEEP
42 bool
Rafael J. Wysocki5d1e0722008-10-22 14:58:43 -040043 depends on SUSPEND || HIBERNATION
Len Brown673d5b42007-07-28 03:33:16 -040044 default y
45
Thomas Renninger1195a092010-07-16 13:11:31 +020046config ACPI_EC_DEBUGFS
47 tristate "EC read/write access through /sys/kernel/debug/ec"
Thomas Renninger500de3dd2010-07-29 22:30:24 +020048 default n
Thomas Renninger1195a092010-07-16 13:11:31 +020049 help
50 Say N to disable Embedded Controller /sys/kernel/debug interface
51
Thomas Renninger500de3dd2010-07-29 22:30:24 +020052 Be aware that using this interface can confuse your Embedded
53 Controller in a way that a normal reboot is not enough. You then
Andrea Gelmini25cb1bf2010-08-18 15:22:10 +020054 have to power off your system, and remove the laptop battery for
Thomas Renninger500de3dd2010-07-29 22:30:24 +020055 some seconds.
Thomas Renninger1195a092010-07-16 13:11:31 +020056 An Embedded Controller typically is available on laptops and reads
57 sensor values like battery state and temperature.
Thomas Renninger500de3dd2010-07-29 22:30:24 +020058 The kernel accesses the EC through ACPI parsed code provided by BIOS
59 tables. This option allows to access the EC directly without ACPI
60 code being involved.
Thomas Renninger1195a092010-07-16 13:11:31 +020061 Thus this option is a debug option that helps to write ACPI drivers
62 and can be used to identify ACPI code or EC firmware bugs.
63
Linus Torvalds1da177e2005-04-16 15:20:36 -070064config ACPI_AC
65 tristate "AC Adapter"
Alexey Starikovskiy5527c8b2007-10-29 17:08:59 -040066 depends on X86
Zhang Rui1b3d4c32010-10-08 13:54:57 +080067 select POWER_SUPPLY
Len Brown07fefe42005-08-25 12:22:04 -040068 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -070069 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070070 This driver supports the AC Adapter object, which indicates
71 whether a system is on AC or not. If you have a system that can
Len Brown07fefe42005-08-25 12:22:04 -040072 switch between A/C and battery, say Y.
Linus Torvalds1da177e2005-04-16 15:20:36 -070073
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070074 To compile this driver as a module, choose M here:
75 the module will be called ac.
76
Linus Torvalds1da177e2005-04-16 15:20:36 -070077config ACPI_BATTERY
78 tristate "Battery"
Alexey Starikovskiy5527c8b2007-10-29 17:08:59 -040079 depends on X86
Zhang Rui1b3d4c32010-10-08 13:54:57 +080080 select POWER_SUPPLY
Len Brown07fefe42005-08-25 12:22:04 -040081 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -070082 help
83 This driver adds support for battery information through
84 /proc/acpi/battery. If you have a mobile system with a battery,
85 say Y.
86
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070087 To compile this driver as a module, choose M here:
88 the module will be called battery.
89
Linus Torvalds1da177e2005-04-16 15:20:36 -070090config ACPI_BUTTON
91 tristate "Button"
Dmitry Torokhovc0968f02006-11-09 00:40:13 -050092 depends on INPUT
Len Brown07fefe42005-08-25 12:22:04 -040093 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -070094 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070095 This driver handles events on the power, sleep, and lid buttons.
Krzysztof Mazur7d13f942013-10-13 00:11:00 +020096 A daemon reads events from input devices or via netlink and
97 performs user-defined actions such as shutting down the system.
98 This is necessary for software-controlled poweroff.
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070099
100 To compile this driver as a module, choose M here:
101 the module will be called button.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700102
103config ACPI_VIDEO
104 tristate "Video"
Jean Delvare9f380fc2014-03-17 15:46:44 +0100105 depends on X86 && BACKLIGHT_CLASS_DEVICE
Andreas Herrmann03e2bf22007-09-17 23:41:05 +0200106 depends on INPUT
Zhang Rui63c4ec92008-04-21 16:07:13 +0800107 select THERMAL
Linus Torvalds1da177e2005-04-16 15:20:36 -0700108 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700109 This driver implements the ACPI Extensions For Display Adapters
Linus Torvalds1da177e2005-04-16 15:20:36 -0700110 for integrated graphics devices on motherboard, as specified in
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700111 ACPI 2.0 Specification, Appendix B. This supports basic operations
112 such as defining the video POST device, retrieving EDID information,
113 and setting up a video output.
114
115 To compile this driver as a module, choose M here:
116 the module will be called video.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700117
118config ACPI_FAN
119 tristate "Fan"
Zhang Rui63c4ec92008-04-21 16:07:13 +0800120 select THERMAL
Len Brown07fefe42005-08-25 12:22:04 -0400121 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700122 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700123 This driver supports ACPI fan devices, allowing user-mode
Linus Torvalds1da177e2005-04-16 15:20:36 -0700124 applications to perform basic fan control (on, off, status).
125
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700126 To compile this driver as a module, choose M here:
127 the module will be called fan.
128
Len Brownc8f7a622006-07-09 17:22:28 -0400129config ACPI_DOCK
Shaohua Li898b0542008-09-27 11:10:28 +0800130 bool "Dock"
Len Brownc8f7a622006-07-09 17:22:28 -0400131 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700132 This driver supports ACPI-controlled docking stations and removable
133 drive bays such as the IBM Ultrabay and the Dell Module Bay.
Kristen Carlson Accardi01b57e72006-10-20 14:30:25 -0700134
Linus Torvalds1da177e2005-04-16 15:20:36 -0700135config ACPI_PROCESSOR
136 tristate "Processor"
Zhang Rui63c4ec92008-04-21 16:07:13 +0800137 select THERMAL
Jean Delvarea4084c12010-10-10 14:54:52 +0200138 select CPU_IDLE
Len Brown07fefe42005-08-25 12:22:04 -0400139 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700140 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700141 This driver installs ACPI as the idle handler for Linux and uses
142 ACPI C2 and C3 processor states to save power on systems that
Len Brown07fefe42005-08-25 12:22:04 -0400143 support it. It is required by several flavors of cpufreq
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700144 performance-state drivers.
145
146 To compile this driver as a module, choose M here:
147 the module will be called processor.
Lv Zheng4b88e332013-09-13 13:14:51 +0800148
Zhao Yakuie92b2972010-12-08 10:10:18 +0800149config ACPI_IPMI
150 tristate "IPMI"
Lv Zheng4b88e332013-09-13 13:14:51 +0800151 depends on IPMI_SI
Zhao Yakuie92b2972010-12-08 10:10:18 +0800152 default n
153 help
154 This driver enables the ACPI to access the BMC controller. And it
155 uses the IPMI request/response message to communicate with BMC
156 controller, which can be found on on the server.
157
158 To compile this driver as a module, choose M here:
159 the module will be called as acpi_ipmi.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700160
161config ACPI_HOTPLUG_CPU
Adrian Bunkcbfc1ba2005-07-30 04:18:00 -0400162 bool
Kees Cookf756f282013-01-16 18:53:28 -0800163 depends on ACPI_PROCESSOR && HOTPLUG_CPU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700164 select ACPI_CONTAINER
Adrian Bunkcbfc1ba2005-07-30 04:18:00 -0400165 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700166
Shaohua Li8e0af512009-07-27 18:11:02 -0400167config ACPI_PROCESSOR_AGGREGATOR
168 tristate "Processor Aggregator"
169 depends on ACPI_PROCESSOR
Len Brownd91f79e2009-09-27 02:35:55 -0400170 depends on X86
Shaohua Li8e0af512009-07-27 18:11:02 -0400171 help
172 ACPI 4.0 defines processor Aggregator, which enables OS to perform
Jiri Slabyc4c4e2a2009-10-09 15:53:24 +0200173 specific processor configuration and control that applies to all
Shaohua Li8e0af512009-07-27 18:11:02 -0400174 processors in the platform. Currently only logical processor idling
175 is defined, which is to reduce power consumption. This driver
Jiri Slabyc4c4e2a2009-10-09 15:53:24 +0200176 supports the new device.
Shaohua Li8e0af512009-07-27 18:11:02 -0400177
Linus Torvalds1da177e2005-04-16 15:20:36 -0700178config ACPI_THERMAL
179 tristate "Thermal Zone"
180 depends on ACPI_PROCESSOR
Zhang Rui3f655ef2008-01-17 15:51:11 +0800181 select THERMAL
Len Brown07fefe42005-08-25 12:22:04 -0400182 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700183 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700184 This driver supports ACPI thermal zones. Most mobile and
Linus Torvalds1da177e2005-04-16 15:20:36 -0700185 some desktop systems support ACPI thermal zones. It is HIGHLY
186 recommended that this option be enabled, as your processor(s)
187 may be damaged without it.
188
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700189 To compile this driver as a module, choose M here:
190 the module will be called thermal.
191
Linus Torvalds1da177e2005-04-16 15:20:36 -0700192config ACPI_NUMA
193 bool "NUMA support"
194 depends on NUMA
Yasunori Goto762834e2006-06-23 02:03:19 -0700195 depends on (X86 || IA64)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700196 default y if IA64_GENERIC || IA64_SGI_SN2
197
Randy Dunlap7ce95732008-02-22 11:25:04 -0800198config ACPI_CUSTOM_DSDT_FILE
199 string "Custom DSDT Table file to include"
200 default ""
Linus Torvalds1da177e2005-04-16 15:20:36 -0700201 depends on !STANDALONE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700202 help
Len Brownd89e9d62008-02-06 19:28:02 -0500203 This option supports a custom DSDT by linking it into the kernel.
204 See Documentation/acpi/dsdt-override.txt
205
Uwe Zeisbergerc30fe7f2006-03-24 18:23:14 +0100206 Enter the full path name to the file which includes the AmlCode
207 declaration.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700208
Randy Dunlap7ce95732008-02-22 11:25:04 -0800209 If unsure, don't enter a file name.
210
211config ACPI_CUSTOM_DSDT
212 bool
213 default ACPI_CUSTOM_DSDT_FILE != ""
214
Thomas Renninger53aac442012-10-01 00:23:54 +0200215config ACPI_INITRD_TABLE_OVERRIDE
Thomas Renninger565d9562013-02-22 14:12:22 +0100216 bool "ACPI tables override via initrd"
217 depends on BLK_DEV_INITRD && X86
Thomas Renninger53aac442012-10-01 00:23:54 +0200218 default n
219 help
220 This option provides functionality to override arbitrary ACPI tables
221 via initrd. No functional change if no ACPI tables are passed via
222 initrd, therefore it's safe to say Y.
223 See Documentation/acpi/initrd_table_override.txt for details
224
Linus Torvalds1da177e2005-04-16 15:20:36 -0700225config ACPI_DEBUG
226 bool "Debug Statements"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700227 default n
228 help
Bjorn Helgaasa0d84a92008-11-07 16:58:05 -0700229 The ACPI subsystem can produce debug output. Saying Y enables this
230 output and increases the kernel size by around 50K.
231
232 Use the acpi.debug_layer and acpi.debug_level kernel command-line
233 parameters documented in Documentation/acpi/debug.txt and
234 Documentation/kernel-parameters.txt to control the type and
235 amount of debug output.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700236
Alex Chiang8344b562008-06-10 15:30:42 -0600237config ACPI_PCI_SLOT
Jiang Liuab1a2e02013-01-19 00:07:42 +0800238 bool "PCI slot detection driver"
Alex Chiang268a03a2009-06-17 19:03:57 -0600239 depends on SYSFS
Alex Chiang8344b562008-06-10 15:30:42 -0600240 default n
241 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700242 This driver creates entries in /sys/bus/pci/slots/ for all PCI
243 slots in the system. This can help correlate PCI bus addresses,
244 i.e., segment/bus/device/function tuples, with physical slots in
245 the system. If you are unsure, say N.
246
Linus Torvalds1da177e2005-04-16 15:20:36 -0700247config X86_PM_TIMER
David Rientjes6a108a12011-01-20 14:44:16 -0800248 bool "Power Management Timer Support" if EXPERT
Linus Torvalds1da177e2005-04-16 15:20:36 -0700249 depends on X86
Len Brown07fefe42005-08-25 12:22:04 -0400250 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700251 help
252 The Power Management Timer is available on all ACPI-capable,
253 in most cases even if ACPI is unusable or blacklisted.
254
Matt LaPlantec73a6682006-10-03 22:24:43 +0200255 This timing source is not affected by power management features
Linus Torvalds1da177e2005-04-16 15:20:36 -0700256 like aggressive processor idling, throttling, frequency and/or
257 voltage scaling, unlike the commonly used Time Stamp Counter
258 (TSC) timing source.
259
Andi Kleene78256b2006-02-26 04:18:37 +0100260 You should nearly always say Y here because many modern
261 systems require this timer.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700262
263config ACPI_CONTAINER
Linus Torvalds06991c22013-02-21 12:05:51 -0800264 bool "Container and Module Devices"
Paul Bolleea6a4582013-03-11 10:53:48 +0000265 default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU)
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700266 help
267 This driver supports ACPI Container and Module devices (IDs
268 ACPI0004, PNP0A05, and PNP0A06).
Keiichiro Tokunaga45b1b192005-03-02 00:00:00 -0500269
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700270 This helps support hotplug of nodes, CPUs, and memory.
271
272 To compile this driver as a module, choose M here:
273 the module will be called container.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700274
275config ACPI_HOTPLUG_MEMORY
Rafael J. Wysocki0a347642013-03-03 23:18:03 +0100276 bool "Memory Hotplug"
Yasunori Gotobc02af92006-06-27 02:53:30 -0700277 depends on MEMORY_HOTPLUG
Linus Torvalds1da177e2005-04-16 15:20:36 -0700278 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700279 This driver supports ACPI memory hotplug. The driver
280 fields notifications on ACPI memory devices (PNP0C80),
281 which represent memory ranges that may be onlined or
282 offlined during runtime.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700283
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700284 If your hardware and firmware do not support adding or
285 removing memory devices at runtime, you need not enable
286 this driver.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700287
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700288 To compile this driver as a module, choose M here:
289 the module will be called acpi_memhotplug.
Rich Townsend3f86b832006-07-01 11:36:54 -0400290
291config ACPI_SBS
Alexey Starikovskiy94f6c082007-09-26 19:43:48 +0400292 tristate "Smart Battery System"
Vladimir Lebedevb4150fc2007-03-19 17:45:50 +0300293 depends on X86
Zhang Rui1b3d4c32010-10-08 13:54:57 +0800294 select POWER_SUPPLY
Rich Townsend3f86b832006-07-01 11:36:54 -0400295 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700296 This driver supports the Smart Battery System, another
Alexey Starikovskiy94f6c082007-09-26 19:43:48 +0400297 type of access to battery information, found on some laptops.
Rich Townsend3f86b832006-07-01 11:36:54 -0400298
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700299 To compile this driver as a module, choose M here:
300 the modules will be called sbs and sbshc.
301
Huang Ying801eab82010-05-18 14:35:17 +0800302config ACPI_HED
303 tristate "Hardware Error Device"
304 help
305 This driver supports the Hardware Error Device (PNP0C33),
306 which is used to report some hardware errors notified via
307 SCI, mainly the corrected errors.
308
Thomas Renninger526b4af2011-05-26 12:26:24 +0200309config ACPI_CUSTOM_METHOD
310 tristate "Allow ACPI methods to be inserted/replaced at run time"
311 depends on DEBUG_FS
312 default n
313 help
Justin P. Mattockbd1b2a52012-01-03 08:49:48 -0800314 This debug facility allows ACPI AML methods to be inserted and/or
Thomas Renninger526b4af2011-05-26 12:26:24 +0200315 replaced without rebooting the system. For details refer to:
316 Documentation/acpi/method-customizing.txt.
317
318 NOTE: This option is security sensitive, because it allows arbitrary
319 kernel memory to be written to by root (uid=0) users, allowing them
320 to bypass certain security measures (e.g. if root is not allowed to
321 load additional kernel modules after boot, this feature may be used
322 to override that restriction).
323
Matthew Garrettd1ff4b12012-01-31 13:19:20 -0500324config ACPI_BGRT
Josh Triplett2223af32012-09-28 17:57:05 -0700325 bool "Boottime Graphics Resource Table support"
Tony Lucke66cd532013-04-03 13:17:20 +0200326 depends on EFI && X86
Matthew Garrettd1ff4b12012-01-31 13:19:20 -0500327 help
328 This driver adds support for exposing the ACPI Boottime Graphics
329 Resource Table, which allows the operating system to obtain
330 data from the firmware boot splash. It will appear under
331 /sys/firmware/acpi/bgrt/ .
332
Al Stoneaf1ae782014-01-17 11:51:30 -0700333config ACPI_REDUCED_HARDWARE_ONLY
334 bool "Hardware-reduced ACPI support only" if EXPERT
335 def_bool n
336 depends on ACPI
337 help
338 This config item changes the way the ACPI code is built. When this
339 option is selected, the kernel will use a specialized version of
340 ACPICA that ONLY supports the ACPI "reduced hardware" mode. The
341 resulting kernel will be smaller but it will also be restricted to
342 running in ACPI reduced hardware mode ONLY.
343
344 If you are unsure what to do, do not enable this option.
345
Huang Yinga643ce22010-05-18 14:35:12 +0800346source "drivers/acpi/apei/Kconfig"
347
Chen, Gong4b3db702013-10-21 14:29:25 -0700348config ACPI_EXTLOG
349 tristate "Extended Error Log support"
Luck, Tony9ebddac2013-11-08 14:03:33 -0800350 depends on X86_MCE && X86_LOCAL_APIC
Luck, Tony7ea6c6c2013-10-28 14:06:55 -0700351 select UEFI_CPER
Chen, Gong4b3db702013-10-21 14:29:25 -0700352 default n
353 help
354 Certain usages such as Predictive Failure Analysis (PFA) require
355 more information about the error than what can be described in
356 processor machine check banks. Most server processors log
357 additional information about the error in processor uncore
358 registers. Since the addresses and layout of these registers vary
359 widely from one processor to another, system software cannot
360 readily make use of them. To complicate matters further, some of
361 the additional error information cannot be constructed without
362 detailed knowledge about platform topology.
363
364 Enhanced MCA Logging allows firmware to provide additional error
365 information to system software, synchronous with MCE or CMCI. This
366 driver adds support for that functionality.
367
Linus Torvalds1da177e2005-04-16 15:20:36 -0700368endif # ACPI