[RFC PATCH 06/17] ARM: kernel: save/restore generic infrastructure

Lorenzo Pieralisi lorenzo.pieralisi at arm.com
Thu Jul 28 14:17:46 EDT 2011


On Thu, Jul 28, 2011 at 05:22:38PM +0100, Amit Kachhap wrote:
> On 7 July 2011 21:20, Lorenzo Pieralisi <lorenzo.pieralisi at arm.com> wrote:
> >
> > This patch provides the code infrastructure needed to maintain
> > a generic per-cpu architecture implementation of idle code.
> >
> > sr_platform.c :
> >        - code manages patchset initialization and memory management
> >
> > sr_context.c:
> >        - code initializes run-time context save/restore generic
> >          support
> >
> > sr_power.c:
> >        - provides the generic infrastructure to enter exit low
> >          power modes and communicate with Power Control Unit (PCU)
> >
> > v7 support hinges on the basic infrastructure to provide per-cpu
> > arch implementation basically through standard function pointers
> > signatures.
> >
> > Preprocessor defines include size of data needed to save/restore
> > L2 state. This define value should be moved to the respective
> > subsystem (PL310) once the patchset IF to that subsystem is settled.
> >
> > Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi at arm.com>
> > ---
> >  arch/arm/kernel/sr.h          |  162 +++++++++++++++++++++++++++++++++++++++++
> >  arch/arm/kernel/sr_context.c  |   23 ++++++
> >  arch/arm/kernel/sr_helpers.h  |   56 ++++++++++++++
> >  arch/arm/kernel/sr_platform.c |   48 ++++++++++++
> >  arch/arm/kernel/sr_power.c    |   26 +++++++
> >  5 files changed, 315 insertions(+), 0 deletions(-)
> >  create mode 100644 arch/arm/kernel/sr.h
> >  create mode 100644 arch/arm/kernel/sr_context.c
> >  create mode 100644 arch/arm/kernel/sr_helpers.h
> >  create mode 100644 arch/arm/kernel/sr_platform.c
> >  create mode 100644 arch/arm/kernel/sr_power.c
> >

[...]

> > +#ifdef CONFIG_SMP
> > +static inline void exit_coherency(void)
> > +{
> > +       unsigned int v;
> > +       asm volatile (
> > +               "mrc    p15, 0, %0, c1, c0, 1\n"
> > +               "bic    %0, %0, %1\n"
> > +               "mcr    p15, 0, %0, c1, c0, 1\n"
> > +                : "=&r" (v)
> > +                : "Ir" (0x40)
> > +                : );
> 
> The above line gives compilation error with my toolchain.
> Adding it as           : "cc");   fixes the error.
> 
>

Already fixed, with thanks,
Lorenzo




More information about the linux-arm-kernel mailing list