[PATCH 2/3] ARM: smp_scu: enable SCU standby support
Catalin Marinas
catalin.marinas at arm.com
Mon Jul 21 03:26:38 PDT 2014
On Mon, Jul 21, 2014 at 05:27:04PM +0800, Shawn Guo wrote:
> On Mon, Jul 21, 2014 at 09:51:50AM +0100, Will Deacon wrote:
> > On Mon, Jul 21, 2014 at 08:45:54AM +0100, Shawn Guo wrote:
> > > With SCU standby enabled, SCU CLK will be turned off when all processors
> > > are in WFI mode. And the clock will be turned on when any processor
> > > leaves WFI mode.
> > >
> > > This behavior should be preferable in terms of power efficiency of
> > > system idle. So let's set the SCU standby bit to enable the support in
> > > function scu_enable().
> > >
> > > Signed-off-by: Shawn Guo <shawn.guo at freescale.com>
> > > ---
> > > arch/arm/kernel/smp_scu.c | 3 ++-
> > > 1 file changed, 2 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/arch/arm/kernel/smp_scu.c b/arch/arm/kernel/smp_scu.c
> > > index c947508f84e6..9f29d167d02c 100644
> > > --- a/arch/arm/kernel/smp_scu.c
> > > +++ b/arch/arm/kernel/smp_scu.c
> > > @@ -18,6 +18,7 @@
> > >
> > > #define SCU_CTRL 0x00
> > > #define SCU_ENABLE (1 << 0)
> > > +#define SCU_STANDBY_ENABLE (1 << 5)
> > > #define SCU_CONFIG 0x04
> > > #define SCU_CPU_STATUS 0x08
> > > #define SCU_INVALIDATE 0x0c
> > > @@ -54,7 +55,7 @@ void scu_enable(void __iomem *scu_base)
> > > if (scu_ctrl & SCU_ENABLE)
> > > return;
> > >
> > > - scu_ctrl |= SCU_ENABLE;
> > > + scu_ctrl |= SCU_ENABLE | SCU_STANDBY_ENABLE;
> >
> > I don't think this bit exists on all revisions of the A9.
>
> Thanks for the info, Will. Is there any side-effect to write the
> standby bit on those revisions which do not define the bit?
The usual question - could the firmware enable this bit before Linux
starts? We already do a read/modify/write sequence here and are only
supposed to write the enable bit as the rest are implementation defined.
--
Catalin
More information about the linux-arm-kernel
mailing list