PM: Introduce core framework for run-time PM of I/O devices (rev. 17)
[linux-2.6.git] / kernel / power / Kconfig
index 06a08f7..91e09d3 100644 (file)
@@ -19,16 +19,6 @@ config PM
          will issue the hlt instruction if nothing is to be done, thereby
          sending the processor to sleep and saving power.
 
-config PM_LEGACY
-       bool "Legacy Power Management API (DEPRECATED)"
-       depends on PM
-       default n
-       ---help---
-          Support for pm_register() and friends.  This old API is obsoleted
-          by the driver model.
-
-          If unsure, say N.
-
 config PM_DEBUG
        bool "Power Management Debug Support"
        depends on PM
@@ -74,8 +64,8 @@ config PM_TRACE_RTC
        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,
-       then reboot it, then run
+       To use this debugging feature you should attempt to suspend the
+       machine, reboot it and then run
 
                dmesg -s 1000000 | grep 'hash matches'
 
@@ -84,62 +74,64 @@ config PM_TRACE_RTC
 
 config PM_SLEEP_SMP
        bool
-       depends on SUSPEND_SMP_POSSIBLE || HIBERNATION_SMP_POSSIBLE
+       depends on SMP
+       depends on ARCH_SUSPEND_POSSIBLE || ARCH_HIBERNATION_POSSIBLE
        depends on PM_SLEEP
        select HOTPLUG_CPU
        default y
 
 config PM_SLEEP
        bool
-       depends on SUSPEND || HIBERNATION
-       default y
-
-config SUSPEND_UP_POSSIBLE
-       bool
-       depends on (X86 && !X86_VOYAGER) || PPC || ARM || BLACKFIN || MIPS \
-                  || SUPERH || FRV
-       depends on !SMP
-       default y
-
-config SUSPEND_SMP_POSSIBLE
-       bool
-       depends on (X86 && !X86_VOYAGER) \
-                  || (PPC && (PPC_PSERIES || PPC_PMAC)) || ARM
-       depends on SMP
+       depends on SUSPEND || HIBERNATION || XEN_SAVE_RESTORE
        default y
 
 config SUSPEND
        bool "Suspend to RAM and standby"
-       depends on PM
-       depends on SUSPEND_UP_POSSIBLE || SUSPEND_SMP_POSSIBLE
+       depends on PM && 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 (i.e. the ACPI S3 state).
+         suspend-to-RAM state (e.g. the ACPI S3 state).
 
-config HIBERNATION_UP_POSSIBLE
-       bool
-       depends on X86 || PPC64_SWSUSP || PPC32
-       depends on !SMP
+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 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 HIBERNATION_SMP_POSSIBLE
+config HIBERNATION_NVS
        bool
-       depends on (X86 && !X86_VOYAGER) || PPC64_SWSUSP
-       depends on SMP
-       default y
 
 config HIBERNATION
        bool "Hibernation (aka 'suspend to disk')"
-       depends on PM && SWAP
-       depends on HIBERNATION_UP_POSSIBLE || HIBERNATION_SMP_POSSIBLE
+       depends on PM && SWAP && ARCH_HIBERNATION_POSSIBLE
+       select HIBERNATION_NVS if HAS_IOMEM
        ---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'.
+         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>.
 
@@ -203,7 +195,7 @@ config APM_EMULATION
          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/pm.txt> and the
+         and more information, read <file:Documentation/power/pm.txt> and the
          Battery Powered Linux mini-HOWTO, available from
          <http://www.tldp.org/docs.html#howto>.
 
@@ -216,3 +208,17 @@ config APM_EMULATION
          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_RUNTIME
+       bool "Run-time PM core functionality"
+       depends on PM
+       ---help---
+         Enable functionality allowing I/O devices to be put into energy-saving
+         (low power) states at run time (or autosuspended) after a specified
+         period of inactivity 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 the autosuspend requests and
+         wake-up events.