aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVineet Gupta <vgupta@synopsys.com>2015-10-12 05:45:48 -0400
committerVineet Gupta <vgupta@synopsys.com>2015-10-28 06:43:41 -0400
commitaa0efcde45a36d1ea2bc5bde4d47f36ec17502de (patch)
treedfd120146de4c21866a077738af0436c26b37cb1
parent286130ebf196d9643800977d57bdb7cda266b49e (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.h2
-rw-r--r--arch/arc/kernel/mcip.c10
-rw-r--r--arch/arc/plat-axs10x/axs10x.c3
-rw-r--r--arch/arc/plat-sim/platform.c3
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
89extern 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
20static DEFINE_RAW_SPINLOCK(mcip_lock); 20static DEFINE_RAW_SPINLOCK(mcip_lock);
21 21
22/* 22static 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 */
29void 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)
139struct plat_smp_ops plat_smp_ops = { 132struct 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 = {
482MACHINE_START(AXS103, "axs103") 482MACHINE_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
488MACHINE_END 485MACHINE_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
31MACHINE_START(SIMULATION, "simulation") 31MACHINE_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
36MACHINE_END 33MACHINE_END