thermal/drivers/cpu_cooling: Introduce the cpu idle cooling driver
authorDaniel Lezcano <daniel.lezcano@linaro.org>
Thu, 19 Dec 2019 22:53:16 +0000 (23:53 +0100)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Mon, 27 Jan 2020 09:24:32 +0000 (10:24 +0100)
commita4c428e523490bf53e9c4ba2d809130c58c06ac7
treead6044a20c4f6ee88470acbd3a79d981cb221d33
parent0a1990a2d1f2217db20b30f915f48d9b8b976949
thermal/drivers/cpu_cooling: Introduce the cpu idle cooling driver

The cpu idle cooling device offers a new method to cool down a CPU by
injecting idle cycles at runtime.

It has some similarities with the intel power clamp driver but it is
actually designed to be more generic and relying on the idle injection
powercap framework.

The idle injection duration is fixed while the running duration is
variable. That allows to have control on the device reactivity for the
user experience.

An idle state powering down the CPU or the cluster will allow to drop
the static leakage, thus restoring the heat capacity of the SoC. It
can be set with a trip point between the hot and the critical points,
giving the opportunity to prevent a hard reset of the system when the
cpufreq cooling fails to cool down the CPU.

With more sophisticated boards having a per core sensor, the idle
cooling device allows to cool down a single core without throttling
the compute capacity of several cpus belonging to the same clock line,
so it could be used in collaboration with the cpufreq cooling device.

Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Link: https://lore.kernel.org/r/20191219225317.17158-2-daniel.lezcano@linaro.org
MAINTAINERS
drivers/thermal/Kconfig
drivers/thermal/Makefile
drivers/thermal/cpuidle_cooling.c [new file with mode: 0644]
include/linux/cpu_cooling.h