xref: /linux/kernel/power/Kconfig (revision c7276fde27bca89798f33c0be9543dc108468788)
11da177e4SLinus Torvaldsconfig PM
21da177e4SLinus Torvalds	bool "Power Management support"
3eb7b6b32SLen Brown	depends on !IA64_HP_SIM
41da177e4SLinus Torvalds	---help---
51da177e4SLinus Torvalds	  "Power Management" means that parts of your computer are shut
61da177e4SLinus Torvalds	  off or put into a power conserving "sleep" mode if they are not
71da177e4SLinus Torvalds	  being used.  There are two competing standards for doing this: APM
81da177e4SLinus Torvalds	  and ACPI.  If you want to use either one, say Y here and then also
91da177e4SLinus Torvalds	  to the requisite support below.
101da177e4SLinus Torvalds
111da177e4SLinus Torvalds	  Power Management is most important for battery powered laptop
121da177e4SLinus Torvalds	  computers; if you have a laptop, check out the Linux Laptop home
131da177e4SLinus Torvalds	  page on the WWW at <http://www.linux-on-laptops.com/> or
141da177e4SLinus Torvalds	  Tuxmobil - Linux on Mobile Computers at <http://www.tuxmobil.org/>
151da177e4SLinus Torvalds	  and the Battery Powered Linux mini-HOWTO, available from
161da177e4SLinus Torvalds	  <http://www.tldp.org/docs.html#howto>.
171da177e4SLinus Torvalds
181da177e4SLinus Torvalds	  Note that, even if you say N here, Linux on the x86 architecture
191da177e4SLinus Torvalds	  will issue the hlt instruction if nothing is to be done, thereby
201da177e4SLinus Torvalds	  sending the processor to sleep and saving power.
211da177e4SLinus Torvalds
22bca73e4bSJeff Garzikconfig PM_LEGACY
23f89bce3dSDavid Brownell	bool "Legacy Power Management API (DEPRECATED)"
24bca73e4bSJeff Garzik	depends on PM
25f89bce3dSDavid Brownell	default n
26bca73e4bSJeff Garzik	---help---
27f89bce3dSDavid Brownell	   Support for pm_register() and friends.  This old API is obsoleted
28f89bce3dSDavid Brownell	   by the driver model.
29bca73e4bSJeff Garzik
30f89bce3dSDavid Brownell	   If unsure, say N.
31bca73e4bSJeff Garzik
321da177e4SLinus Torvaldsconfig PM_DEBUG
331da177e4SLinus Torvalds	bool "Power Management Debug Support"
341da177e4SLinus Torvalds	depends on PM
351da177e4SLinus Torvalds	---help---
361da177e4SLinus Torvalds	This option enables verbose debugging support in the Power Management
371da177e4SLinus Torvalds	code. This is helpful when debugging and reporting various PM bugs,
381da177e4SLinus Torvalds	like suspend support.
391da177e4SLinus Torvalds
40c8eb8b40SRafael J. Wysockiconfig DISABLE_CONSOLE_SUSPEND
41c8eb8b40SRafael J. Wysocki	bool "Keep console(s) enabled during suspend/resume (DANGEROUS)"
42c8eb8b40SRafael J. Wysocki	depends on PM && PM_DEBUG
43c8eb8b40SRafael J. Wysocki	default n
44c8eb8b40SRafael J. Wysocki	---help---
45c8eb8b40SRafael J. Wysocki	This option turns off the console suspend mechanism that prevents
46c8eb8b40SRafael J. Wysocki	debug messages from reaching the console during the suspend/resume
47c8eb8b40SRafael J. Wysocki	operations.  This may be helpful when debugging device drivers'
48c8eb8b40SRafael J. Wysocki	suspend/resume routines, but may itself lead to problems, for example
49c8eb8b40SRafael J. Wysocki	if netconsole is used.
50c8eb8b40SRafael J. Wysocki
51eb71c87aSLinus Torvaldsconfig PM_TRACE
52eb71c87aSLinus Torvalds	bool "Suspend/resume event tracing"
535c31f273SAndrew Morton	depends on PM && PM_DEBUG && X86_32 && EXPERIMENTAL
545c31f273SAndrew Morton	default n
55eb71c87aSLinus Torvalds	---help---
56eb71c87aSLinus Torvalds	This enables some cheesy code to save the last PM event point in the
57eb71c87aSLinus Torvalds	RTC across reboots, so that you can debug a machine that just hangs
58eb71c87aSLinus Torvalds	during suspend (or more commonly, during resume).
59eb71c87aSLinus Torvalds
605c31f273SAndrew Morton	To use this debugging feature you should attempt to suspend the machine,
615c31f273SAndrew Morton	then reboot it, then run
625c31f273SAndrew Morton
635c31f273SAndrew Morton		dmesg -s 1000000 | grep 'hash matches'
645c31f273SAndrew Morton
655c31f273SAndrew Morton	CAUTION: this option will cause your machine's real-time clock to be
665c31f273SAndrew Morton	set to an invalid time after a resume.
675c31f273SAndrew Morton
682bca293eSDavid Brownellconfig PM_SYSFS_DEPRECATED
692bca293eSDavid Brownell	bool "Driver model /sys/devices/.../power/state files (DEPRECATED)"
702bca293eSDavid Brownell	depends on PM && SYSFS
712bca293eSDavid Brownell	default n
722bca293eSDavid Brownell	help
732bca293eSDavid Brownell	  The driver model started out with a sysfs file intended to provide
742bca293eSDavid Brownell	  a userspace hook for device power management.  This feature has never
752bca293eSDavid Brownell	  worked very well, except for limited testing purposes, and so it will
762bca293eSDavid Brownell	  be removed.   It's not clear that a generic mechanism could really
772bca293eSDavid Brownell	  handle the wide variability of device power states; any replacements
782bca293eSDavid Brownell	  are likely to be bus or driver specific.
795c31f273SAndrew Morton
801da177e4SLinus Torvaldsconfig SOFTWARE_SUSPEND
8119c32439SPavel Machek	bool "Software Suspend"
822d4a34c9SRafael J. Wysocki	depends on PM && SWAP && ((X86 && (!SMP || SUSPEND_SMP)) || ((FRV || PPC32) && !SMP))
831da177e4SLinus Torvalds	---help---
84*c7276fdeSRafael J. Wysocki	  Enable the suspend to disk (STD) functionality.
851da177e4SLinus Torvalds
86*c7276fdeSRafael J. Wysocki	  You can suspend your machine with 'echo disk > /sys/power/state'.
87*c7276fdeSRafael J. Wysocki	  Alternatively, you can use the additional userland tools available
88*c7276fdeSRafael J. Wysocki	  from <http://suspend.sf.net>.
89*c7276fdeSRafael J. Wysocki
90*c7276fdeSRafael J. Wysocki	  In principle it does not require ACPI or APM, although for example
91*c7276fdeSRafael J. Wysocki	  ACPI will be used if available.
92*c7276fdeSRafael J. Wysocki
93*c7276fdeSRafael J. Wysocki	  It creates an image which is saved in your active swap. Upon the next
941da177e4SLinus Torvalds	  boot, pass the 'resume=/dev/swappartition' argument to the kernel to
951da177e4SLinus Torvalds	  have it detect the saved image, restore memory state from it, and
961da177e4SLinus Torvalds	  continue to run as before. If you do not want the previous state to
97*c7276fdeSRafael J. Wysocki	  be reloaded, then use the 'noresume' kernel command line argument.
98*c7276fdeSRafael J. Wysocki	  Note, however, that fsck will be run on your filesystems and you will
99*c7276fdeSRafael J. Wysocki	  need to run mkswap against the swap partition used for the suspend.
1001da177e4SLinus Torvalds
101*c7276fdeSRafael J. Wysocki	  It also works with swap files to a limited extent (for details see
102*c7276fdeSRafael J. Wysocki	  <file:Documentation/power/swsusp-and-swap-files.txt>).
103*c7276fdeSRafael J. Wysocki
104*c7276fdeSRafael J. Wysocki	  Right now you may boot without resuming and resume later but in the
105*c7276fdeSRafael J. Wysocki	  meantime you cannot use the swap partition(s)/file(s) involved in
106*c7276fdeSRafael J. Wysocki	  suspending.  Also in this case you must not use the filesystems
107*c7276fdeSRafael J. Wysocki	  that were mounted before the suspend.  In particular, you MUST NOT
108*c7276fdeSRafael J. Wysocki	  MOUNT any journaled filesystems mounted before the suspend or they
109*c7276fdeSRafael J. Wysocki	  will get corrupted in a nasty way.
1101da177e4SLinus Torvalds
1111da177e4SLinus Torvalds	  For more information take a look at <file:Documentation/power/swsusp.txt>.
1121da177e4SLinus Torvalds
1131da177e4SLinus Torvaldsconfig PM_STD_PARTITION
1141da177e4SLinus Torvalds	string "Default resume partition"
1151da177e4SLinus Torvalds	depends on SOFTWARE_SUSPEND
1161da177e4SLinus Torvalds	default ""
1171da177e4SLinus Torvalds	---help---
1181da177e4SLinus Torvalds	  The default resume partition is the partition that the suspend-
1191da177e4SLinus Torvalds	  to-disk implementation will look for a suspended disk image.
1201da177e4SLinus Torvalds
1211da177e4SLinus Torvalds	  The partition specified here will be different for almost every user.
1221da177e4SLinus Torvalds	  It should be a valid swap partition (at least for now) that is turned
1231da177e4SLinus Torvalds	  on before suspending.
1241da177e4SLinus Torvalds
1251da177e4SLinus Torvalds	  The partition specified can be overridden by specifying:
1261da177e4SLinus Torvalds
1271da177e4SLinus Torvalds		resume=/dev/<other device>
1281da177e4SLinus Torvalds
1291da177e4SLinus Torvalds	  which will set the resume partition to the device specified.
1301da177e4SLinus Torvalds
1311da177e4SLinus Torvalds	  Note there is currently not a way to specify which device to save the
1321da177e4SLinus Torvalds	  suspended image to. It will simply pick the first available swap
1331da177e4SLinus Torvalds	  device.
1341da177e4SLinus Torvalds
1355a72e04dSLi Shaohuaconfig SUSPEND_SMP
1365a72e04dSLi Shaohua	bool
1375a72e04dSLi Shaohua	depends on HOTPLUG_CPU && X86 && PM
1385a72e04dSLi Shaohua	default y
1397726942fSRalf Baechle
1407726942fSRalf Baechleconfig APM_EMULATION
1417726942fSRalf Baechle	tristate "Advanced Power Management Emulation"
1427726942fSRalf Baechle	depends on PM && SYS_SUPPORTS_APM_EMULATION
1437726942fSRalf Baechle	help
1447726942fSRalf Baechle	  APM is a BIOS specification for saving power using several different
1457726942fSRalf Baechle	  techniques. This is mostly useful for battery powered laptops with
1467726942fSRalf Baechle	  APM compliant BIOSes. If you say Y here, the system time will be
1477726942fSRalf Baechle	  reset after a RESUME operation, the /proc/apm device will provide
1487726942fSRalf Baechle	  battery status information, and user-space programs will receive
1497726942fSRalf Baechle	  notification of APM "events" (e.g. battery status change).
1507726942fSRalf Baechle
1517726942fSRalf Baechle	  In order to use APM, you will need supporting software. For location
1527726942fSRalf Baechle	  and more information, read <file:Documentation/pm.txt> and the
1537726942fSRalf Baechle	  Battery Powered Linux mini-HOWTO, available from
1547726942fSRalf Baechle	  <http://www.tldp.org/docs.html#howto>.
1557726942fSRalf Baechle
1567726942fSRalf Baechle	  This driver does not spin down disk drives (see the hdparm(8)
1577726942fSRalf Baechle	  manpage ("man 8 hdparm") for that), and it doesn't turn off
1587726942fSRalf Baechle	  VESA-compliant "green" monitors.
1597726942fSRalf Baechle
1607726942fSRalf Baechle	  Generally, if you don't have a battery in your machine, there isn't
1617726942fSRalf Baechle	  much point in using this driver and you should say N. If you get
1627726942fSRalf Baechle	  random kernel OOPSes or reboots that don't seem to be related to
1637726942fSRalf Baechle	  anything, try disabling/enabling this option (or disabling/enabling
1647726942fSRalf Baechle	  APM in your BIOS).
165