1config SUSPEND
   2        bool "Suspend to RAM and standby"
   3        depends on ARCH_SUSPEND_POSSIBLE
   4        default y
   5        ---help---
   6          Allow the system to enter sleep states in which main memory is
   7          powered and thus its contents are preserved, such as the
   8          suspend-to-RAM state (e.g. the ACPI S3 state).
  11        bool "Enable freezer for suspend to RAM/standby" \
  12                if ARCH_WANTS_FREEZER_CONTROL || BROKEN
  13        depends on SUSPEND
  14        default y
  15        help
  16          This allows you to turn off the freezer for suspend. If this is
  17          done, no tasks are frozen for suspend to RAM/standby.
  19          Turning OFF this setting is NOT recommended! If in doubt, say Y.
  22        bool
  24config HIBERNATION
  25        bool "Hibernation (aka 'suspend to disk')"
  26        depends on SWAP && ARCH_HIBERNATION_POSSIBLE
  27        select HIBERNATE_CALLBACKS
  28        select LZO_COMPRESS
  29        select LZO_DECOMPRESS
  30        select CRC32
  31        ---help---
  32          Enable the suspend to disk (STD) functionality, which is usually
  33          called "hibernation" in user interfaces.  STD checkpoints the
  34          system and powers it off; and restores that checkpoint on reboot.
  36          You can suspend your machine with 'echo disk > /sys/power/state'
  37          after placing resume=/dev/swappartition on the kernel command line
  38          in your bootloader's configuration file.
  40          Alternatively, you can use the additional userland tools available
  41          from <>.
  43          In principle it does not require ACPI or APM, although for example
  44          ACPI will be used for the final steps when it is available.  One
  45          of the reasons to use software suspend is that the firmware hooks
  46          for suspend states like suspend-to-RAM (STR) often don't work very
  47          well with Linux.
  49          It creates an image which is saved in your active swap. Upon the next
  50          boot, pass the 'resume=/dev/swappartition' argument to the kernel to
  51          have it detect the saved image, restore memory state from it, and
  52          continue to run as before. If you do not want the previous state to
  53          be reloaded, then use the 'noresume' kernel command line argument.
  54          Note, however, that fsck will be run on your filesystems and you will
  55          need to run mkswap against the swap partition used for the suspend.
  57          It also works with swap files to a limited extent (for details see
  58          <file:Documentation/power/swsusp-and-swap-files.txt>).
  60          Right now you may boot without resuming and resume later but in the
  61          meantime you cannot use the swap partition(s)/file(s) involved in
  62          suspending.  Also in this case you must not use the filesystems
  63          that were mounted before the suspend.  In particular, you MUST NOT
  64          MOUNT any journaled filesystems mounted before the suspend or they
  65          will get corrupted in a nasty way.
  67          For more information take a look at <file:Documentation/power/swsusp.txt>.
  70        bool
  73        string "Default resume partition"
  74        depends on HIBERNATION
  75        default ""
  76        ---help---
  77          The default resume partition is the partition that the suspend-
  78          to-disk implementation will look for a suspended disk image. 
  80          The partition specified here will be different for almost every user. 
  81          It should be a valid swap partition (at least for now) that is turned
  82          on before suspending. 
  84          The partition specified can be overridden by specifying:
  86                resume=/dev/<other device> 
  88          which will set the resume partition to the device specified. 
  90          Note there is currently not a way to specify which device to save the
  91          suspended image to. It will simply pick the first available swap 
  92          device.
  94config PM_SLEEP
  95        def_bool y
  96        depends on SUSPEND || HIBERNATE_CALLBACKS
  98config PM_SLEEP_SMP
  99        def_bool y
 100        depends on SMP
 102        depends on PM_SLEEP
 103        select HOTPLUG
 104        select HOTPLUG_CPU
 106config PM_AUTOSLEEP
 107        bool "Opportunistic sleep"
 108        depends on PM_SLEEP
 109        default n
 110        ---help---
 111        Allow the kernel to trigger a system transition into a global sleep
 112        state automatically whenever there are no active wakeup sources.
 114config PM_WAKELOCKS
 115        bool "User space wakeup sources interface"
 116        depends on PM_SLEEP
 117        default n
 118        ---help---
 119        Allow user space to create, activate and deactivate wakeup source
 120        objects with the help of a sysfs-based interface.
 123        int "Maximum number of user space wakeup sources (0 = no limit)"
 124        range 0 100000
 125        default 100
 126        depends on PM_WAKELOCKS
 128config PM_WAKELOCKS_GC
 129        bool "Garbage collector for user space wakeup sources"
 130        depends on PM_WAKELOCKS
 131        default y
 133config PM_RUNTIME
 134        bool "Run-time PM core functionality"
 135        depends on !IA64_HP_SIM
 136        ---help---
 137          Enable functionality allowing I/O devices to be put into energy-saving
 138          (low power) states at run time (or autosuspended) after a specified
 139          period of inactivity and woken up in response to a hardware-generated
 140          wake-up event or a driver's request.
 142          Hardware support is generally required for this functionality to work
 143          and the bus type drivers of the buses the devices are on are
 144          responsible for the actual handling of the autosuspend requests and
 145          wake-up events.
 147config PM
 148        def_bool y
 149        depends on PM_SLEEP || PM_RUNTIME
 151config PM_DEBUG
 152        bool "Power Management Debug Support"
 153        depends on PM
 154        ---help---
 155        This option enables various debugging support in the Power Management
 156        code. This is helpful when debugging and reporting PM bugs, like
 157        suspend support.
 160        bool "Extra PM attributes in sysfs for low-level debugging/testing"
 161        depends on PM_DEBUG
 162        ---help---
 163        Add extra sysfs attributes allowing one to access some Power Management
 164        fields of device objects from user space.  If you are not a kernel
 165        developer interested in debugging/testing Power Management, say "no".
 167config PM_TEST_SUSPEND
 168        bool "Test suspend/resume and wakealarm during bootup"
 169        depends on SUSPEND && PM_DEBUG && RTC_CLASS=y
 170        ---help---
 171        This option will let you suspend your machine during bootup, and
 172        make it wake up a few seconds later using an RTC wakeup alarm.
 173        Enable this with a kernel parameter like "test_suspend=mem".
 175        You probably want to have your system's RTC driver statically
 176        linked, ensuring that it's available when this test runs.
 178config PM_SLEEP_DEBUG
 179        def_bool y
 180        depends on PM_DEBUG && PM_SLEEP
 182config PM_TRACE
 183        bool
 184        help
 185          This enables code to save the last PM event point across
 186          reboot. The architecture needs to support this, x86 for
 187          example does by saving things in the RTC, see below.
 189          The architecture specific code must provide the extern
 190          functions from <linux/resume-trace.h> as well as the
 191          <asm/resume-trace.h> header with a TRACE_RESUME() macro.
 193          The way the information is presented is architecture-
 194          dependent, x86 will print the information during a
 195          late_initcall.
 197config PM_TRACE_RTC
 198        bool "Suspend/resume event tracing"
 199        depends on PM_SLEEP_DEBUG
 200        depends on X86
 201        select PM_TRACE
 202        ---help---
 203        This enables some cheesy code to save the last PM event point in the
 204        RTC across reboots, so that you can debug a machine that just hangs
 205        during suspend (or more commonly, during resume).
 207        To use this debugging feature you should attempt to suspend the
 208        machine, reboot it and then run
 210                dmesg -s 1000000 | grep 'hash matches'
 212        CAUTION: this option will cause your machine's real-time clock to be
 213        set to an invalid time after a resume.
 215config APM_EMULATION
 216        tristate "Advanced Power Management Emulation"
 217        depends on PM && SYS_SUPPORTS_APM_EMULATION
 218        help
 219          APM is a BIOS specification for saving power using several different
 220          techniques. This is mostly useful for battery powered laptops with
 221          APM compliant BIOSes. If you say Y here, the system time will be
 222          reset after a RESUME operation, the /proc/apm device will provide
 223          battery status information, and user-space programs will receive
 224          notification of APM "events" (e.g. battery status change).
 226          In order to use APM, you will need supporting software. For location
 227          and more information, read <file:Documentation/power/apm-acpi.txt>
 228          and the Battery Powered Linux mini-HOWTO, available from
 229          <>.
 231          This driver does not spin down disk drives (see the hdparm(8)
 232          manpage ("man 8 hdparm") for that), and it doesn't turn off
 233          VESA-compliant "green" monitors.
 235          Generally, if you don't have a battery in your machine, there isn't
 236          much point in using this driver and you should say N. If you get
 237          random kernel OOPSes or reboots that don't seem to be related to
 238          anything, try disabling/enabling this option (or disabling/enabling
 239          APM in your BIOS).
 241config ARCH_HAS_OPP
 242        bool
 244config PM_OPP
 245        bool "Operating Performance Point (OPP) Layer library"
 246        depends on ARCH_HAS_OPP
 247        ---help---
 248          SOCs have a standard set of tuples consisting of frequency and
 249          voltage pairs that the device will support per voltage domain. This
 250          is called Operating Performance Point or OPP. The actual definitions
 251          of OPP varies over silicon within the same family of devices.
 253          OPP layer organizes the data internally using device pointers
 254          representing individual voltage domains and provides SOC
 255          implementations a ready to use framework to manage OPPs.
 256          For more information, read <file:Documentation/power/opp.txt>
 258config PM_CLK
 259        def_bool y
 260        depends on PM && HAVE_CLK
 263        bool
 264        depends on PM
 267        def_bool y
 268        depends on PM_RUNTIME && PM_GENERIC_DOMAINS
 270config CPU_PM
 271        bool
 272        depends on SUSPEND || CPU_IDLE
 273 kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.