aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/power
diff options
context:
space:
mode:
authorRafael J. Wysocki <rjw@sisk.pl>2011-07-15 17:59:09 -0400
committerRafael J. Wysocki <rjw@sisk.pl>2011-07-15 17:59:09 -0400
commitba1389d74f34c0c6e95cc135a332cd29c29d9c20 (patch)
tree53813843d22cfcfe6d466a5daa44c646f8157980 /Documentation/power
parentf0c077a8b7f9dce590c760a7b2f3c417dffa52d1 (diff)
parent5ca80817e231723f1399bff495854ba2171103ca (diff)
Merge branch 'pm-domains' into for-linus
* pm-domains: (33 commits) ARM / shmobile: Return -EBUSY from A4LC power off if A3RV is active PM / Domains: Take .power_off() error code into account ARM / shmobile: Use genpd_queue_power_off_work() ARM / shmobile: Use pm_genpd_poweroff_unused() PM / Domains: Introduce function to power off all unused PM domains PM / Domains: Queue up power off work only if it is not pending PM / Domains: Improve handling of wakeup devices during system suspend PM / Domains: Do not restore all devices on power off error PM / Domains: Allow callbacks to execute all runtime PM helpers PM / Domains: Do not execute device callbacks under locks PM / Domains: Make failing pm_genpd_prepare() clean up properly PM / Domains: Set device state to "active" during system resume ARM: mach-shmobile: sh7372 A3RV requires A4LC PM / Domains: Export pm_genpd_poweron() in header ARM: mach-shmobile: sh7372 late pm domain off ARM: mach-shmobile: Runtime PM late init callback ARM: mach-shmobile: sh7372 D4 support ARM: mach-shmobile: sh7372 A4MP support ARM: mach-shmobile: sh7372: make sure that fsi is peripheral of spu2 ARM: mach-shmobile: sh7372 A3SG support ...
Diffstat (limited to 'Documentation/power')
-rw-r--r--Documentation/power/devices.txt8
-rw-r--r--Documentation/power/runtime_pm.txt32
2 files changed, 34 insertions, 6 deletions
diff --git a/Documentation/power/devices.txt b/Documentation/power/devices.txt
index 64565aac6e40..85c6f980b642 100644
--- a/Documentation/power/devices.txt
+++ b/Documentation/power/devices.txt
@@ -506,8 +506,8 @@ routines. Nevertheless, different callback pointers are used in case there is a
506situation where it actually matters. 506situation where it actually matters.
507 507
508 508
509Device Power Domains 509Device Power Management Domains
510-------------------- 510-------------------------------
511Sometimes devices share reference clocks or other power resources. In those 511Sometimes devices share reference clocks or other power resources. In those
512cases it generally is not possible to put devices into low-power states 512cases it generally is not possible to put devices into low-power states
513individually. Instead, a set of devices sharing a power resource can be put 513individually. Instead, a set of devices sharing a power resource can be put
@@ -516,8 +516,8 @@ power resource. Of course, they also need to be put into the full-power state
516together, by turning the shared power resource on. A set of devices with this 516together, by turning the shared power resource on. A set of devices with this
517property is often referred to as a power domain. 517property is often referred to as a power domain.
518 518
519Support for power domains is provided through the pwr_domain field of struct 519Support for power domains is provided through the pm_domain field of struct
520device. This field is a pointer to an object of type struct dev_power_domain, 520device. This field is a pointer to an object of type struct dev_pm_domain,
521defined in include/linux/pm.h, providing a set of power management callbacks 521defined in include/linux/pm.h, providing a set of power management callbacks
522analogous to the subsystem-level and device driver callbacks that are executed 522analogous to the subsystem-level and device driver callbacks that are executed
523for the given device during all power transitions, instead of the respective 523for the given device during all power transitions, instead of the respective
diff --git a/Documentation/power/runtime_pm.txt b/Documentation/power/runtime_pm.txt
index b24875b1ced5..4b011b171be4 100644
--- a/Documentation/power/runtime_pm.txt
+++ b/Documentation/power/runtime_pm.txt
@@ -606,32 +606,60 @@ driver/base/power/generic_ops.c:
606 callback provided by its driver and return its result, or return 0 if not 606 callback provided by its driver and return its result, or return 0 if not
607 defined 607 defined
608 608
609 int pm_generic_suspend_noirq(struct device *dev);
610 - if pm_runtime_suspended(dev) returns "false", invoke the ->suspend_noirq()
611 callback provided by the device's driver and return its result, or return
612 0 if not defined
613
609 int pm_generic_resume(struct device *dev); 614 int pm_generic_resume(struct device *dev);
610 - invoke the ->resume() callback provided by the driver of this device and, 615 - invoke the ->resume() callback provided by the driver of this device and,
611 if successful, change the device's runtime PM status to 'active' 616 if successful, change the device's runtime PM status to 'active'
612 617
618 int pm_generic_resume_noirq(struct device *dev);
619 - invoke the ->resume_noirq() callback provided by the driver of this device
620
613 int pm_generic_freeze(struct device *dev); 621 int pm_generic_freeze(struct device *dev);
614 - if the device has not been suspended at run time, invoke the ->freeze() 622 - if the device has not been suspended at run time, invoke the ->freeze()
615 callback provided by its driver and return its result, or return 0 if not 623 callback provided by its driver and return its result, or return 0 if not
616 defined 624 defined
617 625
626 int pm_generic_freeze_noirq(struct device *dev);
627 - if pm_runtime_suspended(dev) returns "false", invoke the ->freeze_noirq()
628 callback provided by the device's driver and return its result, or return
629 0 if not defined
630
618 int pm_generic_thaw(struct device *dev); 631 int pm_generic_thaw(struct device *dev);
619 - if the device has not been suspended at run time, invoke the ->thaw() 632 - if the device has not been suspended at run time, invoke the ->thaw()
620 callback provided by its driver and return its result, or return 0 if not 633 callback provided by its driver and return its result, or return 0 if not
621 defined 634 defined
622 635
636 int pm_generic_thaw_noirq(struct device *dev);
637 - if pm_runtime_suspended(dev) returns "false", invoke the ->thaw_noirq()
638 callback provided by the device's driver and return its result, or return
639 0 if not defined
640
623 int pm_generic_poweroff(struct device *dev); 641 int pm_generic_poweroff(struct device *dev);
624 - if the device has not been suspended at run time, invoke the ->poweroff() 642 - if the device has not been suspended at run time, invoke the ->poweroff()
625 callback provided by its driver and return its result, or return 0 if not 643 callback provided by its driver and return its result, or return 0 if not
626 defined 644 defined
627 645
646 int pm_generic_poweroff_noirq(struct device *dev);
647 - if pm_runtime_suspended(dev) returns "false", run the ->poweroff_noirq()
648 callback provided by the device's driver and return its result, or return
649 0 if not defined
650
628 int pm_generic_restore(struct device *dev); 651 int pm_generic_restore(struct device *dev);
629 - invoke the ->restore() callback provided by the driver of this device and, 652 - invoke the ->restore() callback provided by the driver of this device and,
630 if successful, change the device's runtime PM status to 'active' 653 if successful, change the device's runtime PM status to 'active'
631 654
655 int pm_generic_restore_noirq(struct device *dev);
656 - invoke the ->restore_noirq() callback provided by the device's driver
657
632These functions can be assigned to the ->runtime_idle(), ->runtime_suspend(), 658These functions can be assigned to the ->runtime_idle(), ->runtime_suspend(),
633->runtime_resume(), ->suspend(), ->resume(), ->freeze(), ->thaw(), ->poweroff(), 659->runtime_resume(), ->suspend(), ->suspend_noirq(), ->resume(),
634or ->restore() callback pointers in the subsystem-level dev_pm_ops structures. 660->resume_noirq(), ->freeze(), ->freeze_noirq(), ->thaw(), ->thaw_noirq(),
661->poweroff(), ->poweroff_noirq(), ->restore(), ->restore_noirq() callback
662pointers in the subsystem-level dev_pm_ops structures.
635 663
636If a subsystem wishes to use all of them at the same time, it can simply assign 664If a subsystem wishes to use all of them at the same time, it can simply assign
637the GENERIC_SUBSYS_PM_OPS macro, defined in include/linux/pm.h, to its 665the GENERIC_SUBSYS_PM_OPS macro, defined in include/linux/pm.h, to its