[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAM2ehZYXsqCoS9ygXNfPHxt9-b5cFxH_ovrgjvM-BfDO6REcUg@mail.gmail.com>
Date: Fri, 7 Aug 2015 15:09:39 +0800
From: Chung-Yih Wang (王崇懿)
<cywang@...omium.org>
To: linux-kernel@...r.kernel.org
Cc: Zhang Rui <rui.zhang@...el.com>,
Eduardo Valentin <edubezval@...il.com>,
Rob Herring <robh+dt@...nel.org>,
Pawel Moll <pawel.moll@....com>,
Mark Rutland <mark.rutland@....com>,
Ian Campbell <ijc+devicetree@...lion.org.uk>,
Kumar Gala <galak@...eaurora.org>, linux-pm@...r.kernel.org,
devicetree@...r.kernel.org, Chung-yih Wang <cywang@...omium.org>
Subject: [PATCH] thermal: of: Introduce governor selection in dts
As there could be more thermal zones on a system and
more variety in thermal governors provided in kernel,
this patch provides flexibility of governor selection
for a thermal zone declared in device tree.
Change-Id: Ie4a75d762709cbbe9f1806dae325d13f71982e78
Signed-off-by: Chung-yih Wang <cywang@...omium.org>
---
Documentation/devicetree/bindings/thermal/thermal.txt | 9 +++++++++
drivers/thermal/of-thermal.c | 10 ++++++++++
2 files changed, 19 insertions(+)
diff --git a/Documentation/devicetree/bindings/thermal/thermal.txt
b/Documentation/devicetree/bindings/thermal/thermal.txt
index 8a49362..30a5d41 100644
--- a/Documentation/devicetree/bindings/thermal/thermal.txt
+++ b/Documentation/devicetree/bindings/thermal/thermal.txt
@@ -174,6 +174,13 @@ Optional property:
2000mW, while on a 10'' tablet is around
4500mW.
+- thermal-governor-name: The name of governor used to control the
+ thermal zone instead of the default one
+ specified in kernel config. For reference, if
+ default governor is step_wise, one could
+ select power_allocator for cpu_thermal zone
+ in dts.
+
Note: The delay properties are bound to the maximum dT/dt (temperature
derivative over time) in two situations for a thermal zone:
(i) - when passive cooling is activated (polling-delay-passive); and
@@ -555,6 +562,8 @@ thermal-zones {
sustainable-power = <2500>;
+ thermal-governor-name = "power_allocator";
+
trips {
/* Trips are based on resulting linear equation */
cpu_trip: cpu-trip {
diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c
index b295b2b..45570ac 100644
--- a/drivers/thermal/of-thermal.c
+++ b/drivers/thermal/of-thermal.c
@@ -882,6 +882,7 @@ int __init of_parse_thermal_zones(void)
}
for_each_child_of_node(np, child) {
+ const char *governor_name;
struct thermal_zone_device *zone;
struct thermal_zone_params *tzp;
int i, mask = 0;
@@ -909,6 +910,15 @@ int __init of_parse_thermal_zones(void)
goto exit_free;
}
+ /* Select a preferred governor if declared */
+ if (!of_property_read_string(child,
+ "thermal-governor-name",
+ &governor_name)) {
+ strncpy(tzp->governor_name,
+ governor_name,
+ sizeof(tzp->governor_name) - 1);
+ }
+
/* No hwmon because there might be hwmon drivers registering */
tzp->no_hwmon = true;
--
2.1.2
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists