Re: [PATCH 1/7] ARM: imx: add timer stop flag to ARM power off state

From: Stefan Agner
Date: Tue Jan 09 2018 - 08:25:01 EST


On 2018-01-09 10:22, Dong Aisheng wrote:
> On Tue, Jan 02, 2018 at 05:42:17PM +0100, Stefan Agner wrote:
>> When the CPU is in ARM power off state the ARM architected
>> timers are stopped. The flag is already present in the higher
>> power WAIT mode.
>>
>> This allows to use the ARM generic timer on i.MX 6UL/6ULL SoC.
>> Without the flag the kernel freezes when the timer enters the
>> first time ARM power off mode.
>>
>> Cc: Anson Huang <anson.huang@xxxxxxx>
>> Signed-off-by: Stefan Agner <stefan@xxxxxxxx>
>
> It seems ok at my side.
> Did you meet the real issue? If yes, how to reproduce?

Enable the timer added with Patch 5, use a U-Boot with this patchset
applied:
https://www.mail-archive.com/u-boot@xxxxxxxxxxxxx/msg273287.html

And boot... For me it freezed somewhere early during systemd boot phase,
presumably the first time the CPU got into this idle mode.

--
Stefan

>
> Both mx6sx and mx6ul are using GPT which do not need that flag, suppose
> we should remove it, right?
> Anson can help confirm it.
>
> Regards
> Dong Aisheng
>
>> ---
>> arch/arm/mach-imx/cpuidle-imx6sx.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/arch/arm/mach-imx/cpuidle-imx6sx.c b/arch/arm/mach-imx/cpuidle-imx6sx.c
>> index c5a5c3a70ab1..d0f14b761ff7 100644
>> --- a/arch/arm/mach-imx/cpuidle-imx6sx.c
>> +++ b/arch/arm/mach-imx/cpuidle-imx6sx.c
>> @@ -89,6 +89,7 @@ static struct cpuidle_driver imx6sx_cpuidle_driver = {
>> */
>> .exit_latency = 300,
>> .target_residency = 500,
>> + .flags = CPUIDLE_FLAG_TIMER_STOP,
>> .enter = imx6sx_enter_wait,
>> .name = "LOW-POWER-IDLE",
>> .desc = "ARM power off",
>> --
>> 2.15.1
>>