ARM: ux500: move l2x0 init to .init_irq
The generic IRQ init function also enables the l2 cache implicitly when the machine descriptor sets an .l2c_aux_mask. Let's use that on ux500 and remove the ux500_l2x0_init() along with the cpu_is_u8500_family checks. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This commit is contained in:
parent
4e657946cb
commit
1e6cbc0691
@ -51,17 +51,11 @@ static void ux500_l2c310_write_sec(unsigned long val, unsigned reg)
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
static int __init ux500_l2x0_init(void)
|
void __init ux500_l2x0_init(void)
|
||||||
{
|
{
|
||||||
/* Multiplatform guard */
|
|
||||||
if (!((cpu_is_u8500_family() || cpu_is_ux540_family())))
|
|
||||||
return -ENODEV;
|
|
||||||
|
|
||||||
/* Unlock before init */
|
/* Unlock before init */
|
||||||
ux500_l2x0_unlock();
|
ux500_l2x0_unlock();
|
||||||
outer_cache.write_sec = ux500_l2c310_write_sec;
|
outer_cache.write_sec = ux500_l2c310_write_sec;
|
||||||
l2x0_of_init(0, ~0);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
early_initcall(ux500_l2x0_init);
|
|
||||||
|
@ -141,10 +141,11 @@ static const char * stericsson_dt_platform_compat[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
DT_MACHINE_START(U8500_DT, "ST-Ericsson Ux5x0 platform (Device Tree Support)")
|
DT_MACHINE_START(U8500_DT, "ST-Ericsson Ux5x0 platform (Device Tree Support)")
|
||||||
|
.l2c_aux_val = 0,
|
||||||
|
.l2c_aux_mask = ~0,
|
||||||
.map_io = u8500_map_io,
|
.map_io = u8500_map_io,
|
||||||
.init_irq = ux500_init_irq,
|
.init_irq = ux500_init_irq,
|
||||||
.init_machine = u8500_init_machine,
|
.init_machine = u8500_init_machine,
|
||||||
.init_late = NULL,
|
|
||||||
.dt_compat = stericsson_dt_platform_compat,
|
.dt_compat = stericsson_dt_platform_compat,
|
||||||
.restart = ux500_restart,
|
.restart = ux500_restart,
|
||||||
MACHINE_END
|
MACHINE_END
|
||||||
|
@ -65,6 +65,7 @@ void __init ux500_init_irq(void)
|
|||||||
}
|
}
|
||||||
prcmu_early_init(r.start, r.end-r.start);
|
prcmu_early_init(r.start, r.end-r.start);
|
||||||
ux500_pm_init(r.start, r.end-r.start);
|
ux500_pm_init(r.start, r.end-r.start);
|
||||||
|
ux500_l2x0_init();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Init clocks here so that they are available for system timer
|
* Init clocks here so that they are available for system timer
|
||||||
|
@ -14,6 +14,9 @@
|
|||||||
#include <asm/mach/arch.h>
|
#include <asm/mach/arch.h>
|
||||||
#include <linux/init.h>
|
#include <linux/init.h>
|
||||||
|
|
||||||
|
|
||||||
|
void ux500_l2x0_init(void);
|
||||||
|
|
||||||
void ux500_restart(enum reboot_mode mode, const char *cmd);
|
void ux500_restart(enum reboot_mode mode, const char *cmd);
|
||||||
|
|
||||||
void __init ux500_setup_id(void);
|
void __init ux500_setup_id(void);
|
||||||
|
Loading…
Reference in New Issue
Block a user