config SUSPEND 
 | 
    bool "Suspend to RAM and standby" 
 | 
    depends on ARCH_SUSPEND_POSSIBLE 
 | 
    default y 
 | 
    ---help--- 
 | 
      Allow the system to enter sleep states in which main memory is 
 | 
      powered and thus its contents are preserved, such as the 
 | 
      suspend-to-RAM state (e.g. the ACPI S3 state). 
 | 
  
 | 
config SUSPEND_FREEZER 
 | 
    bool "Enable freezer for suspend to RAM/standby" \ 
 | 
        if ARCH_WANTS_FREEZER_CONTROL || BROKEN 
 | 
    depends on SUSPEND 
 | 
    default y 
 | 
    help 
 | 
      This allows you to turn off the freezer for suspend. If this is 
 | 
      done, no tasks are frozen for suspend to RAM/standby. 
 | 
  
 | 
      Turning OFF this setting is NOT recommended! If in doubt, say Y. 
 | 
  
 | 
config SUSPEND_SKIP_SYNC 
 | 
    bool "Skip kernel's sys_sync() on suspend to RAM/standby" 
 | 
    depends on SUSPEND 
 | 
    depends on EXPERT 
 | 
    help 
 | 
      Skip the kernel sys_sync() before freezing user processes. 
 | 
      Some systems prefer not to pay this cost on every invocation 
 | 
      of suspend, or they are content with invoking sync() from 
 | 
      user-space before invoking suspend.  Say Y if that's your case. 
 | 
  
 | 
config HAS_WAKELOCK 
 | 
    bool 
 | 
    default y 
 | 
  
 | 
config WAKELOCK 
 | 
    bool 
 | 
    default y 
 | 
  
 | 
config HIBERNATE_CALLBACKS 
 | 
    bool 
 | 
  
 | 
config HIBERNATION 
 | 
    bool "Hibernation (aka 'suspend to disk')" 
 | 
    depends on SWAP && ARCH_HIBERNATION_POSSIBLE 
 | 
    select HIBERNATE_CALLBACKS 
 | 
    select LZO_COMPRESS 
 | 
    select LZO_DECOMPRESS 
 | 
    select CRC32 
 | 
    ---help--- 
 | 
      Enable the suspend to disk (STD) functionality, which is usually 
 | 
      called "hibernation" in user interfaces.  STD checkpoints the 
 | 
      system and powers it off; and restores that checkpoint on reboot. 
 | 
  
 | 
      You can suspend your machine with 'echo disk > /sys/power/state' 
 | 
      after placing resume=/dev/swappartition on the kernel command line 
 | 
      in your bootloader's configuration file. 
 | 
  
 | 
      Alternatively, you can use the additional userland tools available 
 | 
      from <http://suspend.sf.net>. 
 | 
  
 | 
      In principle it does not require ACPI or APM, although for example 
 | 
      ACPI will be used for the final steps when it is available.  One 
 | 
      of the reasons to use software suspend is that the firmware hooks 
 | 
      for suspend states like suspend-to-RAM (STR) often don't work very 
 | 
      well with Linux. 
 | 
  
 | 
      It creates an image which is saved in your active swap. Upon the next 
 | 
      boot, pass the 'resume=/dev/swappartition' argument to the kernel to 
 | 
      have it detect the saved image, restore memory state from it, and 
 | 
      continue to run as before. If you do not want the previous state to 
 | 
      be reloaded, then use the 'noresume' kernel command line argument. 
 | 
      Note, however, that fsck will be run on your filesystems and you will 
 | 
      need to run mkswap against the swap partition used for the suspend. 
 | 
  
 | 
      It also works with swap files to a limited extent (for details see 
 | 
      <file:Documentation/power/swsusp-and-swap-files.txt>). 
 | 
  
 | 
      Right now you may boot without resuming and resume later but in the 
 | 
      meantime you cannot use the swap partition(s)/file(s) involved in 
 | 
      suspending.  Also in this case you must not use the filesystems 
 | 
      that were mounted before the suspend.  In particular, you MUST NOT 
 | 
      MOUNT any journaled filesystems mounted before the suspend or they 
 | 
      will get corrupted in a nasty way. 
 | 
  
 | 
      For more information take a look at <file:Documentation/power/swsusp.txt>. 
 | 
  
 | 
config ARCH_SAVE_PAGE_KEYS 
 | 
    bool 
 | 
  
 | 
config PM_STD_PARTITION 
 | 
    string "Default resume partition" 
 | 
    depends on HIBERNATION 
 | 
    default "" 
 | 
    ---help--- 
 | 
      The default resume partition is the partition that the suspend- 
 | 
      to-disk implementation will look for a suspended disk image.  
 | 
  
 | 
      The partition specified here will be different for almost every user.  
 | 
      It should be a valid swap partition (at least for now) that is turned 
 | 
      on before suspending.  
 | 
  
 | 
      The partition specified can be overridden by specifying: 
 | 
  
 | 
        resume=/dev/<other device>  
 | 
  
 | 
      which will set the resume partition to the device specified.  
 | 
  
 | 
      Note there is currently not a way to specify which device to save the 
 | 
      suspended image to. It will simply pick the first available swap  
 | 
      device. 
 | 
  
 | 
