Message ID | 20190625113244.18146-1-daniel.lezcano@linaro.org |
---|---|
State | Superseded |
Headers | show |
Series | [V3,1/3] cpufreq: Move the IS_ENABLED(CPU_THERMAL) macro in a stub | expand |
On 25-06-19, 13:32, Daniel Lezcano wrote: > It looks like after the changes in the patch the only reason for which patch ? Instead of "patch" you should refer to the latest changes in code, like "now that cpufreq_cooling_unregister() doesn't accept cdev as an argument ....." > returning (struct thermal_cooling_device *) from > cpufreq_cooling_register() is error checking, but it would be much > more straightforward to return int for this purpose. > > Moreover, that would prevent the callers of it from doing incorrect > things with the returned pointers (like using it to unregister the > cooling device). > > Replace the returned value an integer instead of a pointer to a as ? > thermal cooling device structure. > > Suggested-by: Rafael J. Wysocki <rafael@kernel.org> > Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> > --- > drivers/thermal/cpu_cooling.c | 63 +++++++++---------- > drivers/thermal/imx_thermal.c | 6 +- > .../ti-soc-thermal/ti-thermal-common.c | 7 +-- > include/linux/cpu_cooling.h | 16 ++--- > 4 files changed, 40 insertions(+), 52 deletions(-) -- viresh
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c index 85ff958e01f1..aee024e42618 100644 --- a/drivers/cpufreq/cpufreq.c +++ b/drivers/cpufreq/cpufreq.c @@ -1378,8 +1378,7 @@ static int cpufreq_online(unsigned int cpu) if (cpufreq_driver->ready) cpufreq_driver->ready(policy); - if (IS_ENABLED(CONFIG_CPU_THERMAL) && - cpufreq_driver->flags & CPUFREQ_IS_COOLING_DEV) + if (cpufreq_thermal_control_enabled(cpufreq_driver)) policy->cdev = of_cpufreq_cooling_register(policy); pr_debug("initialization complete\n"); @@ -1469,8 +1468,7 @@ static int cpufreq_offline(unsigned int cpu) goto unlock; } - if (IS_ENABLED(CONFIG_CPU_THERMAL) && - cpufreq_driver->flags & CPUFREQ_IS_COOLING_DEV) { + if (cpufreq_thermal_control_enabled(cpufreq_driver)) { cpufreq_cooling_unregister(policy->cdev); policy->cdev = NULL; } diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h index d01a74fbc4db..a1467aa7f58b 100644 --- a/include/linux/cpufreq.h +++ b/include/linux/cpufreq.h @@ -409,6 +409,12 @@ int cpufreq_unregister_driver(struct cpufreq_driver *driver_data); const char *cpufreq_get_current_driver(void); void *cpufreq_get_driver_data(void); +static inline int cpufreq_thermal_control_enabled(struct cpufreq_driver *drv) +{ + return IS_ENABLED(CONFIG_CPU_THERMAL) && + (drv->flags & CPUFREQ_IS_COOLING_DEV); +} + static inline void cpufreq_verify_within_limits(struct cpufreq_policy *policy, unsigned int min, unsigned int max) {