blob: ab686b31010034083ba3b4784ba288fb93b3f554 [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
Hanjun Guoc7f52202014-04-08 20:59:48 +080034 ACPI is an open industry specification originally co-developed by
35 Hewlett-Packard, Intel, Microsoft, Phoenix, and Toshiba. Currently,
36 it is developed by the ACPI Specification Working Group (ASWG) under
37 the UEFI Forum and any UEFI member can join the ASWG and contribute
38 to the ACPI specification.
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070039 The specification is available at:
Linus Torvalds1da177e2005-04-16 15:20:36 -070040 <http://www.acpi.info>
Hanjun Guoc7f52202014-04-08 20:59:48 +080041 <http://www.uefi.org/acpi/specs>
Linus Torvalds1da177e2005-04-16 15:20:36 -070042
Len Brown3e11c3c2005-05-27 04:53:27 -040043if ACPI
44
Len Brown673d5b42007-07-28 03:33:16 -040045config ACPI_SLEEP
46 bool
Rafael J. Wysocki5d1e0722008-10-22 14:58:43 -040047 depends on SUSPEND || HIBERNATION
Len Brown673d5b42007-07-28 03:33:16 -040048 default y
49
Thomas Renninger1195a092010-07-16 13:11:31 +020050config ACPI_EC_DEBUGFS
51 tristate "EC read/write access through /sys/kernel/debug/ec"
Thomas Renninger500de3dd2010-07-29 22:30:24 +020052 default n
Thomas Renninger1195a092010-07-16 13:11:31 +020053 help
54 Say N to disable Embedded Controller /sys/kernel/debug interface
55
Thomas Renninger500de3dd2010-07-29 22:30:24 +020056 Be aware that using this interface can confuse your Embedded
57 Controller in a way that a normal reboot is not enough. You then
Andrea Gelmini25cb1bf2010-08-18 15:22:10 +020058 have to power off your system, and remove the laptop battery for
Thomas Renninger500de3dd2010-07-29 22:30:24 +020059 some seconds.
Thomas Renninger1195a092010-07-16 13:11:31 +020060 An Embedded Controller typically is available on laptops and reads
61 sensor values like battery state and temperature.
Thomas Renninger500de3dd2010-07-29 22:30:24 +020062 The kernel accesses the EC through ACPI parsed code provided by BIOS
63 tables. This option allows to access the EC directly without ACPI
64 code being involved.
Thomas Renninger1195a092010-07-16 13:11:31 +020065 Thus this option is a debug option that helps to write ACPI drivers
66 and can be used to identify ACPI code or EC firmware bugs.
67
Linus Torvalds1da177e2005-04-16 15:20:36 -070068config ACPI_AC
69 tristate "AC Adapter"
Alexey Starikovskiy5527c8b2007-10-29 17:08:59 -040070 depends on X86
Zhang Rui1b3d4c32010-10-08 13:54:57 +080071 select POWER_SUPPLY
Len Brown07fefe42005-08-25 12:22:04 -040072 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -070073 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070074 This driver supports the AC Adapter object, which indicates
75 whether a system is on AC or not. If you have a system that can
Len Brown07fefe42005-08-25 12:22:04 -040076 switch between A/C and battery, say Y.
Linus Torvalds1da177e2005-04-16 15:20:36 -070077
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070078 To compile this driver as a module, choose M here:
79 the module will be called ac.
80
Linus Torvalds1da177e2005-04-16 15:20:36 -070081config ACPI_BATTERY
82 tristate "Battery"
Alexey Starikovskiy5527c8b2007-10-29 17:08:59 -040083 depends on X86
Zhang Rui1b3d4c32010-10-08 13:54:57 +080084 select POWER_SUPPLY
Len Brown07fefe42005-08-25 12:22:04 -040085 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -070086 help
87 This driver adds support for battery information through
88 /proc/acpi/battery. If you have a mobile system with a battery,
89 say Y.
90
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070091 To compile this driver as a module, choose M here:
92 the module will be called battery.
93
Linus Torvalds1da177e2005-04-16 15:20:36 -070094config ACPI_BUTTON
95 tristate "Button"
Dmitry Torokhovc0968f02006-11-09 00:40:13 -050096 depends on INPUT
Len Brown07fefe42005-08-25 12:22:04 -040097 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -070098 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -070099 This driver handles events on the power, sleep, and lid buttons.
Krzysztof Mazur7d13f942013-10-13 00:11:00 +0200100 A daemon reads events from input devices or via netlink and
101 performs user-defined actions such as shutting down the system.
102 This is necessary for software-controlled poweroff.
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700103
104 To compile this driver as a module, choose M here:
105 the module will be called button.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700106
107config ACPI_VIDEO
108 tristate "Video"
Jean Delvare9f380fc2014-03-17 15:46:44 +0100109 depends on X86 && BACKLIGHT_CLASS_DEVICE
Andreas Herrmann03e2bf22007-09-17 23:41:05 +0200110 depends on INPUT
Zhang Rui63c4ec92008-04-21 16:07:13 +0800111 select THERMAL
Linus Torvalds1da177e2005-04-16 15:20:36 -0700112 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700113 This driver implements the ACPI Extensions For Display Adapters
Linus Torvalds1da177e2005-04-16 15:20:36 -0700114 for integrated graphics devices on motherboard, as specified in
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700115 ACPI 2.0 Specification, Appendix B. This supports basic operations
116 such as defining the video POST device, retrieving EDID information,
117 and setting up a video output.
118
119 To compile this driver as a module, choose M here:
120 the module will be called video.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700121
122config ACPI_FAN
123 tristate "Fan"
Zhang Rui63c4ec92008-04-21 16:07:13 +0800124 select THERMAL
Len Brown07fefe42005-08-25 12:22:04 -0400125 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700126 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700127 This driver supports ACPI fan devices, allowing user-mode
Linus Torvalds1da177e2005-04-16 15:20:36 -0700128 applications to perform basic fan control (on, off, status).
129
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700130 To compile this driver as a module, choose M here:
131 the module will be called fan.
132
Len Brownc8f7a622006-07-09 17:22:28 -0400133config ACPI_DOCK
Shaohua Li898b0542008-09-27 11:10:28 +0800134 bool "Dock"
Len Brownc8f7a622006-07-09 17:22:28 -0400135 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700136 This driver supports ACPI-controlled docking stations and removable
137 drive bays such as the IBM Ultrabay and the Dell Module Bay.
Kristen Carlson Accardi01b57e72006-10-20 14:30:25 -0700138
Linus Torvalds1da177e2005-04-16 15:20:36 -0700139config ACPI_PROCESSOR
140 tristate "Processor"
Zhang Rui63c4ec92008-04-21 16:07:13 +0800141 select THERMAL
Jean Delvarea4084c12010-10-10 14:54:52 +0200142 select CPU_IDLE
Len Brown07fefe42005-08-25 12:22:04 -0400143 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700144 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700145 This driver installs ACPI as the idle handler for Linux and uses
146 ACPI C2 and C3 processor states to save power on systems that
Len Brown07fefe42005-08-25 12:22:04 -0400147 support it. It is required by several flavors of cpufreq
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700148 performance-state drivers.
149
150 To compile this driver as a module, choose M here:
151 the module will be called processor.
Lv Zheng4b88e332013-09-13 13:14:51 +0800152
Zhao Yakuie92b2972010-12-08 10:10:18 +0800153config ACPI_IPMI
154 tristate "IPMI"
Lv Zheng4b88e332013-09-13 13:14:51 +0800155 depends on IPMI_SI
Zhao Yakuie92b2972010-12-08 10:10:18 +0800156 default n
157 help
158 This driver enables the ACPI to access the BMC controller. And it
159 uses the IPMI request/response message to communicate with BMC
160 controller, which can be found on on the server.
161
162 To compile this driver as a module, choose M here:
163 the module will be called as acpi_ipmi.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700164
165config ACPI_HOTPLUG_CPU
Adrian Bunkcbfc1ba2005-07-30 04:18:00 -0400166 bool
Kees Cookf756f282013-01-16 18:53:28 -0800167 depends on ACPI_PROCESSOR && HOTPLUG_CPU
Linus Torvalds1da177e2005-04-16 15:20:36 -0700168 select ACPI_CONTAINER
Adrian Bunkcbfc1ba2005-07-30 04:18:00 -0400169 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700170
Shaohua Li8e0af512009-07-27 18:11:02 -0400171config ACPI_PROCESSOR_AGGREGATOR
172 tristate "Processor Aggregator"
173 depends on ACPI_PROCESSOR
Len Brownd91f79e2009-09-27 02:35:55 -0400174 depends on X86
Shaohua Li8e0af512009-07-27 18:11:02 -0400175 help
176 ACPI 4.0 defines processor Aggregator, which enables OS to perform
Jiri Slabyc4c4e2a2009-10-09 15:53:24 +0200177 specific processor configuration and control that applies to all
Shaohua Li8e0af512009-07-27 18:11:02 -0400178 processors in the platform. Currently only logical processor idling
179 is defined, which is to reduce power consumption. This driver
Jiri Slabyc4c4e2a2009-10-09 15:53:24 +0200180 supports the new device.
Shaohua Li8e0af512009-07-27 18:11:02 -0400181
Linus Torvalds1da177e2005-04-16 15:20:36 -0700182config ACPI_THERMAL
183 tristate "Thermal Zone"
184 depends on ACPI_PROCESSOR
Zhang Rui3f655ef2008-01-17 15:51:11 +0800185 select THERMAL
Len Brown07fefe42005-08-25 12:22:04 -0400186 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700187 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700188 This driver supports ACPI thermal zones. Most mobile and
Linus Torvalds1da177e2005-04-16 15:20:36 -0700189 some desktop systems support ACPI thermal zones. It is HIGHLY
190 recommended that this option be enabled, as your processor(s)
191 may be damaged without it.
192
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700193 To compile this driver as a module, choose M here:
194 the module will be called thermal.
195
Linus Torvalds1da177e2005-04-16 15:20:36 -0700196config ACPI_NUMA
197 bool "NUMA support"
198 depends on NUMA
Yasunori Goto762834e2006-06-23 02:03:19 -0700199 depends on (X86 || IA64)
Linus Torvalds1da177e2005-04-16 15:20:36 -0700200 default y if IA64_GENERIC || IA64_SGI_SN2
201
Randy Dunlap7ce95732008-02-22 11:25:04 -0800202config ACPI_CUSTOM_DSDT_FILE
203 string "Custom DSDT Table file to include"
204 default ""
Linus Torvalds1da177e2005-04-16 15:20:36 -0700205 depends on !STANDALONE
Linus Torvalds1da177e2005-04-16 15:20:36 -0700206 help
Len Brownd89e9d62008-02-06 19:28:02 -0500207 This option supports a custom DSDT by linking it into the kernel.
208 See Documentation/acpi/dsdt-override.txt
209
Uwe Zeisbergerc30fe7f2006-03-24 18:23:14 +0100210 Enter the full path name to the file which includes the AmlCode
211 declaration.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700212
Randy Dunlap7ce95732008-02-22 11:25:04 -0800213 If unsure, don't enter a file name.
214
215config ACPI_CUSTOM_DSDT
216 bool
217 default ACPI_CUSTOM_DSDT_FILE != ""
218
Thomas Renninger53aac442012-10-01 00:23:54 +0200219config ACPI_INITRD_TABLE_OVERRIDE
Thomas Renninger565d9562013-02-22 14:12:22 +0100220 bool "ACPI tables override via initrd"
221 depends on BLK_DEV_INITRD && X86
Thomas Renninger53aac442012-10-01 00:23:54 +0200222 default n
223 help
224 This option provides functionality to override arbitrary ACPI tables
225 via initrd. No functional change if no ACPI tables are passed via
226 initrd, therefore it's safe to say Y.
227 See Documentation/acpi/initrd_table_override.txt for details
228
Linus Torvalds1da177e2005-04-16 15:20:36 -0700229config ACPI_DEBUG
230 bool "Debug Statements"
Linus Torvalds1da177e2005-04-16 15:20:36 -0700231 default n
232 help
Bjorn Helgaasa0d84a92008-11-07 16:58:05 -0700233 The ACPI subsystem can produce debug output. Saying Y enables this
234 output and increases the kernel size by around 50K.
235
236 Use the acpi.debug_layer and acpi.debug_level kernel command-line
237 parameters documented in Documentation/acpi/debug.txt and
238 Documentation/kernel-parameters.txt to control the type and
239 amount of debug output.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700240
Alex Chiang8344b562008-06-10 15:30:42 -0600241config ACPI_PCI_SLOT
Jiang Liuab1a2e02013-01-19 00:07:42 +0800242 bool "PCI slot detection driver"
Alex Chiang268a03a2009-06-17 19:03:57 -0600243 depends on SYSFS
Alex Chiang8344b562008-06-10 15:30:42 -0600244 default n
245 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700246 This driver creates entries in /sys/bus/pci/slots/ for all PCI
247 slots in the system. This can help correlate PCI bus addresses,
248 i.e., segment/bus/device/function tuples, with physical slots in
249 the system. If you are unsure, say N.
250
Linus Torvalds1da177e2005-04-16 15:20:36 -0700251config X86_PM_TIMER
David Rientjes6a108a12011-01-20 14:44:16 -0800252 bool "Power Management Timer Support" if EXPERT
Linus Torvalds1da177e2005-04-16 15:20:36 -0700253 depends on X86
Len Brown07fefe42005-08-25 12:22:04 -0400254 default y
Linus Torvalds1da177e2005-04-16 15:20:36 -0700255 help
256 The Power Management Timer is available on all ACPI-capable,
257 in most cases even if ACPI is unusable or blacklisted.
258
Matt LaPlantec73a6682006-10-03 22:24:43 +0200259 This timing source is not affected by power management features
Linus Torvalds1da177e2005-04-16 15:20:36 -0700260 like aggressive processor idling, throttling, frequency and/or
261 voltage scaling, unlike the commonly used Time Stamp Counter
262 (TSC) timing source.
263
Andi Kleene78256b2006-02-26 04:18:37 +0100264 You should nearly always say Y here because many modern
265 systems require this timer.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700266
267config ACPI_CONTAINER
Linus Torvalds06991c22013-02-21 12:05:51 -0800268 bool "Container and Module Devices"
Paul Bolleea6a4582013-03-11 10:53:48 +0000269 default (ACPI_HOTPLUG_MEMORY || ACPI_HOTPLUG_CPU)
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700270 help
271 This driver supports ACPI Container and Module devices (IDs
272 ACPI0004, PNP0A05, and PNP0A06).
Keiichiro Tokunaga45b1b192005-03-02 00:00:00 -0500273
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700274 This helps support hotplug of nodes, CPUs, and memory.
275
276 To compile this driver as a module, choose M here:
277 the module will be called container.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700278
279config ACPI_HOTPLUG_MEMORY
Rafael J. Wysocki0a347642013-03-03 23:18:03 +0100280 bool "Memory Hotplug"
Yasunori Gotobc02af92006-06-27 02:53:30 -0700281 depends on MEMORY_HOTPLUG
Linus Torvalds1da177e2005-04-16 15:20:36 -0700282 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700283 This driver supports ACPI memory hotplug. The driver
284 fields notifications on ACPI memory devices (PNP0C80),
285 which represent memory ranges that may be onlined or
286 offlined during runtime.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700287
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700288 If your hardware and firmware do not support adding or
289 removing memory devices at runtime, you need not enable
290 this driver.
Linus Torvalds1da177e2005-04-16 15:20:36 -0700291
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700292 To compile this driver as a module, choose M here:
293 the module will be called acpi_memhotplug.
Rich Townsend3f86b832006-07-01 11:36:54 -0400294
295config ACPI_SBS
Alexey Starikovskiy94f6c082007-09-26 19:43:48 +0400296 tristate "Smart Battery System"
Vladimir Lebedevb4150fc2007-03-19 17:45:50 +0300297 depends on X86
Zhang Rui1b3d4c32010-10-08 13:54:57 +0800298 select POWER_SUPPLY
Rich Townsend3f86b832006-07-01 11:36:54 -0400299 help
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700300 This driver supports the Smart Battery System, another
Alexey Starikovskiy94f6c082007-09-26 19:43:48 +0400301 type of access to battery information, found on some laptops.
Rich Townsend3f86b832006-07-01 11:36:54 -0400302
Bjorn Helgaas1c48aa32009-02-19 14:45:47 -0700303 To compile this driver as a module, choose M here:
304 the modules will be called sbs and sbshc.
305
Huang Ying801eab82010-05-18 14:35:17 +0800306config ACPI_HED
307 tristate "Hardware Error Device"
308 help
309 This driver supports the Hardware Error Device (PNP0C33),
310 which is used to report some hardware errors notified via
311 SCI, mainly the corrected errors.
312
Thomas Renninger526b4af2011-05-26 12:26:24 +0200313config ACPI_CUSTOM_METHOD
314 tristate "Allow ACPI methods to be inserted/replaced at run time"
315 depends on DEBUG_FS
316 default n
317 help
Justin P. Mattockbd1b2a52012-01-03 08:49:48 -0800318 This debug facility allows ACPI AML methods to be inserted and/or
Thomas Renninger526b4af2011-05-26 12:26:24 +0200319 replaced without rebooting the system. For details refer to:
320 Documentation/acpi/method-customizing.txt.
321
322 NOTE: This option is security sensitive, because it allows arbitrary
323 kernel memory to be written to by root (uid=0) users, allowing them
324 to bypass certain security measures (e.g. if root is not allowed to
325 load additional kernel modules after boot, this feature may be used
326 to override that restriction).
327
Matthew Garrettd1ff4b12012-01-31 13:19:20 -0500328config ACPI_BGRT
Josh Triplett2223af32012-09-28 17:57:05 -0700329 bool "Boottime Graphics Resource Table support"
Tony Lucke66cd532013-04-03 13:17:20 +0200330 depends on EFI && X86
Matthew Garrettd1ff4b12012-01-31 13:19:20 -0500331 help
332 This driver adds support for exposing the ACPI Boottime Graphics
333 Resource Table, which allows the operating system to obtain
334 data from the firmware boot splash. It will appear under
335 /sys/firmware/acpi/bgrt/ .
336
Al Stoneaf1ae782014-01-17 11:51:30 -0700337config ACPI_REDUCED_HARDWARE_ONLY
338 bool "Hardware-reduced ACPI support only" if EXPERT
339 def_bool n
340 depends on ACPI
341 help
342 This config item changes the way the ACPI code is built. When this
343 option is selected, the kernel will use a specialized version of
344 ACPICA that ONLY supports the ACPI "reduced hardware" mode. The
345 resulting kernel will be smaller but it will also be restricted to
346 running in ACPI reduced hardware mode ONLY.
347
348 If you are unsure what to do, do not enable this option.
349
Huang Yinga643ce22010-05-18 14:35:12 +0800350source "drivers/acpi/apei/Kconfig"
351
Chen, Gong4b3db702013-10-21 14:29:25 -0700352config ACPI_EXTLOG
353 tristate "Extended Error Log support"
Luck, Tony9ebddac2013-11-08 14:03:33 -0800354 depends on X86_MCE && X86_LOCAL_APIC
Luck, Tony7ea6c6c2013-10-28 14:06:55 -0700355 select UEFI_CPER
Chen, Gong4b3db702013-10-21 14:29:25 -0700356 default n
357 help
358 Certain usages such as Predictive Failure Analysis (PFA) require
359 more information about the error than what can be described in
360 processor machine check banks. Most server processors log
361 additional information about the error in processor uncore
362 registers. Since the addresses and layout of these registers vary
363 widely from one processor to another, system software cannot
364 readily make use of them. To complicate matters further, some of
365 the additional error information cannot be constructed without
366 detailed knowledge about platform topology.
367
368 Enhanced MCA Logging allows firmware to provide additional error
369 information to system software, synchronous with MCE or CMCI. This
370 driver adds support for that functionality.
371
Linus Torvalds1da177e2005-04-16 15:20:36 -0700372endif # ACPI