config PM_SLEEP 
 | 
    def_bool y 
 | 
    depends on SUSPEND || HIBERNATE_CALLBACKS 
 | 
    select PM 
 | 
    select SRCU 
 | 
  
 | 
config PM_SLEEP_SMP 
 | 
    def_bool y 
 | 
    depends on SMP 
 | 
    depends on ARCH_SUSPEND_POSSIBLE || ARCH_HIBERNATION_POSSIBLE 
 | 
    depends on PM_SLEEP 
 | 
    select HOTPLUG_CPU 
 | 
  
 | 
config PM_AUTOSLEEP 
 | 
    bool "Opportunistic sleep" 
 | 
    depends on PM_SLEEP 
 | 
    default n 
 | 
    ---help--- 
 | 
    Allow the kernel to trigger a system transition into a global sleep 
 | 
    state automatically whenever there are no active wakeup sources. 
 | 
  
 | 
config PM_WAKELOCKS 
 | 
    bool "User space wakeup sources interface" 
 | 
    depends on PM_SLEEP 
 | 
    default n 
 | 
    ---help--- 
 | 
    Allow user space to create, activate and deactivate wakeup source 
 | 
    objects with the help of a sysfs-based interface. 
 | 
  
 | 
config PM_WAKELOCKS_LIMIT 
 | 
    int "Maximum number of user space wakeup sources (0 = no limit)" 
 | 
    range 0 100000 
 | 
    default 100 
 | 
    depends on PM_WAKELOCKS 
 | 
  
 | 
config PM_WAKELOCKS_GC 
 | 
    bool "Garbage collector for user space wakeup sources" 
 | 
    depends on PM_WAKELOCKS 
 | 
    default y 
 | 
  
 | 
config PM 
 | 
    bool "Device power management core functionality" 
 | 
    ---help--- 
 | 
      Enable functionality allowing I/O devices to be put into energy-saving 
 | 
      (low power) states, for example after a specified period of inactivity 
 | 
      (autosuspended), and woken up in response to a hardware-generated 
 | 
      wake-up event or a driver's request. 
 | 
  
 | 
      Hardware support is generally required for this functionality to work 
 | 
      and the bus type drivers of the buses the devices are on are 
 | 
      responsible for the actual handling of device suspend requests and 
 | 
      wake-up events. 
 | 
  
 | 
config PM_DEBUG 
 | 
    bool "Power Management Debug Support" 
 | 
    depends on PM 
 | 
    ---help--- 
 | 
    This option enables various debugging support in the Power Management 
 | 
    code. This is helpful when debugging and reporting PM bugs, like 
 | 
    suspend support. 
 | 
  
 | 
config PM_ADVANCED_DEBUG 
 | 
    bool "Extra PM attributes in sysfs for low-level debugging/testing" 
 | 
    depends on PM_DEBUG 
 | 
    ---help--- 
 | 
    Add extra sysfs attributes allowing one to access some Power Management 
 | 
    fields of device objects from user space.  If you are not a kernel 
 | 
    developer interested in debugging/testing Power Management, say "no". 
 | 
  
 | 
config PM_TEST_SUSPEND 
 | 
    bool "Test suspend/resume and wakealarm during bootup" 
 | 
    depends on SUSPEND && PM_DEBUG && RTC_CLASS=y 
 | 
    ---help--- 
 | 
    This option will let you suspend your machine during bootup, and 
 | 
    make it wake up a few seconds later using an RTC wakeup alarm. 
 | 
    Enable this with a kernel parameter like "test_suspend=mem". 
 | 
  
 | 
    You probably want to have your system's RTC driver statically 
 | 
    linked, ensuring that it's available when this test runs. 
 | 
  
 | 
config PM_SLEEP_DEBUG 
 | 
    def_bool y 
 | 
    depends on PM_DEBUG && PM_SLEEP 
 | 
  
 | 
config DPM_WATCHDOG 
 | 
    bool "Device suspend/resume watchdog" 
 | 
    depends on PM_DEBUG && PSTORE && EXPERT 
 | 
    ---help--- 
 | 
      Sets up a watchdog timer to capture drivers that are 
 | 
      locked up attempting to suspend/resume a device. 
 | 
      A detected lockup causes system panic with message 
 | 
      captured in pstore device for inspection in subsequent 
 | 
      boot session. 
 | 
  
 | 
config DPM_WATCHDOG_TIMEOUT 
 | 
    int "Watchdog timeout in seconds" 
 | 
    range 1 120 
 | 
    default 120 
 | 
    depends on DPM_WATCHDOG 
 | 
  
 | 
