diff options
author | Vineet Gupta <vgupta@synopsys.com> | 2015-10-12 13:58:55 +0300 |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2015-10-28 13:43:40 +0300 |
commit | e55af4da026ebdb9ded3cb7708b8a8bd7884ad3a (patch) | |
tree | dcd0c632606005ec87ffa24fa2414040fce1cfa0 /arch/arc/kernel/setup.c | |
parent | 4c82f28617ab9ce938118f0b99156a96c64d3da0 (diff) | |
download | linux-e55af4da026ebdb9ded3cb7708b8a8bd7884ad3a.tar.xz |
ARC: smp: Introduce smp hook @init_early_smp for Master core
This adds a platform agnostic early SMP init hook which is called on
Master core before calling setup_processor()
setup_arch()
smp_init_cpus()
smp_ops.init_early_smp()
...
setup_processor()
How this helps:
- Used for one time init of certain SMP centric IP blocks, before
calling setup_processor() which probes various bits of core,
possibly including this block
- Currently platforms need to call this IP block init from their
init routines, which doesn't make sense as this is specific to ARC
core and not platform and otherwise requires copy/paste in all
(and hence a possible point of failure)
e.g. MCIP init is called from 2 platforms currently (axs10x and sim)
which will go away once we have this.
This change only adds the hooks but they are empty for now. Next commit
will populate them and remove the explicit init calls from platforms.
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
Diffstat (limited to 'arch/arc/kernel/setup.c')
-rw-r--r-- | arch/arc/kernel/setup.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/arc/kernel/setup.c b/arch/arc/kernel/setup.c index 68d3e181a82f..c33e77c0ad3e 100644 --- a/arch/arc/kernel/setup.c +++ b/arch/arc/kernel/setup.c @@ -411,8 +411,9 @@ void __init setup_arch(char **cmdline_p) if (machine_desc->init_early) machine_desc->init_early(); - setup_processor(); smp_init_cpus(); + + setup_processor(); setup_arch_memory(); /* copy flat DT out of .init and then unflatten it */ |