[PATCH] ARM: prima2: remove L2 cache size override

Arnd Bergmann arnd at arndb.de
Wed Apr 16 01:52:27 PDT 2014


On Tuesday 15 April 2014 22:56:15 Russell King - ARM Linux wrote:
> On Tue, Apr 15, 2014 at 06:13:27PM +0800, Barry Song wrote:
> > 
> > ok, it seems we still need to hook this into the callback of this
> > specific machine instead of using a global early_initcall(). since now
> > the dt compatible field has been generic enough, it will cause other
> > platforms to execute l2x0_of_init() too.
> 
> What I did for Versatile Express was to move it to the init_irq stage.
> I'm not condoning using init_irq() for non-IRQ stuff, but that was
> just to see whether it was possible (the .init_early is too early for
> it.)  Let me put it another way: I'm not thrilled by the idea of
> having it in init_irq() but that's a better location to call L2 cache
> initialisation than half-way through the kernel's initialisation.

Would it help to introduce a new .init_l2_cache() callback? That
way, the architecture code can default to initializing any l2x0
that it finds in DT, and have give platforms the option of
overriding the call if they need to, and we can do it at the
same point during early boot for everyone.

A number of platforms currently have the same

static void __init this_platform_init(void)
{
      l2x0_of_init(0, ~0UL);
      of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
}

Where the second line is already the default for .init_machine,
and it would be nice to get rid of the callback entirely, especially
for the machines that don't do anything else in their platform
code.

	Arnd



More information about the linux-arm-kernel mailing list