diff options
author | Rafael J. Wysocki <rjw@sisk.pl> | 2011-07-01 16:12:59 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rjw@sisk.pl> | 2011-07-02 08:29:55 -0400 |
commit | e5291928839877f8e73c2643ee1d3fe0bcdcaf5c (patch) | |
tree | df733cad71610a2f5ce283dcca5f2ad1d83bdf1f /Documentation | |
parent | f721889ff65afa6243c463832c74dee3bed418d5 (diff) |
PM: Introduce generic "noirq" callback routines for subsystems (v2)
Introduce generic "noirq" power management callback routines for
subsystems in addition to the "regular" generic PM callback routines.
The new routines will be used, among other things, for implementing
system-wide PM transitions support for generic PM domains.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/power/runtime_pm.txt | 32 |
1 files changed, 30 insertions, 2 deletions
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 | |||
632 | These functions can be assigned to the ->runtime_idle(), ->runtime_suspend(), | 658 | These 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(), |
634 | or ->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 | ||
662 | pointers in the subsystem-level dev_pm_ops structures. | ||
635 | 663 | ||
636 | If a subsystem wishes to use all of them at the same time, it can simply assign | 664 | If a subsystem wishes to use all of them at the same time, it can simply assign |
637 | the GENERIC_SUBSYS_PM_OPS macro, defined in include/linux/pm.h, to its | 665 | the GENERIC_SUBSYS_PM_OPS macro, defined in include/linux/pm.h, to its |