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

From: Anson Huang
Date: Tue Jan 09 2018 - 04:26:13 EST




Best Regards!
Anson Huang


> -----Original Message-----
> From: Dong Aisheng [mailto:dongas86@xxxxxxxxx]
> Sent: 2018-01-09 5:23 PM
> To: Stefan Agner <stefan@xxxxxxxx>
> Cc: shawnguo@xxxxxxxxxx; kernel@xxxxxxxxxxxxxx; Fabio Estevam
> <fabio.estevam@xxxxxxx>; robh+dt@xxxxxxxxxx; mark.rutland@xxxxxxx;
> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; Anson Huang <anson.huang@xxxxxxx>; dl-linux-imx
> <linux-imx@xxxxxxx>
> Subject: Re: [PATCH 1/7] ARM: imx: add timer stop flag to ARM power off state
>
> 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?
>
> Both mx6sx and mx6ul are using GPT which do not need that flag, suppose we
> should remove it, right?
> Anson can help confirm it.

For UP system like i.MX6SX, we do NOT enable "cortex-a9-twd-timer", so local
timer is NOT used, GPT is used instead, GPT's clock is NOT disabled when cpuidle,
so I think we should remove all these Timer stop flag for 6SX CPUIDLE.

Anson.

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