Message ID | 1546873479-20415-1-git-send-email-yizeng@asrmicro.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Eduardo Valentin |
Headers | show |
Series | thermal: of-thermal: support to select governor in dts for thermal zone | expand |
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@asrmicro.com> > --- > 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
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;
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@asrmicro.com> --- drivers/thermal/of-thermal.c | 5 +++++ 1 file changed, 5 insertions(+)