diff mbox series

thermal/drivers/mediatek/lvts_thermal: Switch to IMMEDIATE_MODE

Message ID 20241108-lvts-v1-1-eee339c6ca20@chromium.org (mailing list archive)
State New
Delegated to: Daniel Lezcano
Headers show
Series thermal/drivers/mediatek/lvts_thermal: Switch to IMMEDIATE_MODE | expand

Commit Message

Hsin-Te Yuan Nov. 8, 2024, 6:46 a.m. UTC
Currently, MT8192 cannot suspend with FILTERED_MODE. Switch to
IMMEDIATE_MODE will fix this.

Signed-off-by: Hsin-Te Yuan <yuanhsinte@chromium.org>
---
 drivers/thermal/mediatek/lvts_thermal.c | 3 ---
 1 file changed, 3 deletions(-)


---
base-commit: 906bd684e4b1e517dd424a354744c5b0aebef8af
change-id: 20241108-lvts-f7beb36efc59

Best regards,

Comments

Chen-Yu Tsai Nov. 8, 2024, 8:21 a.m. UTC | #1
On Fri, Nov 8, 2024 at 2:51 PM Hsin-Te Yuan <yuanhsinte@chromium.org> wrote:
>
> Currently, MT8192 cannot suspend with FILTERED_MODE. Switch to
> IMMEDIATE_MODE will fix this.
>

Probably should have a Fixes tag.

Also, Nicolas previously reported that the threshold interrupts don't
work with the immediate mode [1], which is why filtered mode was used
in the final version.


ChenYu

[1] https://lore.kernel.org/linux-mediatek/37680c5e-e61c-410b-b48d-829914200e4a@notapiano/

