[PATCH v3 1/1] pwrap: mediatek: fix FSM timeout issue

Matthias Brugger matthias.bgg at gmail.com
Mon Apr 25 03:50:12 PDT 2022



On 25/04/2022 04:05, Rex-BC Chen wrote:
> On Sun, 2022-04-24 at 10:57 +0800, Zhiyong Tao wrote:
>> From: "Zhiyong.Tao" <zhiyong.tao at mediatek.com>
>>
>> Fix pwrap FSM timeout issue which leads the system crash on GFX VSRAM
>> power on.
>> Add a usleep delay to avoid busy read for the H/W status.
>> For avoiding the system behavior(ex. disable interrupt in
>> suspend/resume
>> flow, schedule block task)cause if (time_after()) be turn first,
>> we change it after sleep delay.

I'm not sure what you mean with this sentence. But it sound's like we want to 
paper about some issue. Can you please explain better?

Thanks,
Matthias

>> Fixes: 1f022d84bd19 ("soc: mediatek: Add PMIC wrapper for MT8135 and
>> MT8173 SoCs")
>>
>> Signed-off-by: Zhiyong.Tao <zhiyong.tao at mediatek.com>
>> ---
> 
> Hello Zhiyong,
> 
> IMO, commit messages should be
> 
> Fix pwrap FSM timeout issue....
> ...we change it after sleep delay.
> 
> (=> one blank)
> Fixes: 1f022d84bd19 ("soc: mediatek: Add PMIC wrapper for MT8135 and
> MT8173 SoCs")
> (=> oneline)
> 
> Signed-off-by: Zhiyong.Tao <zhiyong.tao at mediatek.com>
> 
>>   drivers/soc/mediatek/mtk-pmic-wrap.c | 8 ++++++--
>>   1 file changed, 6 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/soc/mediatek/mtk-pmic-wrap.c
>> b/drivers/soc/mediatek/mtk-pmic-wrap.c
>> index 952bc554f443..ac7139a67e87 100644
>> --- a/drivers/soc/mediatek/mtk-pmic-wrap.c
>> +++ b/drivers/soc/mediatek/mtk-pmic-wrap.c
>> @@ -12,6 +12,7 @@
>>   #include <linux/platform_device.h>
>>   #include <linux/regmap.h>
>>   #include <linux/reset.h>
>> +#include <linux/delay.h>
> 
> Sorry, I do not notice this in previous version. It will proper order
> the header in alphabet.
> 
>   #include <linux/delay.h>
>   #include <linux/platform_device.h>
>   #include <linux/regmap.h>
>   #include <linux/reset.h>
> 
> BRs,
> Rex
>>   
>>   #define PWRAP_MT8135_BRIDGE_IORD_ARB_EN		0x4
>>   #define PWRAP_MT8135_BRIDGE_WACS3_EN		0x10
>> @@ -1197,10 +1198,13 @@ static int pwrap_wait_for_state(struct
>> pmic_wrapper *wrp,
>>   	timeout = jiffies + usecs_to_jiffies(10000);
>>   
>>   	do {
>> -		if (time_after(jiffies, timeout))
>> -			return fp(wrp) ? 0 : -ETIMEDOUT;
>>   		if (fp(wrp))
>>   			return 0;
>> +
>> +		usleep_range(10, 11);
>> +
>> +		if (time_after(jiffies, timeout))
>> +			return fp(wrp) ? 0 : -ETIMEDOUT;
>>   	} while (1);
>>   }
>>   
> 



More information about the linux-arm-kernel mailing list