|
@@ -607,7 +607,9 @@ individually. Instead, a set of devices sharing a power resource can be put
|
|
|
into a low-power state together at the same time by turning off the shared
|
|
|
power resource. Of course, they also need to be put into the full-power state
|
|
|
together, by turning the shared power resource on. A set of devices with this
|
|
|
-property is often referred to as a power domain.
|
|
|
+property is often referred to as a power domain. A power domain may also be
|
|
|
+nested inside another power domain. The nested domain is referred to as the
|
|
|
+sub-domain of the parent domain.
|
|
|
|
|
|
Support for power domains is provided through the pm_domain field of struct
|
|
|
device. This field is a pointer to an object of type struct dev_pm_domain,
|
|
@@ -629,6 +631,16 @@ support for power domains into subsystem-level callbacks, for example by
|
|
|
modifying the platform bus type. Other platforms need not implement it or take
|
|
|
it into account in any way.
|
|
|
|
|
|
+Devices may be defined as IRQ-safe which indicates to the PM core that their
|
|
|
+runtime PM callbacks may be invoked with disabled interrupts (see
|
|
|
+Documentation/power/runtime_pm.txt for more information). If an IRQ-safe
|
|
|
+device belongs to a PM domain, the runtime PM of the domain will be
|
|
|
+disallowed, unless the domain itself is defined as IRQ-safe. However, it
|
|
|
+makes sense to define a PM domain as IRQ-safe only if all the devices in it
|
|
|
+are IRQ-safe. Moreover, if an IRQ-safe domain has a parent domain, the runtime
|
|
|
+PM of the parent is only allowed if the parent itself is IRQ-safe too with the
|
|
|
+additional restriction that all child domains of an IRQ-safe parent must also
|
|
|
+be IRQ-safe.
|
|
|
|
|
|
Device Low Power (suspend) States
|
|
|
---------------------------------
|