[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <907914e7-7f5a-e66d-bf38-be110aa1f6f0@linaro.org>
Date: Sat, 11 Apr 2020 18:45:59 +0200
From: Daniel Lezcano <daniel.lezcano@...aro.org>
To: Guenter Roeck <linux@...ck-us.net>, rui.zhang@...el.com
Cc: amit.kucheria@...durent.com, linux-kernel@...r.kernel.org,
Kamil Debski <kamil@...as.org>,
Bartlomiej Zolnierkiewicz <b.zolnierkie@...sung.com>,
Jean Delvare <jdelvare@...e.com>,
"open list:PWM FAN DRIVER" <linux-hwmon@...r.kernel.org>
Subject: Re: [PATCH 1/6] thermal: hwmon: Replace the call the
thermal_cdev_update()
On 11/04/2020 03:32, Guenter Roeck wrote:
> On 4/10/20 3:12 PM, Daniel Lezcano wrote:
>> The function thermal_cdev_upadte is called from the throttling
>
> misspelled
>
>> functions in the governors not from the cooling device itself.
>>
>> The cooling device is set to its maximum state and then updated. Even
>> if I don't get the purpose of probing the pwm-fan to its maximum
>> cooling state, we can replace the thermal_cdev_update() call to the
>> internal set_cur_state() function directly.
>>
>> Signed-off-by: Daniel Lezcano <daniel.lezcano@...aro.org>
>> ---
>> drivers/hwmon/pwm-fan.c | 3 +--
>> 1 file changed, 1 insertion(+), 2 deletions(-)
>>
>> diff --git a/drivers/hwmon/pwm-fan.c b/drivers/hwmon/pwm-fan.c
>> index 30b7b3ea8836..a654ecdf21ab 100644
>> --- a/drivers/hwmon/pwm-fan.c
>> +++ b/drivers/hwmon/pwm-fan.c
>> @@ -372,7 +372,6 @@ static int pwm_fan_probe(struct platform_device *pdev)
>> if (ret)
>> return ret;
>>
>> - ctx->pwm_fan_state = ctx->pwm_fan_max_state;
>> if (IS_ENABLED(CONFIG_THERMAL)) {
>> cdev = devm_thermal_of_cooling_device_register(dev,
>> dev->of_node, "pwm-fan", ctx, &pwm_fan_cooling_ops);
>> @@ -384,7 +383,7 @@ static int pwm_fan_probe(struct platform_device *pdev)
>> return ret;
>> }
>> ctx->cdev = cdev;
>> - thermal_cdev_update(cdev);
>> + pwm_fan_set_cur_state(cdev, ctx->pwm_fan_max_state);
>
> So far the function would only change the state if the new
> state is not equal to the old state. This was the case because
> pwm_fan_state was set to pwm_fan_max_state, and the call to
> thermal_cdev_update() and thus pwm_fan_set_cur_state() would
> do nothing except update statistics. The old code _assumed_
> that the current state is pwm_fan_max_state. The new code
> enforces it. That is a substantial semantic change, and it
> is not really reflected in the commit message. Is that really
> what you want ? If so, the commit message needs to state that
> and explain the rationale.
Well, to be honest I'm not getting the rational of calling
thermal_cdev_update(cdev) right after
devm_thermal_of_cooling_device_register() neither setting pwm_fan_state
to pwm_fan_max_state.
Do we have the guarantee there is at this point a thermal instance
making the target state working when thermal_cdev_update is called?
Are we sure a thermal_cdev_update(cdev) is actually right here?
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
Powered by blists - more mailing lists