aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/arc/include/asm/mcip.h1
-rw-r--r--arch/arc/kernel/mcip.c15
-rw-r--r--arch/arc/plat-axs10x/axs10x.c5
-rw-r--r--arch/arc/plat-sim/platform.c1
4 files changed, 8 insertions, 14 deletions
diff --git a/arch/arc/include/asm/mcip.h b/arch/arc/include/asm/mcip.h
index 52c11f0bb0e5..c9b2b402a810 100644
--- a/arch/arc/include/asm/mcip.h
+++ b/arch/arc/include/asm/mcip.h
@@ -86,7 +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_early_smp(void);
90extern void mcip_init_smp(unsigned int cpu); 89extern void mcip_init_smp(unsigned int cpu);
91 90
92#endif 91#endif
diff --git a/arch/arc/kernel/mcip.c b/arch/arc/kernel/mcip.c
index e18d36eb0af6..96b0b62ced65 100644
--- a/arch/arc/kernel/mcip.c
+++ b/arch/arc/kernel/mcip.c
@@ -97,13 +97,7 @@ static void mcip_ipi_clear(int irq)
97#endif 97#endif
98} 98}
99 99
100struct plat_smp_ops plat_smp_ops = { 100static void mcip_probe_n_setup(void)
101 .info = smp_cpuinfo_buf,
102 .ipi_send = mcip_ipi_send,
103 .ipi_clear = mcip_ipi_clear,
104};
105
106void mcip_init_early_smp(void)
107{ 101{
108 struct mcip_bcr { 102 struct mcip_bcr {
109#ifdef CONFIG_CPU_BIG_ENDIAN 103#ifdef CONFIG_CPU_BIG_ENDIAN
@@ -142,6 +136,13 @@ void mcip_init_early_smp(void)
142 panic("kernel trying to use non-existent GRTC\n"); 136 panic("kernel trying to use non-existent GRTC\n");
143} 137}
144 138
139struct plat_smp_ops plat_smp_ops = {
140 .info = smp_cpuinfo_buf,
141 .init_early_smp = mcip_probe_n_setup,
142 .ipi_send = mcip_ipi_send,
143 .ipi_clear = mcip_ipi_clear,
144};
145
145/*************************************************************************** 146/***************************************************************************
146 * ARCv2 Interrupt Distribution Unit (IDU) 147 * ARCv2 Interrupt Distribution Unit (IDU)
147 * 148 *
diff --git a/arch/arc/plat-axs10x/axs10x.c b/arch/arc/plat-axs10x/axs10x.c
index 0a77b19e1df8..9ce199963363 100644
--- a/arch/arc/plat-axs10x/axs10x.c
+++ b/arch/arc/plat-axs10x/axs10x.c
@@ -455,11 +455,6 @@ static void __init axs103_early_init(void)
455 axs10x_print_board_ver(AXC003_CREG + 4088, "AXC003 CPU Card"); 455 axs10x_print_board_ver(AXC003_CREG + 4088, "AXC003 CPU Card");
456 456
457 axs10x_early_init(); 457 axs10x_early_init();
458
459#ifdef CONFIG_ARC_MCIP
460 /* No Hardware init, but filling the smp ops callbacks */
461 mcip_init_early_smp();
462#endif
463} 458}
464#endif 459#endif
465 460
diff --git a/arch/arc/plat-sim/platform.c b/arch/arc/plat-sim/platform.c
index d9e35b4a2f08..e4128cca1b52 100644
--- a/arch/arc/plat-sim/platform.c
+++ b/arch/arc/plat-sim/platform.c
@@ -31,7 +31,6 @@ static const char *simulation_compat[] __initconst = {
31MACHINE_START(SIMULATION, "simulation") 31MACHINE_START(SIMULATION, "simulation")
32 .dt_compat = simulation_compat, 32 .dt_compat = simulation_compat,
33#ifdef CONFIG_ARC_MCIP 33#ifdef CONFIG_ARC_MCIP
34 .init_early = mcip_init_early_smp,
35 .init_smp = mcip_init_smp, 34 .init_smp = mcip_init_smp,
36#endif 35#endif
37MACHINE_END 36MACHINE_END