diff options
author | Vineet Gupta <vgupta@synopsys.com> | 2015-10-12 05:45:48 -0400 |
---|---|---|
committer | Vineet Gupta <vgupta@synopsys.com> | 2015-10-28 06:43:41 -0400 |
commit | aa0efcde45a36d1ea2bc5bde4d47f36ec17502de (patch) | |
tree | dfd120146de4c21866a077738af0436c26b37cb1 | |
parent | 286130ebf196d9643800977d57bdb7cda266b49e (diff) |
ARCv2: smp: [plat-*]: No need to explicitly call mcip_init_smp()
MCIP now registers it's own per cpu setup routine (for IPI IRQ request)
using smp_ops.init_irq_cpu().
So no need for platforms to do that. This now completely decouples
platforms from MCIP.
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
-rw-r--r-- | arch/arc/include/asm/mcip.h | 2 | ||||
-rw-r--r-- | arch/arc/kernel/mcip.c | 10 | ||||
-rw-r--r-- | arch/arc/plat-axs10x/axs10x.c | 3 | ||||
-rw-r--r-- | arch/arc/plat-sim/platform.c | 3 |
4 files changed, 2 insertions, 16 deletions
diff --git a/arch/arc/include/asm/mcip.h b/arch/arc/include/asm/mcip.h index c9b2b402a810..46f4e5351b2a 100644 --- a/arch/arc/include/asm/mcip.h +++ b/arch/arc/include/asm/mcip.h | |||
@@ -86,8 +86,6 @@ static inline void __mcip_cmd_data(unsigned int cmd, unsigned int param, | |||
86 | __mcip_cmd(cmd, param); | 86 | __mcip_cmd(cmd, param); |
87 | } | 87 | } |
88 | 88 | ||
89 | extern void mcip_init_smp(unsigned int cpu); | ||
90 | |||
91 | #endif | 89 | #endif |
92 | 90 | ||
93 | #endif | 91 | #endif |
diff --git a/arch/arc/kernel/mcip.c b/arch/arc/kernel/mcip.c index 96b0b62ced65..74a9b074ac3e 100644 --- a/arch/arc/kernel/mcip.c +++ b/arch/arc/kernel/mcip.c | |||
@@ -19,14 +19,7 @@ static int idu_detected; | |||
19 | 19 | ||
20 | static DEFINE_RAW_SPINLOCK(mcip_lock); | 20 | static DEFINE_RAW_SPINLOCK(mcip_lock); |
21 | 21 | ||
22 | /* | 22 | static void mcip_setup_per_cpu(int cpu) |
23 | * Any SMP specific init any CPU does when it comes up. | ||
24 | * Here we setup the CPU to enable Inter-Processor-Interrupts | ||
25 | * Called for each CPU | ||
26 | * -Master : init_IRQ() | ||
27 | * -Other(s) : start_kernel_secondary() | ||
28 | */ | ||
29 | void mcip_init_smp(unsigned int cpu) | ||
30 | { | 23 | { |
31 | smp_ipi_irq_setup(cpu, IPI_IRQ); | 24 | smp_ipi_irq_setup(cpu, IPI_IRQ); |
32 | } | 25 | } |
@@ -139,6 +132,7 @@ static void mcip_probe_n_setup(void) | |||
139 | struct plat_smp_ops plat_smp_ops = { | 132 | struct plat_smp_ops plat_smp_ops = { |
140 | .info = smp_cpuinfo_buf, | 133 | .info = smp_cpuinfo_buf, |
141 | .init_early_smp = mcip_probe_n_setup, | 134 | .init_early_smp = mcip_probe_n_setup, |
135 | .init_irq_cpu = mcip_setup_per_cpu, | ||
142 | .ipi_send = mcip_ipi_send, | 136 | .ipi_send = mcip_ipi_send, |
143 | .ipi_clear = mcip_ipi_clear, | 137 | .ipi_clear = mcip_ipi_clear, |
144 | }; | 138 | }; |
diff --git a/arch/arc/plat-axs10x/axs10x.c b/arch/arc/plat-axs10x/axs10x.c index 9ce199963363..1b0f0f458a2b 100644 --- a/arch/arc/plat-axs10x/axs10x.c +++ b/arch/arc/plat-axs10x/axs10x.c | |||
@@ -482,9 +482,6 @@ static const char *axs103_compat[] __initconst = { | |||
482 | MACHINE_START(AXS103, "axs103") | 482 | MACHINE_START(AXS103, "axs103") |
483 | .dt_compat = axs103_compat, | 483 | .dt_compat = axs103_compat, |
484 | .init_early = axs103_early_init, | 484 | .init_early = axs103_early_init, |
485 | #ifdef CONFIG_ARC_MCIP | ||
486 | .init_smp = mcip_init_smp, | ||
487 | #endif | ||
488 | MACHINE_END | 485 | MACHINE_END |
489 | 486 | ||
490 | /* | 487 | /* |
diff --git a/arch/arc/plat-sim/platform.c b/arch/arc/plat-sim/platform.c index e4128cca1b52..dde692812bc1 100644 --- a/arch/arc/plat-sim/platform.c +++ b/arch/arc/plat-sim/platform.c | |||
@@ -30,7 +30,4 @@ static const char *simulation_compat[] __initconst = { | |||
30 | 30 | ||
31 | MACHINE_START(SIMULATION, "simulation") | 31 | MACHINE_START(SIMULATION, "simulation") |
32 | .dt_compat = simulation_compat, | 32 | .dt_compat = simulation_compat, |
33 | #ifdef CONFIG_ARC_MCIP | ||
34 | .init_smp = mcip_init_smp, | ||
35 | #endif | ||
36 | MACHINE_END | 33 | MACHINE_END |