提交 26b8f996 编写于 作者: V Vineet Gupta

ARCv2: smp: [plat-*]: No need to explicitly call mcip_init_early_smp()

MCIP now registers it's own probe callback with smp_ops.init_early_smp()
which is called by ARC common code, so no need for platforms to do that.

This decouples the platforms and MCIP and helps confine MCIP details
to it's own file.
Signed-off-by: NVineet Gupta <vgupta@synopsys.com>
上级 e55af4da
...@@ -86,7 +86,6 @@ static inline void __mcip_cmd_data(unsigned int cmd, unsigned int param, ...@@ -86,7 +86,6 @@ static inline void __mcip_cmd_data(unsigned int cmd, unsigned int param,
__mcip_cmd(cmd, param); __mcip_cmd(cmd, param);
} }
extern void mcip_init_early_smp(void);
extern void mcip_init_smp(unsigned int cpu); extern void mcip_init_smp(unsigned int cpu);
#endif #endif
......
...@@ -97,13 +97,7 @@ static void mcip_ipi_clear(int irq) ...@@ -97,13 +97,7 @@ static void mcip_ipi_clear(int irq)
#endif #endif
} }
struct plat_smp_ops plat_smp_ops = { static void mcip_probe_n_setup(void)
.info = smp_cpuinfo_buf,
.ipi_send = mcip_ipi_send,
.ipi_clear = mcip_ipi_clear,
};
void mcip_init_early_smp(void)
{ {
struct mcip_bcr { struct mcip_bcr {
#ifdef CONFIG_CPU_BIG_ENDIAN #ifdef CONFIG_CPU_BIG_ENDIAN
...@@ -142,6 +136,13 @@ void mcip_init_early_smp(void) ...@@ -142,6 +136,13 @@ void mcip_init_early_smp(void)
panic("kernel trying to use non-existent GRTC\n"); panic("kernel trying to use non-existent GRTC\n");
} }
struct plat_smp_ops plat_smp_ops = {
.info = smp_cpuinfo_buf,
.init_early_smp = mcip_probe_n_setup,
.ipi_send = mcip_ipi_send,
.ipi_clear = mcip_ipi_clear,
};
/*************************************************************************** /***************************************************************************
* ARCv2 Interrupt Distribution Unit (IDU) * ARCv2 Interrupt Distribution Unit (IDU)
* *
......
...@@ -455,11 +455,6 @@ static void __init axs103_early_init(void) ...@@ -455,11 +455,6 @@ static void __init axs103_early_init(void)
axs10x_print_board_ver(AXC003_CREG + 4088, "AXC003 CPU Card"); axs10x_print_board_ver(AXC003_CREG + 4088, "AXC003 CPU Card");
axs10x_early_init(); axs10x_early_init();
#ifdef CONFIG_ARC_MCIP
/* No Hardware init, but filling the smp ops callbacks */
mcip_init_early_smp();
#endif
} }
#endif #endif
......
...@@ -31,7 +31,6 @@ static const char *simulation_compat[] __initconst = { ...@@ -31,7 +31,6 @@ static const char *simulation_compat[] __initconst = {
MACHINE_START(SIMULATION, "simulation") MACHINE_START(SIMULATION, "simulation")
.dt_compat = simulation_compat, .dt_compat = simulation_compat,
#ifdef CONFIG_ARC_MCIP #ifdef CONFIG_ARC_MCIP
.init_early = mcip_init_early_smp,
.init_smp = mcip_init_smp, .init_smp = mcip_init_smp,
#endif #endif
MACHINE_END MACHINE_END
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册