[patch 2/2] arm: Implement l2x0 cache disable functions

Thomas Gleixner tglx at linutronix.de
Mon Jul 5 07:10:56 EDT 2010


On Mon, 5 Jul 2010, Catalin Marinas wrote:

> On Mon, 2010-07-05 at 10:25 +0100, Thomas Gleixner wrote:
> > --- linux-2.6.orig/arch/arm/mm/cache-l2x0.c
> > +++ linux-2.6/arch/arm/mm/cache-l2x0.c
> > @@ -103,7 +103,19 @@ static void l2x0_cache_sync(void)
> >         spin_unlock_irqrestore(&l2x0_lock, flags);
> >  }
> > 
> > -static inline void l2x0_inv_all(void)
> > +static void l2x0_flush_all(void)
> > +{
> > +       unsigned long flags;
> > +
> > +       /* clean all ways */
> > +       spin_lock_irqsave(&l2x0_lock, flags);
> > +       writel(l2x0_way_mask, l2x0_base + L2X0_CLEAN_WAY);
> > +       cache_wait(l2x0_base + L2X0_CLEAN_WAY, l2x0_way_mask);
> > +       cache_sync();
> > +       spin_unlock_irqrestore(&l2x0_lock, flags);
> > +}
> 
> Since it only does cleaning, we should probably call it l2x0_clean_all
> (the same for the outer_cache_fns entry). I think on ARM we
> traditionally referred to flush as clean+invalidate.

So CLEAN_INV_WAY is the right opcode ?

Thanks,

	tglx



More information about the linux-arm-kernel mailing list