config PM_TRACE 
 | 
    bool 
 | 
    help 
 | 
      This enables code to save the last PM event point across 
 | 
      reboot. The architecture needs to support this, x86 for 
 | 
      example does by saving things in the RTC, see below. 
 | 
  
 | 
      The architecture specific code must provide the extern 
 | 
      functions from <linux/resume-trace.h> as well as the 
 | 
      <asm/resume-trace.h> header with a TRACE_RESUME() macro. 
 | 
  
 | 
      The way the information is presented is architecture- 
 | 
      dependent, x86 will print the information during a 
 | 
      late_initcall. 
 | 
  
 | 
config PM_TRACE_RTC 
 | 
    bool "Suspend/resume event tracing" 
 | 
    depends on PM_SLEEP_DEBUG 
 | 
    depends on X86 
 | 
    select PM_TRACE 
 | 
    ---help--- 
 | 
    This enables some cheesy code to save the last PM event point in the 
 | 
    RTC across reboots, so that you can debug a machine that just hangs 
 | 
    during suspend (or more commonly, during resume). 
 | 
  
 | 
    To use this debugging feature you should attempt to suspend the 
 | 
    machine, reboot it and then run 
 | 
  
 | 
        dmesg -s 1000000 | grep 'hash matches' 
 | 
  
 | 
    CAUTION: this option will cause your machine's real-time clock to be 
 | 
    set to an invalid time after a resume. 
 | 
  
 | 
config APM_EMULATION 
 | 
    tristate "Advanced Power Management Emulation" 
 | 
    depends on SYS_SUPPORTS_APM_EMULATION 
 | 
    help 
 | 
      APM is a BIOS specification for saving power using several different 
 | 
      techniques. This is mostly useful for battery powered laptops with 
 | 
      APM compliant BIOSes. If you say Y here, the system time will be 
 | 
      reset after a RESUME operation, the /proc/apm device will provide 
 | 
      battery status information, and user-space programs will receive 
 | 
      notification of APM "events" (e.g. battery status change). 
 | 
  
 | 
      In order to use APM, you will need supporting software. For location 
 | 
      and more information, read <file:Documentation/power/apm-acpi.txt> 
 | 
      and the Battery Powered Linux mini-HOWTO, available from 
 | 
      <http://www.tldp.org/docs.html#howto>. 
 | 
  
 | 
      This driver does not spin down disk drives (see the hdparm(8) 
 | 
      manpage ("man 8 hdparm") for that), and it doesn't turn off 
 | 
      VESA-compliant "green" monitors. 
 | 
  
 | 
      Generally, if you don't have a battery in your machine, there isn't 
 | 
      much point in using this driver and you should say N. If you get 
 | 
      random kernel OOPSes or reboots that don't seem to be related to 
 | 
      anything, try disabling/enabling this option (or disabling/enabling 
 | 
      APM in your BIOS). 
 | 
  
 | 
config PM_CLK 
 | 
    def_bool y 
 | 
    depends on PM && HAVE_CLK 
 | 
  
 | 
config PM_GENERIC_DOMAINS 
 | 
    bool 
 | 
    depends on PM 
 | 
  
 | 
config WQ_POWER_EFFICIENT_DEFAULT 
 | 
    bool "Enable workqueue power-efficient mode by default" 
 | 
    depends on PM 
 | 
    default n 
 | 
    help 
 | 
      Per-cpu workqueues are generally preferred because they show 
 | 
      better performance thanks to cache locality; unfortunately, 
 | 
      per-cpu workqueues tend to be more power hungry than unbound 
 | 
      workqueues. 
 | 
  
 | 
      Enabling workqueue.power_efficient kernel parameter makes the 
 | 
      per-cpu workqueues which were observed to contribute 
 | 
      significantly to power consumption unbound, leading to measurably 
 | 
      lower power usage at the cost of small performance overhead. 
 | 
  
 | 
      This config option determines whether workqueue.power_efficient 
 | 
      is enabled by default. 
 | 
  
 | 
      If in doubt, say N. 
 | 
  
 | 
config PM_GENERIC_DOMAINS_SLEEP 
 | 
    def_bool y 
 | 
    depends on PM_SLEEP && PM_GENERIC_DOMAINS 
 | 
  
 | 
config PM_GENERIC_DOMAINS_OF 
 | 
    def_bool y 
 | 
    depends on PM_GENERIC_DOMAINS && OF 
 | 
  
 | 
config CPU_PM 
 | 
    bool 
 | 
  
 | 
config ENERGY_MODEL 
 | 
    bool "Energy Model for CPUs" 
 | 
    depends on SMP 
 | 
    depends on CPU_FREQ 
 | 
    default n 
 | 
    help 
 | 
      Several subsystems (thermal and/or the task scheduler for example) 
 | 
      can leverage information about the energy consumed by CPUs to make 
 | 
      smarter decisions. This config option enables the framework from 
 | 
      which subsystems can access the energy models. 
 | 
  
 | 
      The exact usage of the energy model is subsystem-dependent. 
 | 
  
 | 
      If in doubt, say N. 
 |