[PATCH 6/7] ARM: EXYNOS: PM: fix register setup on EXYNOS4x12 for AFTR mode code

Bartlomiej Zolnierkiewicz b.zolnierkie at samsung.com
Mon Jun 2 05:08:29 PDT 2014


Hi,

On Friday, May 16, 2014 11:03:11 AM Daniel Lezcano wrote:
> On 05/05/2014 12:57 PM, Bartlomiej Zolnierkiewicz wrote:
> > Add S5P_CENTRAL_SEQ_OPTION register setup for EXYNOS4x12 to AFTR
> > mode code.  Without this setup AFTR mode doesn't show any benefit
> > over WFI one.  When this setup is applied AFTR mode reduces power
> > consumption by ~12% (as measured on Trats2 board).
> >
> > This change is a preparation for adding secure firmware support to
> > EXYNOS cpuidle driver.
> >
> > Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie at samsung.com>
> > ---
> >   arch/arm/mach-exynos/pm.c | 4 ++++
> >   1 file changed, 4 insertions(+)
> >
> > diff --git a/arch/arm/mach-exynos/pm.c b/arch/arm/mach-exynos/pm.c
> > index 18f6bf8..3922968 100644
> > --- a/arch/arm/mach-exynos/pm.c
> > +++ b/arch/arm/mach-exynos/pm.c
> > @@ -391,6 +391,10 @@ static int exynos_cpu_pm_notifier(struct notifier_block *self,
> >   	case CPU_PM_ENTER:
> >   		if (cpu == 0) {
> >   			exynos_pm_central_suspend();
> > +			if (soc_is_exynos4212() || soc_is_exynos4412())
> > +				__raw_writel(S5P_USE_STANDBY_WFI0 |
> > +					     S5P_USE_STANDBY_WFE0,
> > +					     S5P_CENTRAL_SEQ_OPTION);
> 
> Why not put this code in the exynos_enter_aftr() ?

I would prefer to keep this code close to exynos_pm_central_suspend()
because exynos_pm_suspend() (which calls exynos_pm_central_suspend()
too) also contains S5P_USE_STANDBY_WF[I,E]0 setting code (done for all
SoCs).  If possible I would like to make this code common for AFTR &
suspend in the future (once it is tested on Exynos4210 and Exynos5250)
by moving S5P_USE_STANDBY_WF[I,E]0 setting to exynos_pm_central_suspend()
and doing it for all SoCs.  Are you okay with this?

> >   			exynos_cpu_save_register();
> >   		}
> >   		break;

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung R&D Institute Poland
Samsung Electronics




More information about the linux-arm-kernel mailing list