> Signed-off-by: Hsin-Te Yuan <yuanhsinte@chromium.org>
> ---
>  drivers/thermal/mediatek/lvts_thermal.c | 3 ---
>  1 file changed, 3 deletions(-)
>
> diff --git a/drivers/thermal/mediatek/lvts_thermal.c b/drivers/thermal/mediatek/lvts_thermal.c
> index 1997e91bb3be94a3059db619238aa5787edc7675..daad52f14fc03d0c4131f2ffdf3eb6b49a4a43d0 100644
> --- a/drivers/thermal/mediatek/lvts_thermal.c
> +++ b/drivers/thermal/mediatek/lvts_thermal.c
> @@ -1541,7 +1541,6 @@ static const struct lvts_ctrl_data mt8192_lvts_mcu_data_ctrl[] = {
>                 },
>                 VALID_SENSOR_MAP(1, 1, 0, 0),
>                 .offset = 0x0,
> -               .mode = LVTS_MSR_FILTERED_MODE,
>         },
>         {
>                 .lvts_sensor = {
> @@ -1552,7 +1551,6 @@ static const struct lvts_ctrl_data mt8192_lvts_mcu_data_ctrl[] = {
>                 },
>                 VALID_SENSOR_MAP(1, 1, 0, 0),
>                 .offset = 0x100,
> -               .mode = LVTS_MSR_FILTERED_MODE,
>         },
>         {
>                 .lvts_sensor = {
> @@ -1567,7 +1565,6 @@ static const struct lvts_ctrl_data mt8192_lvts_mcu_data_ctrl[] = {
>                 },
>                 VALID_SENSOR_MAP(1, 1, 1, 1),
>                 .offset = 0x200,
> -               .mode = LVTS_MSR_FILTERED_MODE,
>         }
>  };
>
>
> ---
> base-commit: 906bd684e4b1e517dd424a354744c5b0aebef8af
> change-id: 20241108-lvts-f7beb36efc59
>
> Best regards,
> --
> Hsin-Te Yuan <yuanhsinte@chromium.org>
>
>
Nícolas F. R. A. Prado Nov. 9, 2024, 3:26 p.m. UTC | #2
On Fri, Nov 08, 2024 at 04:21:07PM +0800, Chen-Yu Tsai wrote:
> On Fri, Nov 8, 2024 at 2:51 PM Hsin-Te Yuan <yuanhsinte@chromium.org> wrote:
> >
> > Currently, MT8192 cannot suspend with FILTERED_MODE. Switch to
> > IMMEDIATE_MODE will fix this.

Do you mean that the whole MT8192 SoC is not able to enter system suspend? I
just tested that on a fairly recent linux-next and it was working without a
problem. We need more context here.

> >
> 
> Probably should have a Fixes tag.
> 
> Also, Nicolas previously reported that the threshold interrupts don't
> work with the immediate mode [1], which is why filtered mode was used
> in the final version.

Indeed. I suppose it would be possible to configure immediate mode only during
suspend if this is really the problem.

Thanks,
Nícolas
Daniel Lezcano Nov. 14, 2024, 8:13 a.m. UTC | #3
On 08/11/2024 07:46, Hsin-Te Yuan wrote:
> Currently, MT8192 cannot suspend with FILTERED_MODE. Switch to
> IMMEDIATE_MODE will fix this.

Given the comments and the different changes related to the filtered and 
immediate modes, I won't apply the patch until this is clearly sorted out.

> Signed-off-by: Hsin-Te Yuan <yuanhsinte@chromium.org>
> ---
>   drivers/thermal/mediatek/lvts_thermal.c | 3 ---
>   1 file changed, 3 deletions(-)
> 
> diff --git a/drivers/thermal/mediatek/lvts_thermal.c b/drivers/thermal/mediatek/lvts_thermal.c
> index 1997e91bb3be94a3059db619238aa5787edc7675..daad52f14fc03d0c4131f2ffdf3eb6b49a4a43d0 100644
> --- a/drivers/thermal/mediatek/lvts_thermal.c
> +++ b/drivers/thermal/mediatek/lvts_thermal.c
> @@ -1541,7 +1541,6 @@ static const struct lvts_ctrl_data mt8192_lvts_mcu_data_ctrl[] = {
>   		},
>   		VALID_SENSOR_MAP(1, 1, 0, 0),
>   		.offset = 0x0,
> -		.mode = LVTS_MSR_FILTERED_MODE,
>   	},
>   	{
>   		.lvts_sensor = {
> @@ -1552,7 +1551,6 @@ static const struct lvts_ctrl_data mt8192_lvts_mcu_data_ctrl[] = {
>   		},
>   		VALID_SENSOR_MAP(1, 1, 0, 0),
>   		.offset = 0x100,
> -		.mode = LVTS_MSR_FILTERED_MODE,
>   	},
>   	{
>   		.lvts_sensor = {
> @@ -1567,7 +1565,6 @@ static const struct lvts_ctrl_data mt8192_lvts_mcu_data_ctrl[] = {
>   		},
>   		VALID_SENSOR_MAP(1, 1, 1, 1),
>   		.offset = 0x200,
> -		.mode = LVTS_MSR_FILTERED_MODE,
>   	}
>   };
>   
> 
> ---
> base-commit: 906bd684e4b1e517dd424a354744c5b0aebef8af
> change-id: 20241108-lvts-f7beb36efc59
> 
> Best regards,
AngeloGioacchino Del Regno Nov. 14, 2024, 10:28 a.m. UTC | #4
Il 14/11/24 09:13, Daniel Lezcano ha scritto:
> On 08/11/2024 07:46, Hsin-Te Yuan wrote:
>> Currently, MT8192 cannot suspend with FILTERED_MODE. Switch to
>> IMMEDIATE_MODE will fix this.
> 
> Given the comments and the different changes related to the filtered and immediate 
> modes, I won't apply the patch until this is clearly sorted out.
> 

Thanks - indeed do not apply this for now.

If this has been broken for a year, one or two more weeks ain't gonna be a
show stopper, as long as we can come to a proper fix during that time, instead
of yet another compromise.

Anyway....

We discussed about that internally and we do suspect that there might be some
interrupt that is getting erroneously enabled, never handled, and constantly
firing because.. well, it was never handled, so... :-)

