[PATCH] thermal/drivers/mediatek/lvts: fix mt7987 thermal crash

Frank Wunderlich posted 1 patch 1 month ago
drivers/thermal/mediatek/lvts_thermal.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] thermal/drivers/mediatek/lvts: fix mt7987 thermal crash
Posted by Frank Wunderlich 1 month ago
From: Frank Wunderlich <frank-w@public-files.de>

On mt7987 we see a crash due to missing ops entry.

[    1.518540] Internal error: Oops: 0000000096000005 [#1]  SMP
...
[    1.564481] pc : lvts_get_temp+0x84/0xc4
[    1.564492] lr : lvts_get_temp+0x60/0xc4
...
[    1.620900] Call trace:
[    1.631753]  lvts_get_temp+0x84/0xc4 (P)
[    1.645471]  __thermal_zone_get_temp+0x24/0x11c
[    1.656502]  __thermal_zone_device_update+0x9c/0x52c

Add the new ops member added in 7.0-rc1 for mt7987 too.

Fixes: a4c40559499f ("thermal/drivers/mediatek/lvts: Add platform ops to support alternative conversion logic")
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
---
 drivers/thermal/mediatek/lvts_thermal.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/thermal/mediatek/lvts_thermal.c b/drivers/thermal/mediatek/lvts_thermal.c
index a9617d5e0077..5671531d4c23 100644
--- a/drivers/thermal/mediatek/lvts_thermal.c
+++ b/drivers/thermal/mediatek/lvts_thermal.c
@@ -2026,6 +2026,7 @@ static const struct lvts_data mt7987_lvts_ap_data = {
 	.temp_offset	= LVTS_COEFF_B_MT7987,
 	.gt_calib_bit_offset = 32,
 	.def_calibration = 19380,
+	.ops = &lvts_platform_ops_mt7988,
 };
 
 static const struct lvts_data mt7988_lvts_ap_data = {
-- 
2.43.0
Re: [PATCH] thermal/drivers/mediatek/lvts: fix mt7987 thermal crash
Posted by Laura Nao 4 weeks, 1 day ago
Hi!

On 3/9/26 07:44, Frank Wunderlich wrote:
> From: Frank Wunderlich <frank-w@public-files.de>
>
> On mt7987 we see a crash due to missing ops entry.
>
> [    1.518540] Internal error: Oops: 0000000096000005 [#1]  SMP
> ...
> [    1.564481] pc : lvts_get_temp+0x84/0xc4
> [    1.564492] lr : lvts_get_temp+0x60/0xc4
> ...
> [    1.620900] Call trace:
> [    1.631753]  lvts_get_temp+0x84/0xc4 (P)
> [    1.645471]  __thermal_zone_get_temp+0x24/0x11c
> [    1.656502]  __thermal_zone_device_update+0x9c/0x52c
>
> Add the new ops member added in 7.0-rc1 for mt7987 too.
>
> Fixes: a4c40559499f ("thermal/drivers/mediatek/lvts: Add platform ops to support alternative conversion logic")

I think the Fixes tag should reference 
"thermal/drivers/mediatek/lvts_thermal: Add mt7987 support", as the 
commit introducing the ops also updated all existing data structs (seems 
like mt7987 support landed right after).

> Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
> ---
>  drivers/thermal/mediatek/lvts_thermal.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/thermal/mediatek/lvts_thermal.c b/drivers/thermal/mediatek/lvts_thermal.c
> index a9617d5e0077..5671531d4c23 100644
> --- a/drivers/thermal/mediatek/lvts_thermal.c
> +++ b/drivers/thermal/mediatek/lvts_thermal.c
> @@ -2026,6 +2026,7 @@ static const struct lvts_data mt7987_lvts_ap_data = {
>  	.temp_offset	= LVTS_COEFF_B_MT7987,
>  	.gt_calib_bit_offset = 32,
>  	.def_calibration = 19380,

You'll probably need to define num_cal_offsets too, since the number of 
calibration bytes was also made configurable (not sure if this is 
already addressed by a separate patch).

> +	.ops = &lvts_platform_ops_mt7988,
>  };
>  
>  static const struct lvts_data mt7988_lvts_ap_data = {

Best,

Laura
Re: [PATCH] thermal/drivers/mediatek/lvts: fix mt7987 thermal crash
Posted by Frank Wunderlich 4 weeks ago
Am 11. März 2026 10:35:19 MEZ schrieb Laura Nao <laura.nao@collabora.com>:
>Hi!
>
>On 3/9/26 07:44, Frank Wunderlich wrote:
>> From: Frank Wunderlich <frank-w@public-files.de>
>>
>> On mt7987 we see a crash due to missing ops entry.
>>
>> [    1.518540] Internal error: Oops: 0000000096000005 [#1]  SMP
>> ...
>> [    1.564481] pc : lvts_get_temp+0x84/0xc4
>> [    1.564492] lr : lvts_get_temp+0x60/0xc4
>> ...
>> [    1.620900] Call trace:
>> [    1.631753]  lvts_get_temp+0x84/0xc4 (P)
>> [    1.645471]  __thermal_zone_get_temp+0x24/0x11c
>> [    1.656502]  __thermal_zone_device_update+0x9c/0x52c
>>
>> Add the new ops member added in 7.0-rc1 for mt7987 too.
>>
>> Fixes: a4c40559499f ("thermal/drivers/mediatek/lvts: Add platform ops to support alternative conversion logic")
>
>I think the Fixes tag should reference 
>"thermal/drivers/mediatek/lvts_thermal: Add mt7987 support", as the 
>commit introducing the ops also updated all existing data structs (seems 
>like mt7987 support landed right after).

Ok, i will change this. Have not looked on order how commits
are applied. Both commits were new in 7.0.

>> Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
>> ---
>>  drivers/thermal/mediatek/lvts_thermal.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/thermal/mediatek/lvts_thermal.c b/drivers/thermal/mediatek/lvts_thermal.c
>> index a9617d5e0077..5671531d4c23 100644
>> --- a/drivers/thermal/mediatek/lvts_thermal.c
>> +++ b/drivers/thermal/mediatek/lvts_thermal.c
>> @@ -2026,6 +2026,7 @@ static const struct lvts_data mt7987_lvts_ap_data = {
>>  	.temp_offset	= LVTS_COEFF_B_MT7987,
>>  	.gt_calib_bit_offset = 32,
>>  	.def_calibration = 19380,
>
>You'll probably need to define num_cal_offsets too, since the number of 
>calibration bytes was also made configurable (not sure if this is 
>already addressed by a separate patch).

Thanks for pointing to this.
Should i change in same patch or in separate one?

>> +	.ops = &lvts_platform_ops_mt7988,
>>  };
>>  
>>  static const struct lvts_data mt7988_lvts_ap_data = {
>
>Best,
>
>Laura



regards Frank
Re: [PATCH] thermal/drivers/mediatek/lvts: fix mt7987 thermal crash
Posted by Laura Nao 3 weeks, 6 days ago
Hi,

On 3/12/26 08:39, Frank Wunderlich wrote:
> Am 11. März 2026 10:35:19 MEZ schrieb Laura Nao <laura.nao@collabora.com>:
>> Hi!
>>
>> On 3/9/26 07:44, Frank Wunderlich wrote:
>>> From: Frank Wunderlich <frank-w@public-files.de>
>>>
>>> On mt7987 we see a crash due to missing ops entry.
>>>
>>> [    1.518540] Internal error: Oops: 0000000096000005 [#1]  SMP
>>> ...
>>> [    1.564481] pc : lvts_get_temp+0x84/0xc4
>>> [    1.564492] lr : lvts_get_temp+0x60/0xc4
>>> ...
>>> [    1.620900] Call trace:
>>> [    1.631753]  lvts_get_temp+0x84/0xc4 (P)
>>> [    1.645471]  __thermal_zone_get_temp+0x24/0x11c
>>> [    1.656502]  __thermal_zone_device_update+0x9c/0x52c
>>>
>>> Add the new ops member added in 7.0-rc1 for mt7987 too.
>>>
>>> Fixes: a4c40559499f ("thermal/drivers/mediatek/lvts: Add platform ops to support alternative conversion logic")
>>
>> I think the Fixes tag should reference 
>> "thermal/drivers/mediatek/lvts_thermal: Add mt7987 support", as the 
>> commit introducing the ops also updated all existing data structs (seems 
>> like mt7987 support landed right after).
>
> Ok, i will change this. Have not looked on order how commits
> are applied. Both commits were new in 7.0.
>
>>> Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
>>> ---
>>>  drivers/thermal/mediatek/lvts_thermal.c | 1 +
>>>  1 file changed, 1 insertion(+)
>>>
>>> diff --git a/drivers/thermal/mediatek/lvts_thermal.c b/drivers/thermal/mediatek/lvts_thermal.c
>>> index a9617d5e0077..5671531d4c23 100644
>>> --- a/drivers/thermal/mediatek/lvts_thermal.c
>>> +++ b/drivers/thermal/mediatek/lvts_thermal.c
>>> @@ -2026,6 +2026,7 @@ static const struct lvts_data mt7987_lvts_ap_data = {
>>>  	.temp_offset	= LVTS_COEFF_B_MT7987,
>>>  	.gt_calib_bit_offset = 32,
>>>  	.def_calibration = 19380,
>>
>> You'll probably need to define num_cal_offsets too, since the number of 
>> calibration bytes was also made configurable (not sure if this is 
>> already addressed by a separate patch).
>
> Thanks for pointing to this.
> Should i change in same patch or in separate one?
>

I would suggest including this in the v2 of this patch, updating the
commit title and message to mention that both the ops and num_cal_offsets
were added.

Best,

Laura