[PATCH v8 5/5] thermal: mediatek: try again if first temp read is bogus
Daniel Lezcano
daniel.lezcano at linaro.org
Fri Jan 27 03:54:03 PST 2023
Hi Amjad,
On 27/01/2023 11:50, Amjad Ouled-Ameur wrote:
> Hi Daniel,
>
> On 1/25/23 11:58, Daniel Lezcano wrote:
>> On 25/01/2023 10:50, Amjad Ouled-Ameur wrote:
>>> In mtk_thermal_bank_temperature, return -EAGAIN instead of 0
>>> on the first read of sensor that often are bogus values.
>>>
>>> Signed-off-by: Michael Kao <michael.kao at mediatek.com>
>>> Signed-off-by: Hsin-Yi Wang <hsinyi at chromium.org>
>>> Signed-off-by: Amjad Ouled-Ameur <aouledameur at baylibre.com>
>>> Reviewed-by: AngeloGioacchino Del Regno
>>> <angelogioacchino.delregno at collabora.com>
>>> ---
>>> drivers/thermal/mtk_thermal.c | 2 +-
>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/thermal/mtk_thermal.c
>>> b/drivers/thermal/mtk_thermal.c
>>> index b8e06f6c7c42..e7be450cd40a 100644
>>> --- a/drivers/thermal/mtk_thermal.c
>>> +++ b/drivers/thermal/mtk_thermal.c
>>> @@ -736,7 +736,7 @@ static int mtk_thermal_bank_temperature(struct
>>> mtk_thermal_bank *bank)
>>> * not immediately shut down.
>>> */
>>> if (temp > 200000)
>>> - temp = 0;
>>> + temp = -EAGAIN;
>>
>> Did you try to add a delay between the bank init and the thermal zone
>> device register (eg. 1ms) ?
>>
>> May be the HW did not have time to initialize and capture a
>> temperature before thermal_zone_device_register() is called (this one
>> calls get_temp) ?
>
> A delay of 29 ms actually fixed the issue, thanks for the suggestion. I
> can send a V9 with this improvement.
I'm glad that helped.
Will you remove the "if (temp > 200000)" test ?
> Is there anything else to fix perhaps ?
Not in your changes
Thanks
-- Daniel
--
<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
More information about the Linux-mediatek
mailing list