Re: [PATCH 3/9] arm: add call to CPU idle quirks handler

Nicolas Pitre
2015-06-25T16:43:10Z

On Tue, 23 Jun 2015, Arnd Bergmann wrote:

> On Tuesday 23 June 2015 23:19:41 Paul Osmialowski wrote:
> > Some SoCs need additional actions to be performed after arch idle,
> > e.g. Kinetis requires invalidation of the I/D bus cache.
> >
> > Such handler could be held in provided <mach/idle.h> header file.
> >
> > Signed-off-by: Paul Osmialowski <pawelo@king.net.pl>
> > ---
> > arch/arm/Kconfig | 7 +++++++
> > arch/arm/kernel/process.c | 7 +++++++
> > 2 files changed, 14 insertions(+)
> >
> > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> > index 8e3a833..8ef8f8f 100644
> > --- a/arch/arm/Kconfig
> > +++ b/arch/arm/Kconfig
> > @@ -98,6 +98,13 @@ config ARM_HAS_SG_CHAIN
> > config NEED_SG_DMA_LENGTH
> > bool
> >
> > +config NEED_MACH_IDLE_H
> > + bool
> > +
> > +config ARM_CPU_IDLE_QUIRKS
> > + bool
> > + select NEED_MACH_IDLE_H
> > +
>
> We're not adding header files like this, please come up
> with another solution. How about a cpuidle driver, or
> possibly just overriding arm_pm_idle()?

If the WFI instruction always requires I and D flushing, then it might
be a better idea to provide a replacement for the corresponding
cpu_*_do_idle function. Plenty of examples exist for other cpu_*
functions.

Nicolas