[PATCH v5 00/12] Add throttler driver for non-thermal throttling
From: Matthias Kaehlcke
Date: Tue Jul 03 2018 - 19:50:16 EST
This series adds the throttler driver, for non-thermal throttling of
CPUs and devfreq devices. A use case for non-thermal throttling could
be the detection of a high battery discharge current, close to the
over-current protection (OCP) limit of the battery.
To support throttling of devfreq devices the series introduces the
concept of a devfreq policy and the DEVFREQ_ADJUST notifier (similar
to CPUFREQ_ADJUST). Further it includes some related devfreq bugfixes
and improvements that change some of the code that is also touched
by the policy changes.
Matthias Kaehlcke (12):
PM / devfreq: Init user limits from OPP limits, not viceversa
PM / devfreq: Fix handling of min/max_freq == 0
PM / devfreq: Don't adjust to user limits in governors
PM / devfreq: Add struct devfreq_policy
PM / devfreq: Add support for policy notifiers
PM / devfreq: Make update_devfreq() public
PM / devfreq: export devfreq_class
cpufreq: Add stub for cpufreq_update_policy()
dt-bindings: misc: add bindings for throttler
misc: throttler: Add core support for non-thermal throttling
misc: throttler: Add Chrome OS EC throttler
mfd: cros_ec: Add throttler sub-device
.../devicetree/bindings/misc/throttler.txt | 13 +
MAINTAINERS | 7 +
drivers/devfreq/devfreq.c | 222 +++---
drivers/devfreq/governor.h | 6 +-
drivers/devfreq/governor_passive.c | 4 +-
drivers/devfreq/governor_performance.c | 5 +-
drivers/devfreq/governor_powersave.c | 2 +-
drivers/devfreq/governor_simpleondemand.c | 12 +-
drivers/devfreq/governor_userspace.c | 16 +-
drivers/mfd/cros_ec_dev.c | 19 +
drivers/misc/Kconfig | 1 +
drivers/misc/Makefile | 1 +
drivers/misc/throttler/Kconfig | 33 +
drivers/misc/throttler/Makefile | 2 +
drivers/misc/throttler/core.c | 697 ++++++++++++++++++
drivers/misc/throttler/cros_ec_throttler.c | 111 +++
include/linux/cpufreq.h | 1 +
include/linux/devfreq.h | 113 ++-
include/linux/throttler.h | 21 +
19 files changed, 1161 insertions(+), 125 deletions(-)
create mode 100644 Documentation/devicetree/bindings/misc/throttler.txt
create mode 100644 drivers/misc/throttler/Kconfig
create mode 100644 drivers/misc/throttler/Makefile
create mode 100644 drivers/misc/throttler/core.c
create mode 100644 drivers/misc/throttler/cros_ec_throttler.c
create mode 100644 include/linux/throttler.h
--
2.18.0.203.gfac676dfb9-goog