On Fri, Aug 07, 2015 at 08:09:39AM +0100, Chung-Yih Wang (王崇懿) wrote:
> 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 <cyw...@chromium.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.


This is not a hardware or system property, but rather a Linux
implementation detail.

This really shouldn't go in the DT.

Mark.

> +
>  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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to