Nicolas is looking into this issue, and I really hope that we can come to a
conclusion that will make us switch back all of the SoCs to filtered mode
instead, as there indeed are some advantages in using that.

Cheers,
Angelo

>> Signed-off-by: Hsin-Te Yuan <yuanhsinte@chromium.org>
>> ---
>>   drivers/thermal/mediatek/lvts_thermal.c | 3 ---
>>   1 file changed, 3 deletions(-)
>>
>> diff --git a/drivers/thermal/mediatek/lvts_thermal.c b/drivers/thermal/mediatek/ 
>> lvts_thermal.c
>> index 
>> 1997e91bb3be94a3059db619238aa5787edc7675..daad52f14fc03d0c4131f2ffdf3eb6b49a4a43d0 100644
>> --- a/drivers/thermal/mediatek/lvts_thermal.c
>> +++ b/drivers/thermal/mediatek/lvts_thermal.c
>> @@ -1541,7 +1541,6 @@ static const struct lvts_ctrl_data 
>> mt8192_lvts_mcu_data_ctrl[] = {
>>           },
>>           VALID_SENSOR_MAP(1, 1, 0, 0),
>>           .offset = 0x0,
>> -        .mode = LVTS_MSR_FILTERED_MODE,
>>       },
>>       {
>>           .lvts_sensor = {
>> @@ -1552,7 +1551,6 @@ static const struct lvts_ctrl_data 
>> mt8192_lvts_mcu_data_ctrl[] = {
>>           },
>>           VALID_SENSOR_MAP(1, 1, 0, 0),
>>           .offset = 0x100,
>> -        .mode = LVTS_MSR_FILTERED_MODE,
>>       },
>>       {
>>           .lvts_sensor = {
>> @@ -1567,7 +1565,6 @@ static const struct lvts_ctrl_data 
>> mt8192_lvts_mcu_data_ctrl[] = {
>>           },
>>           VALID_SENSOR_MAP(1, 1, 1, 1),
>>           .offset = 0x200,
>> -        .mode = LVTS_MSR_FILTERED_MODE,
>>       }
>>   };
>>
>> ---
>> base-commit: 906bd684e4b1e517dd424a354744c5b0aebef8af
>> change-id: 20241108-lvts-f7beb36efc59
>>
>> Best regards,
> 
>
diff mbox series

Patch

diff --git a/drivers/thermal/mediatek/lvts_thermal.c b/drivers/thermal/mediatek/lvts_thermal.c
index 1997e91bb3be94a3059db619238aa5787edc7675..daad52f14fc03d0c4131f2ffdf3eb6b49a4a43d0 100644
--- a/drivers/thermal/mediatek/lvts_thermal.c
+++ b/drivers/thermal/mediatek/lvts_thermal.c
@@ -1541,7 +1541,6 @@  static const struct lvts_ctrl_data mt8192_lvts_mcu_data_ctrl[] = {
 		},
 		VALID_SENSOR_MAP(1, 1, 0, 0),
 		.offset = 0x0,
-		.mode = LVTS_MSR_FILTERED_MODE,
 	},
 	{
 		.lvts_sensor = {
@@ -1552,7 +1551,6 @@  static const struct lvts_ctrl_data mt8192_lvts_mcu_data_ctrl[] = {
 		},
 		VALID_SENSOR_MAP(1, 1, 0, 0),
 		.offset = 0x100,
-		.mode = LVTS_MSR_FILTERED_MODE,
 	},
 	{
 		.lvts_sensor = {
@@ -1567,7 +1565,6 @@  static const struct lvts_ctrl_data mt8192_lvts_mcu_data_ctrl[] = {
 		},
 		VALID_SENSOR_MAP(1, 1, 1, 1),
 		.offset = 0x200,
-		.mode = LVTS_MSR_FILTERED_MODE,
 	}
 };