summaryrefslogtreecommitdiff
path: root/arch/arm
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2010-12-16 16:49:34 +0300
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-12-24 12:49:52 +0300
commitdec12e62c03d26bbc7a142f067215a3a43cce7d0 (patch)
treee83d19c45b487ad17ceb43c743aad2ed5701be8d /arch/arm
parent8ff1443c5439ecee7472b80cf12ecfc337e6ee98 (diff)
downloadlinux-dec12e62c03d26bbc7a142f067215a3a43cce7d0.tar.xz
ARM: provide an early platform initialization hook
This allows platforms to hook into the initialization early to setup things like scheduler clocks, etc. Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/include/asm/mach/arch.h1
-rw-r--r--arch/arm/kernel/setup.c3
2 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm/include/asm/mach/arch.h b/arch/arm/include/asm/mach/arch.h
index 69908ddbaf18..3a0893a76a3b 100644
--- a/arch/arm/include/asm/mach/arch.h
+++ b/arch/arm/include/asm/mach/arch.h
@@ -37,6 +37,7 @@ struct machine_desc {
struct meminfo *);
void (*reserve)(void);/* reserve mem blocks */
void (*map_io)(void);/* IO mapping function */
+ void (*init_early)(void);
void (*init_irq)(void);
struct sys_timer *timer; /* system tick timer */
void (*init_machine)(void);
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index e53132eee27a..3455ad33de4c 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -880,6 +880,9 @@ void __init setup_arch(char **cmdline_p)
#endif
#endif
early_trap_init();
+
+ if (mdesc->init_early)
+ mdesc->init_early();
}