2023-09-01 23:43:55

by Frank Wunderlich

[permalink] [raw]
Subject: Aw: regression with 33140e668b10 thermal/drivers/mediatek: Control buffer enablement tweaks

Hi,

looked a bit deeper into it and it looks like i only need to add the fields in the mtk_thermal_data struct

--- a/drivers/thermal/mediatek/auxadc_thermal.c
+++ b/drivers/thermal/mediatek/auxadc_thermal.c
@@ -690,6 +690,9 @@ static const struct mtk_thermal_data mt7986_thermal_data = {
.adcpnp = mt7986_adcpnp,
.sensor_mux_values = mt7986_mux_values,
.version = MTK_THERMAL_V3,
+ .apmixed_buffer_ctl_reg = APMIXED_SYS_TS_CON1,
+ .apmixed_buffer_ctl_mask = GENMASK(31, 6) | BIT(3),
+ .apmixed_buffer_ctl_set = BIT(0),
};

in my quick test the temprature can be read again and i'm near room temperature...i though it was a bit higher before, but as far as i understand the code, the values were fixed before and only made it configurable.

if someone can confirm that i'm right, i can send official patch.

regards Frank


> Gesendet: Donnerstag, 31. August 2023 um 11:25 Uhr
> Von: "Frank Wunderlich" <[email protected]>
> Hi,
>
> The commit 33140e668b10 "thermal/drivers/mediatek: Control buffer enablement tweaks" is merged between 6.3 and 6.4 and causes a regression where temperature cannot be read correctly at least for mt7986/Bpi-R3.
>
> bpi-r3 ~ # cat /sys/class/thermal/thermal_zone0/temp
> -274000
>
> after reverting the commit and fixing some build-errors in 6.5-rc7 because new members used in mt8365_thermal_data too, we can read temperature on mt7986 again.
>
> i guess reverting the commit is not the right way, so i ask here for a better solution
>
> regards Frank


2023-09-12 15:36:12

by Daniel Lezcano

[permalink] [raw]
Subject: Re: Aw: regression with 33140e668b10 thermal/drivers/mediatek: Control buffer enablement tweaks


Hi Frank,

thanks for reporting and investigating the issue.


On 31/08/2023 15:34, Frank Wunderlich wrote:
> Hi,
>
> looked a bit deeper into it and it looks like i only need to add the fields in the mtk_thermal_data struct
>
> --- a/drivers/thermal/mediatek/auxadc_thermal.c
> +++ b/drivers/thermal/mediatek/auxadc_thermal.c
> @@ -690,6 +690,9 @@ static const struct mtk_thermal_data mt7986_thermal_data = {
> .adcpnp = mt7986_adcpnp,
> .sensor_mux_values = mt7986_mux_values,
> .version = MTK_THERMAL_V3,
> + .apmixed_buffer_ctl_reg = APMIXED_SYS_TS_CON1,
> + .apmixed_buffer_ctl_mask = GENMASK(31, 6) | BIT(3),
> + .apmixed_buffer_ctl_set = BIT(0),
> };
>
> in my quick test the temprature can be read again and i'm near room temperature...i though it was a bit higher before, but as far as i understand the code, the values were fixed before and only made it configurable.
>
> if someone can confirm that i'm right, i can send official patch.

At the first glance, it seems the proposed change is correct and could
be proposed as a hot fix.

However, the conditions with the version and the apmixed_buffer_ctl_reg
looks a bit fuzzy.

Markus, can you revisit this part of code and consolidate the
configurable approach ?

--
<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

Subject: Re: regression with 33140e668b10 thermal/drivers/mediatek: Control buffer enablement tweaks

Hi Frank and Daniel,

On Tue, Sep 12, 2023 at 02:57:45PM +0200, Daniel Lezcano wrote:
>
> Hi Frank,
>
> thanks for reporting and investigating the issue.
>
>
> On 31/08/2023 15:34, Frank Wunderlich wrote:
> > Hi,
> >
> > looked a bit deeper into it and it looks like i only need to add the fields in the mtk_thermal_data struct
> >
> > --- a/drivers/thermal/mediatek/auxadc_thermal.c
> > +++ b/drivers/thermal/mediatek/auxadc_thermal.c
> > @@ -690,6 +690,9 @@ static const struct mtk_thermal_data mt7986_thermal_data = {
> > .adcpnp = mt7986_adcpnp,
> > .sensor_mux_values = mt7986_mux_values,
> > .version = MTK_THERMAL_V3,
> > + .apmixed_buffer_ctl_reg = APMIXED_SYS_TS_CON1,
> > + .apmixed_buffer_ctl_mask = GENMASK(31, 6) | BIT(3),
> > + .apmixed_buffer_ctl_set = BIT(0),
> > };
> >
> > in my quick test the temprature can be read again and i'm near room temperature...i though it was a bit higher before, but as far as i understand the code, the values were fixed before and only made it configurable.
> >
> > if someone can confirm that i'm right, i can send official patch.

Sorry for the delay, this was in my inbox but somehow not on my todo
list.

The patch looks correct. I think I simply missed adding the fields for
MTK_THERMAL_V3 chips. Sorry!

>
> At the first glance, it seems the proposed change is correct and could be
> proposed as a hot fix.
>
> However, the conditions with the version and the apmixed_buffer_ctl_reg
> looks a bit fuzzy.
>
> Markus, can you revisit this part of code and consolidate the configurable
> approach ?

Yes, it indeed looks like I broke another condition there. I will give
it another close look and send a fix.

Best,
Markus