diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-12-16 08:49:34 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-12-24 04:49:52 -0500 |
commit | dec12e62c03d26bbc7a142f067215a3a43cce7d0 (patch) | |
tree | e83d19c45b487ad17ceb43c743aad2ed5701be8d | |
parent | 8ff1443c5439ecee7472b80cf12ecfc337e6ee98 (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.h | 1 | ||||
-rw-r--r-- | arch/arm/kernel/setup.c | 3 |
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 | ||