Re: [PATCH] thermal: of-thermal: support to select governor in dts for thermal zone

From: Matthias Kaehlcke
Date: Tue Jan 29 2019 - 14:14:29 EST


On Mon, Jan 07, 2019 at 11:04:39PM +0800, Yi Zeng wrote:
> Add the governor property parsing that defined in thermal zone node
> in dts. If define the governor property for one thermal zone, for
> example, governor = "step_wise", then parse and register the thermal
> zone will find and set the right governor, except the only choice
> of default governor.
>
> Signed-off-by: Yi Zeng <yizeng@xxxxxxxxxxxx>
> ---
> drivers/thermal/of-thermal.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c
> index 4bfdb4a..f9368f4 100644
> --- a/drivers/thermal/of-thermal.c
> +++ b/drivers/thermal/of-thermal.c
> @@ -1024,6 +1024,7 @@ int __init of_parse_thermal_zones(void)
> struct thermal_zone_params *tzp;
> int i, mask = 0;
> u32 prop;
> + const char *name;
>
> tz = thermal_of_build_thermal_zone(child);
> if (IS_ERR(tz)) {
> @@ -1049,6 +1050,10 @@ int __init of_parse_thermal_zones(void)
> if (!of_property_read_u32(child, "sustainable-power", &prop))
> tzp->sustainable_power = prop;
>
> + if (!of_property_read_string(child, "governor", &name))
> + strncpy(tzp->governor_name, name,
> + THERMAL_NAME_LENGTH);
> +
> for (i = 0; i < tz->ntrips; i++)
> mask |= 1 << i;

For reference, the discussion of a similar patch about a year ago:
https://patchwork.kernel.org/patch/10259487/

>From a board developer POV I can see why you would want this, but
maintainers seem(ed) to think that it could cause more problems
than it solves.

Some arguments that were brought up against configuring the governor
in the DT:

- the DT should describe the hardware, not policy
- the specified governor might not exist / be enabled
- sysfs is more flexible than the DT

Cheers

Matthias