Thread (5 messages) 5 messages, 3 authors, 2016-11-21

[PATCH] PM / Domains: Fix compatible for domain idle state

flat view

From: Ulf Hansson <hidden>
Date: 2016-11-07 11:14:28
Also in: linux-arm-msm, linux-devicetree, linux-pm

On 3 November 2016 at 22:54, Lina Iyer [off-list ref] wrote:
quoted hunk ↗ jump to hunk
Re-using idle state definition provided by arm,idle-state for domain
idle states creates a lot of confusion and limits further evolution of
the domain idle definition. To keep things clear and simple, define a
idle states for domain using a new compatible "domain-idle-state".

Fix existing PM domains code to look for the newly defined compatible.

Cc: <redacted>
Cc: Rob Herring <robh@kernel.org>
Signed-off-by: Lina Iyer <redacted>
---
 .../bindings/power/domain-idle-state.txt           | 33 ++++++++++++++++++++++
 .../devicetree/bindings/power/power_domain.txt     |  8 +++---
 drivers/base/power/domain.c                        |  2 +-
 3 files changed, 38 insertions(+), 5 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/power/domain-idle-state.txt
diff --git a/Documentation/devicetree/bindings/power/domain-idle-state.txt b/Documentation/devicetree/bindings/power/domain-idle-state.txt
new file mode 100644
index 0000000..eefc7ed
--- /dev/null
+++ b/Documentation/devicetree/bindings/power/domain-idle-state.txt
@@ -0,0 +1,33 @@
+PM Domain Idle State Node:
+
+A domain idle state node represents the state parameters that will be used to
+select the state when there are no active components in the domain.
+
+The state node has the following parameters -
+
+- compatible:
+       Usage: Required
+       Value type: <string>
+       Definition: Must be "domain-idle-state".
+
+- entry-latency-us
+       Usage: Required
+       Value type: <prop-encoded-array>
+       Definition: u32 value representing worst case latency in
+                   microseconds required to enter the idle state.
+                   The exit-latency-us duration may be guaranteed
+                   only after entry-latency-us has passed.
As we anyway are going to change this, why not use an u64 and have the
value in ns instead of us?

That should give us better flexibility and I think this would also be
what Rob would recommend, if I remember earlier similar comments from
him.
quoted hunk ↗ jump to hunk
+
+- exit-latency-us
+       Usage: Required
+       Value type: <prop-encoded-array>
+       Definition: u32 value representing worst case latency
+                   in microseconds required to exit the idle state.
Ditto.
quoted hunk ↗ jump to hunk
+
+- min-residency-us
+       Usage: Required
+       Value type: <prop-encoded-array>
+       Definition: u32 value representing minimum residency duration
+                   in microseconds after which the idle state will yield
+                   power benefits after overcoming the overhead in entering
+i                  the idle state.
Ditto.
quoted hunk ↗ jump to hunk
diff --git a/Documentation/devicetree/bindings/power/power_domain.txt b/Documentation/devicetree/bindings/power/power_domain.txt
index e165036..723e1ad 100644
--- a/Documentation/devicetree/bindings/power/power_domain.txt
+++ b/Documentation/devicetree/bindings/power/power_domain.txt
@@ -31,7 +31,7 @@ Optional properties:

 - domain-idle-states : A phandle of an idle-state that shall be soaked into a
                 generic domain power state. The idle state definitions are
-                compatible with arm,idle-state specified in [1].
+                compatible with domain-idle-state specified in [1].
   The domain-idle-state property reflects the idle state of this PM domain and
   not the idle states of the devices or sub-domains in the PM domain. Devices
   and sub-domains have their own idle-states independent of the parent
@@ -85,7 +85,7 @@ Example 3:
        };

        DOMAIN_RET: state at 0 {
-               compatible = "arm,idle-state";
+               compatible = "domain-idle-state";
                reg = <0x0>;
                entry-latency-us = <1000>;
                exit-latency-us = <2000>;
@@ -93,7 +93,7 @@ Example 3:
        };

        DOMAIN_PWR_DN: state at 1 {
-               compatible = "arm,idle-state";
+               compatible = "domain-idle-state";
                reg = <0x1>;
                entry-latency-us = <5000>;
                exit-latency-us = <8000>;
@@ -118,4 +118,4 @@ The node above defines a typical PM domain consumer device, which is located
 inside a PM domain with index 0 of a power controller represented by a node
 with the label "power".

-[1]. Documentation/devicetree/bindings/arm/idle-states.txt
+[1]. Documentation/devicetree/bindings/power/domain-idle-state.txt
diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
index 661737c..f0bc672 100644
--- a/drivers/base/power/domain.c
+++ b/drivers/base/power/domain.c
@@ -2048,7 +2048,7 @@ int genpd_dev_pm_attach(struct device *dev)
 EXPORT_SYMBOL_GPL(genpd_dev_pm_attach);

 static const struct of_device_id idle_state_match[] = {
-       { .compatible = "arm,idle-state", },
+       { .compatible = "domain-idle-state", },
        { }
 };

--
2.7.4
Kind regards
Uffe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help