Message ID | E1Weoso-0002Pj-LE@rmk-PC.arm.linux.org.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 04/28/2014 10:58 AM, Russell King wrote: > diff --git a/arch/arm/mach-tegra/tegra.c b/arch/arm/mach-tegra/tegra.c > DT_MACHINE_START(TEGRA_DT, "NVIDIA Tegra SoC (Flattened Device Tree)") > - .map_io = tegra_map_common_io, > .smp = smp_ops(tegra_smp_ops), > + .l2c_aux_val = 0x3c400001, > + .l2c_aux_mask = 0xc20fc3fe, > + .map_io = tegra_map_common_io, I'm not sure why .map_io was moved. Was it to sort the entries in order of execution? If so, I assume that .smp should be moved too?
On Mon, Apr 28, 2014 at 11:28:00AM -0600, Stephen Warren wrote: > On 04/28/2014 10:58 AM, Russell King wrote: > > > diff --git a/arch/arm/mach-tegra/tegra.c b/arch/arm/mach-tegra/tegra.c > > > DT_MACHINE_START(TEGRA_DT, "NVIDIA Tegra SoC (Flattened Device Tree)") > > - .map_io = tegra_map_common_io, > > .smp = smp_ops(tegra_smp_ops), > > + .l2c_aux_val = 0x3c400001, > > + .l2c_aux_mask = 0xc20fc3fe, > > + .map_io = tegra_map_common_io, > > I'm not sure why .map_io was moved. Was it to sort the entries in order > of execution? If so, I assume that .smp should be moved too? I moved it quite simply because I keep entries in order: unsigned l2c_aux_val; /* L2 cache aux value */ unsigned l2c_aux_mask; /* L2 cache aux mask */ void (*l2c_write_sec)(unsigned long, unsigned); struct smp_operations *smp; /* SMP operations */ bool (*smp_init)(void); void (*fixup)(struct tag *, char **, struct meminfo *); void (*init_meminfo)(void); void (*reserve)(void);/* reserve mem blocks */ void (*map_io)(void);/* IO mapping function */ void (*init_early)(void); And the order of declaration in there (for the functions after "smp") is the order in which they are called during kernel initialisation. Platforms randomising their declarations is... silly. And yes, I'll move those l2c ones before .smp.
diff --git a/arch/arm/mach-tegra/tegra.c b/arch/arm/mach-tegra/tegra.c index 1bc49f9db015..d90065e2552a 100644 --- a/arch/arm/mach-tegra/tegra.c +++ b/arch/arm/mach-tegra/tegra.c @@ -70,20 +70,12 @@ u32 tegra_uart_config[3] = { 0, }; -static void __init tegra_init_cache(void) -{ -#ifdef CONFIG_CACHE_L2X0 - l2x0_of_init(0x3c400001, 0xc20fc3fe); -#endif -} - static void __init tegra_init_early(void) { of_register_trusted_foundations(); tegra_apb_io_init(); tegra_init_fuse(); tegra_cpu_reset_handler_init(); - tegra_init_cache(); tegra_powergate_init(); tegra_hotplug_init(); } @@ -171,8 +163,10 @@ static const char * const tegra_dt_board_compat[] = { }; DT_MACHINE_START(TEGRA_DT, "NVIDIA Tegra SoC (Flattened Device Tree)") - .map_io = tegra_map_common_io, .smp = smp_ops(tegra_smp_ops), + .l2c_aux_val = 0x3c400001, + .l2c_aux_mask = 0xc20fc3fe, + .map_io = tegra_map_common_io, .init_early = tegra_init_early, .init_irq = tegra_dt_init_irq, .init_machine = tegra_dt_init,
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> --- arch/arm/mach-tegra/tegra.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-)