Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 97735da0 authored by Lorenzo Pieralisi's avatar Lorenzo Pieralisi Committed by Daniel Lezcano
Browse files

drivers: cpuidle: Add status property to ARM idle states



On some platforms the device tree bindings must provide the kernel
with a status flag for idle states, that defines whether the idle
state is operational or not in the current configuration.

This patch adds a status property to the ARM idle states compliant
with ePAPR v1.1 and updates the DT parsing code accordingly.

Acked-by: default avatarKevin Hilman <khilman@linaro.org>
Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: default avatarDaniel Lezcano <daniel.lezcano@linaro.org>
parent fc14f9c1
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -317,6 +317,20 @@ follows:
			    In such systems entry-latency-us + exit-latency-us
			    will exceed wakeup-latency-us by this duration.

	- status:
		Usage: Optional
		Value type: <string>
		Definition: A standard device tree property [5] that indicates
			    the operational status of an idle-state.
			    If present, it shall be:
			    "okay": to indicate that the idle state is
				    operational.
			    "disabled": to indicate that the idle state has
					been disabled in firmware so it is not
					operational.
			    If the property is not present the idle-state must
			    be considered operational.

	In addition to the properties listed above, a state node may require
	additional properties specifics to the entry-method defined in the
	idle-states node, please refer to the entry-method bindings
+3 −0
Original line number Diff line number Diff line
@@ -169,6 +169,9 @@ int dt_init_idle_driver(struct cpuidle_driver *drv,
		if (!state_node)
			break;

		if (!of_device_is_available(state_node))
			continue;

		if (!idle_state_valid(state_node, i, cpumask)) {
			pr_warn("%s idle state not valid, bailing out\n",
				state_node->full_name);