aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2010-12-16 08:49:34 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-12-24 04:49:52 -0500
commitdec12e62c03d26bbc7a142f067215a3a43cce7d0 (patch)
treee83d19c45b487ad17ceb43c743aad2ed5701be8d
parent8ff1443c5439ecee7472b80cf12ecfc337e6ee98 (diff)
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>
-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 {
37 struct meminfo *); 37 struct meminfo *);
38 void (*reserve)(void);/* reserve mem blocks */ 38 void (*reserve)(void);/* reserve mem blocks */
39 void (*map_io)(void);/* IO mapping function */ 39 void (*map_io)(void);/* IO mapping function */
40 void (*init_early)(void);
40 void (*init_irq)(void); 41 void (*init_irq)(void);
41 struct sys_timer *timer; /* system tick timer */ 42 struct sys_timer *timer; /* system tick timer */
42 void (*init_machine)(void); 43 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)
880#endif 880#endif
881#endif 881#endif
882 early_trap_init(); 882 early_trap_init();
883
884 if (mdesc->init_early)
885 mdesc->init_early();
883} 886}
884 887
885 888