aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/power/runtime_pm.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/power/runtime_pm.txt')
-rw-r--r--Documentation/power/runtime_pm.txt27
1 files changed, 19 insertions, 8 deletions
diff --git a/Documentation/power/runtime_pm.txt b/Documentation/power/runtime_pm.txt
index 4b011b171be4..513c52ef5a42 100644
--- a/Documentation/power/runtime_pm.txt
+++ b/Documentation/power/runtime_pm.txt
@@ -553,9 +553,9 @@ suspend routine). It may be necessary to resume the device and suspend it again
553in order to do so. The same is true if the driver uses different power levels 553in order to do so. The same is true if the driver uses different power levels
554or other settings for run-time suspend and system sleep. 554or other settings for run-time suspend and system sleep.
555 555
556During system resume, devices generally should be brought back to full power, 556During system resume, the simplest approach is to bring all devices back to full
557even if they were suspended before the system sleep began. There are several 557power, even if they had been suspended before the system suspend began. There
558reasons for this, including: 558are several reasons for this, including:
559 559
560 * The device might need to switch power levels, wake-up settings, etc. 560 * The device might need to switch power levels, wake-up settings, etc.
561 561
@@ -572,16 +572,27 @@ reasons for this, including:
572 * Even though the device was suspended, if its usage counter was > 0 then most 572 * Even though the device was suspended, if its usage counter was > 0 then most
573 likely it would need a run-time resume in the near future anyway. 573 likely it would need a run-time resume in the near future anyway.
574 574
575 * Always going back to full power is simplest. 575If the device had been suspended before the system suspend began and it's
576 576brought back to full power during resume, then its run-time PM status will have
577If the device was suspended before the sleep began, then its run-time PM status 577to be updated to reflect the actual post-system sleep status. The way to do
578will have to be updated to reflect the actual post-system sleep status. The way 578this is:
579to do this is:
580 579
581 pm_runtime_disable(dev); 580 pm_runtime_disable(dev);
582 pm_runtime_set_active(dev); 581 pm_runtime_set_active(dev);
583 pm_runtime_enable(dev); 582 pm_runtime_enable(dev);
584 583
584On some systems, however, system sleep is not entered through a global firmware
585or hardware operation. Instead, all hardware components are put into low-power
586states directly by the kernel in a coordinated way. Then, the system sleep
587state effectively follows from the states the hardware components end up in
588and the system is woken up from that state by a hardware interrupt or a similar
589mechanism entirely under the kernel's control. As a result, the kernel never
590gives control away and the states of all devices during resume are precisely
591known to it. If that is the case and none of the situations listed above takes
592place (in particular, if the system is not waking up from hibernation), it may
593be more efficient to leave the devices that had been suspended before the system
594suspend began in the suspended state.
595
5857. Generic subsystem callbacks 5967. Generic subsystem callbacks
586 597
587Subsystems may wish to conserve code space by using the set of generic power 598Subsystems may wish to conserve code space by using the set of generic power