diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-16 18:12:34 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-05-16 18:12:34 -0400 |
| commit | d5fe85af85367d5892e4308f596de4e2a5fb9017 (patch) | |
| tree | 8f31a641a0e24c3ecb38dc1396665149ac4b4746 | |
| parent | 896821657479905b95d5193595b81679155ce199 (diff) | |
| parent | 49a9e4315d40e1ba1d3258ea33f3948254038455 (diff) | |
Merge tag 'pm+acpi-3.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
Pull power management and ACPI fixes from Rafael Wysocki:
- intel_pstate driver fixes and cleanups from Dirk Brandewie and Wei
Yongjun.
- cpufreq fixes related to ARM big.LITTLE support and the cpufreq-cpu0
driver from Viresh Kumar.
- Assorted cpufreq fixes from Srivatsa S Bhat, Borislav Petkov, Wolfram
Sang, Alexander Shiyan, and Nishanth Menon.
- Assorted ACPI fixes from Catalin Marinas, Lan Tianyu, Alex Hung,
Jan-Simon Möller, and Rafael J Wysocki.
- Fix for a kfree() under spinlock in the PM core from Shuah Khan.
- PM documentation updates from Borislav Petkov and Zhang Rui.
* tag 'pm+acpi-3.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (30 commits)
cpufreq: Preserve sysfs files across suspend/resume
ACPI / scan: Fix memory leak on acpi_scan_init_hotplug() error path
PM / hibernate: Correct documentation
PM / Documentation: remove inaccurate suspend/hibernate transition lantency statement
PM: Documentation update for freeze state
cpufreq / intel_pstate: use vzalloc() instead of vmalloc()/memset(0)
cpufreq, ondemand: Remove leftover debug line
PM: Avoid calling kfree() under spinlock in dev_pm_put_subsys_data()
cpufreq / kirkwood: don't check resource with devm_ioremap_resource
cpufreq / intel_pstate: remove #ifdef MODULE compile fence
cpufreq / intel_pstate: Remove idle mode PID
cpufreq / intel_pstate: fix ffmpeg regression
cpufreq / intel_pstate: use lowest requested max performance
cpufreq / intel_pstate: remove idle time and duration from sample and calculations
cpufreq: Fix incorrect dependecies for ARM SA11xx drivers
cpufreq: ARM big LITTLE: Fix Kconfig entries
cpufreq: cpufreq-cpu0: Free parent node for error cases
cpufreq: cpufreq-cpu0: defer probe when regulator is not ready
cpufreq: Issue CPUFREQ_GOV_POLICY_EXIT notifier before dropping policy refcount
cpufreq: governors: Fix CPUFREQ_GOV_POLICY_{INIT|EXIT} notifiers
...
26 files changed, 190 insertions, 195 deletions
diff --git a/Documentation/power/devices.txt b/Documentation/power/devices.txt index 504dfe4d52eb..a66c9821b5ce 100644 --- a/Documentation/power/devices.txt +++ b/Documentation/power/devices.txt | |||
| @@ -268,7 +268,7 @@ situations. | |||
| 268 | System Power Management Phases | 268 | System Power Management Phases |
| 269 | ------------------------------ | 269 | ------------------------------ |
| 270 | Suspending or resuming the system is done in several phases. Different phases | 270 | Suspending or resuming the system is done in several phases. Different phases |
| 271 | are used for standby or memory sleep states ("suspend-to-RAM") and the | 271 | are used for freeze, standby, and memory sleep states ("suspend-to-RAM") and the |
| 272 | hibernation state ("suspend-to-disk"). Each phase involves executing callbacks | 272 | hibernation state ("suspend-to-disk"). Each phase involves executing callbacks |
| 273 | for every device before the next phase begins. Not all busses or classes | 273 | for every device before the next phase begins. Not all busses or classes |
| 274 | support all these callbacks and not all drivers use all the callbacks. The | 274 | support all these callbacks and not all drivers use all the callbacks. The |
| @@ -309,7 +309,8 @@ execute the corresponding method from dev->driver->pm instead if there is one. | |||
| 309 | 309 | ||
| 310 | Entering System Suspend | 310 | Entering System Suspend |
| 311 | ----------------------- | 311 | ----------------------- |
| 312 | When the system goes into the standby or memory sleep state, the phases are: | 312 | When the system goes into the freeze, standby or memory sleep state, |
| 313 | the phases are: | ||
| 313 | 314 | ||
| 314 | prepare, suspend, suspend_late, suspend_noirq. | 315 | prepare, suspend, suspend_late, suspend_noirq. |
| 315 | 316 | ||
| @@ -368,7 +369,7 @@ the devices that were suspended. | |||
| 368 | 369 | ||
| 369 | Leaving System Suspend | 370 | Leaving System Suspend |
| 370 | ---------------------- | 371 | ---------------------- |
| 371 | When resuming from standby or memory sleep, the phases are: | 372 | When resuming from freeze, standby or memory sleep, the phases are: |
| 372 | 373 | ||
| 373 | resume_noirq, resume_early, resume, complete. | 374 | resume_noirq, resume_early, resume, complete. |
| 374 | 375 | ||
| @@ -433,8 +434,8 @@ the system log. | |||
| 433 | 434 | ||
| 434 | Entering Hibernation | 435 | Entering Hibernation |
| 435 | -------------------- | 436 | -------------------- |
| 436 | Hibernating the system is more complicated than putting it into the standby or | 437 | Hibernating the system is more complicated than putting it into the other |
| 437 | memory sleep state, because it involves creating and saving a system image. | 438 | sleep states, because it involves creating and saving a system image. |
| 438 | Therefore there are more phases for hibernation, with a different set of | 439 | Therefore there are more phases for hibernation, with a different set of |
| 439 | callbacks. These phases always run after tasks have been frozen and memory has | 440 | callbacks. These phases always run after tasks have been frozen and memory has |
| 440 | been freed. | 441 | been freed. |
| @@ -485,8 +486,8 @@ image forms an atomic snapshot of the system state. | |||
| 485 | 486 | ||
| 486 | At this point the system image is saved, and the devices then need to be | 487 | At this point the system image is saved, and the devices then need to be |
| 487 | prepared for the upcoming system shutdown. This is much like suspending them | 488 | prepared for the upcoming system shutdown. This is much like suspending them |
| 488 | before putting the system into the standby or memory sleep state, and the phases | 489 | before putting the system into the freeze, standby or memory sleep state, |
| 489 | are similar. | 490 | and the phases are similar. |
| 490 | 491 | ||
| 491 | 9. The prepare phase is discussed above. | 492 | 9. The prepare phase is discussed above. |
| 492 | 493 | ||
diff --git a/Documentation/power/interface.txt b/Documentation/power/interface.txt index c537834af005..f1f0f59a7c47 100644 --- a/Documentation/power/interface.txt +++ b/Documentation/power/interface.txt | |||
| @@ -7,8 +7,8 @@ running. The interface exists in /sys/power/ directory (assuming sysfs | |||
| 7 | is mounted at /sys). | 7 | is mounted at /sys). |
| 8 | 8 | ||
| 9 | /sys/power/state controls system power state. Reading from this file | 9 | /sys/power/state controls system power state. Reading from this file |
| 10 | returns what states are supported, which is hard-coded to 'standby' | 10 | returns what states are supported, which is hard-coded to 'freeze', |
| 11 | (Power-On Suspend), 'mem' (Suspend-to-RAM), and 'disk' | 11 | 'standby' (Power-On Suspend), 'mem' (Suspend-to-RAM), and 'disk' |
| 12 | (Suspend-to-Disk). | 12 | (Suspend-to-Disk). |
| 13 | 13 | ||
| 14 | Writing to this file one of those strings causes the system to | 14 | Writing to this file one of those strings causes the system to |
diff --git a/Documentation/power/notifiers.txt b/Documentation/power/notifiers.txt index c2a4a346c0d9..a81fa254303d 100644 --- a/Documentation/power/notifiers.txt +++ b/Documentation/power/notifiers.txt | |||
| @@ -15,8 +15,10 @@ A suspend/hibernation notifier may be used for this purpose. | |||
| 15 | The subsystems or drivers having such needs can register suspend notifiers that | 15 | The subsystems or drivers having such needs can register suspend notifiers that |
| 16 | will be called upon the following events by the PM core: | 16 | will be called upon the following events by the PM core: |
| 17 | 17 | ||
| 18 | PM_HIBERNATION_PREPARE The system is going to hibernate or suspend, tasks will | 18 | PM_HIBERNATION_PREPARE The system is going to hibernate, tasks will be frozen |
| 19 | be frozen immediately. | 19 | immediately. This is different from PM_SUSPEND_PREPARE |
| 20 | below because here we do additional work between notifiers | ||
| 21 | and drivers freezing. | ||
| 20 | 22 | ||
| 21 | PM_POST_HIBERNATION The system memory state has been restored from a | 23 | PM_POST_HIBERNATION The system memory state has been restored from a |
| 22 | hibernation image or an error occurred during | 24 | hibernation image or an error occurred during |
diff --git a/Documentation/power/states.txt b/Documentation/power/states.txt index 4416b28630df..442d43df9b25 100644 --- a/Documentation/power/states.txt +++ b/Documentation/power/states.txt | |||
| @@ -2,12 +2,26 @@ | |||
| 2 | System Power Management States | 2 | System Power Management States |
| 3 | 3 | ||
| 4 | 4 | ||
| 5 | The kernel supports three power management states generically, though | 5 | The kernel supports four power management states generically, though |
| 6 | each is dependent on platform support code to implement the low-level | 6 | one is generic and the other three are dependent on platform support |
| 7 | details for each state. This file describes each state, what they are | 7 | code to implement the low-level details for each state. |
| 8 | This file describes each state, what they are | ||
| 8 | commonly called, what ACPI state they map to, and what string to write | 9 | commonly called, what ACPI state they map to, and what string to write |
| 9 | to /sys/power/state to enter that state | 10 | to /sys/power/state to enter that state |
| 10 | 11 | ||
| 12 | state: Freeze / Low-Power Idle | ||
| 13 | ACPI state: S0 | ||
| 14 | String: "freeze" | ||
| 15 | |||
| 16 | This state is a generic, pure software, light-weight, low-power state. | ||
| 17 | It allows more energy to be saved relative to idle by freezing user | ||
| 18 | space and putting all I/O devices into low-power states (possibly | ||
| 19 | lower-power than available at run time), such that the processors can | ||
| 20 | spend more time in their idle states. | ||
| 21 | This state can be used for platforms without Standby/Suspend-to-RAM | ||
| 22 | support, or it can be used in addition to Suspend-to-RAM (memory sleep) | ||
| 23 | to provide reduced resume latency. | ||
| 24 | |||
| 11 | 25 | ||
| 12 | State: Standby / Power-On Suspend | 26 | State: Standby / Power-On Suspend |
| 13 | ACPI State: S1 | 27 | ACPI State: S1 |
| @@ -22,9 +36,6 @@ We try to put devices in a low-power state equivalent to D1, which | |||
| 22 | also offers low power savings, but low resume latency. Not all devices | 36 | also offers low power savings, but low resume latency. Not all devices |
| 23 | support D1, and those that don't are left on. | 37 | support D1, and those that don't are left on. |
| 24 | 38 | ||
| 25 | A transition from Standby to the On state should take about 1-2 | ||
| 26 | seconds. | ||
| 27 | |||
| 28 | 39 | ||
| 29 | State: Suspend-to-RAM | 40 | State: Suspend-to-RAM |
| 30 | ACPI State: S3 | 41 | ACPI State: S3 |
| @@ -42,9 +53,6 @@ transition back to the On state. | |||
| 42 | For at least ACPI, STR requires some minimal boot-strapping code to | 53 | For at least ACPI, STR requires some minimal boot-strapping code to |
| 43 | resume the system from STR. This may be true on other platforms. | 54 | resume the system from STR. This may be true on other platforms. |
| 44 | 55 | ||
| 45 | A transition from Suspend-to-RAM to the On state should take about | ||
| 46 | 3-5 seconds. | ||
| 47 | |||
| 48 | 56 | ||
| 49 | State: Suspend-to-disk | 57 | State: Suspend-to-disk |
| 50 | ACPI St | ||
