diff mbox series

[v10,07/27] cpuidle: dt: Support hierarchical CPU idle states

Message ID 20181129174700.16585-8-ulf.hansson@linaro.org
State Superseded
Headers show
Series PM / Domains: Support hierarchical CPU arrangement (PSCI/ARM) | expand

Commit Message

Ulf Hansson Nov. 29, 2018, 5:46 p.m. UTC
From: Lina Iyer <lina.iyer@linaro.org>


Currently CPU's idle states are represented in a flattened model, via the
"cpu-idle-states" binding from within the CPU's device nodes.

Support the hierarchical layout during parsing and validating of the CPU's
idle states. This is simply done by calling the new OF helper,
of_get_cpu_state_node().

Cc: Lina Iyer <ilina@codeaurora.org>
Suggested-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Lina Iyer <lina.iyer@linaro.org>

Co-developed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

---

Changes in v10:
	- None.

---
 drivers/cpuidle/dt_idle_states.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

-- 
2.17.1

Comments

Daniel Lezcano Dec. 19, 2018, 11:20 a.m. UTC | #1
On 29/11/2018 18:46, Ulf Hansson wrote:
> From: Lina Iyer <lina.iyer@linaro.org>

> 

> Currently CPU's idle states are represented in a flattened model, via the

> "cpu-idle-states" binding from within the CPU's device nodes.

> 

> Support the hierarchical layout during parsing and validating of the CPU's

> idle states. This is simply done by calling the new OF helper,

> of_get_cpu_state_node().

> 

> Cc: Lina Iyer <ilina@codeaurora.org>

> Suggested-by: Sudeep Holla <sudeep.holla@arm.com>

> Signed-off-by: Lina Iyer <lina.iyer@linaro.org>

> Co-developed-by: Ulf Hansson <ulf.hansson@linaro.org>

> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>


Reviewed-by: Daniel Lezcano <daniel.lezcano@linaro.org>


> ---

> 

> Changes in v10:

> 	- None.

> 

> ---

>  drivers/cpuidle/dt_idle_states.c | 5 ++---

>  1 file changed, 2 insertions(+), 3 deletions(-)

> 

> diff --git a/drivers/cpuidle/dt_idle_states.c b/drivers/cpuidle/dt_idle_states.c

> index 53342b7f1010..13f9b7cd32d1 100644

> --- a/drivers/cpuidle/dt_idle_states.c

> +++ b/drivers/cpuidle/dt_idle_states.c

> @@ -118,8 +118,7 @@ static bool idle_state_valid(struct device_node *state_node, unsigned int idx,

>  	for (cpu = cpumask_next(cpumask_first(cpumask), cpumask);

>  	     cpu < nr_cpu_ids; cpu = cpumask_next(cpu, cpumask)) {

>  		cpu_node = of_cpu_device_node_get(cpu);

> -		curr_state_node = of_parse_phandle(cpu_node, "cpu-idle-states",

> -						   idx);

> +		curr_state_node = of_get_cpu_state_node(cpu_node, idx);

>  		if (state_node != curr_state_node)

>  			valid = false;

>  

> @@ -176,7 +175,7 @@ int dt_init_idle_driver(struct cpuidle_driver *drv,

>  	cpu_node = of_cpu_device_node_get(cpumask_first(cpumask));

>  

>  	for (i = 0; ; i++) {

> -		state_node = of_parse_phandle(cpu_node, "cpu-idle-states", i);

> +		state_node = of_get_cpu_state_node(cpu_node, i);

>  		if (!state_node)

>  			break;

>  

> 



-- 
 <http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
diff mbox series

Patch

diff --git a/drivers/cpuidle/dt_idle_states.c b/drivers/cpuidle/dt_idle_states.c
index 53342b7f1010..13f9b7cd32d1 100644
--- a/drivers/cpuidle/dt_idle_states.c
+++ b/drivers/cpuidle/dt_idle_states.c
@@ -118,8 +118,7 @@  static bool idle_state_valid(struct device_node *state_node, unsigned int idx,
 	for (cpu = cpumask_next(cpumask_first(cpumask), cpumask);
 	     cpu < nr_cpu_ids; cpu = cpumask_next(cpu, cpumask)) {
 		cpu_node = of_cpu_device_node_get(cpu);
-		curr_state_node = of_parse_phandle(cpu_node, "cpu-idle-states",
-						   idx);
+		curr_state_node = of_get_cpu_state_node(cpu_node, idx);
 		if (state_node != curr_state_node)
 			valid = false;
 
@@ -176,7 +175,7 @@  int dt_init_idle_driver(struct cpuidle_driver *drv,
 	cpu_node = of_cpu_device_node_get(cpumask_first(cpumask));
 
 	for (i = 0; ; i++) {
-		state_node = of_parse_phandle(cpu_node, "cpu-idle-states", i);
+		state_node = of_get_cpu_state_node(cpu_node, i);
 		if (!state_node)
 			break;