Skip to content

Commit

Permalink
ARCv2: smp: [plat-*]: No need to explicitly call mcip_init_early_smp()
Browse files Browse the repository at this point in the history
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: Vineet Gupta <[email protected]>
  • Loading branch information
vineetgarc committed Oct 28, 2015
1 parent e55af4d commit 26b8f99
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 14 deletions.
1 change: 0 additions & 1 deletion arch/arc/include/asm/mcip.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,6 @@ static inline void __mcip_cmd_data(unsigned int cmd, unsigned int param,
__mcip_cmd(cmd, param);
}

extern void mcip_init_early_smp(void);
extern void mcip_init_smp(unsigned int cpu);

#endif
Expand Down
15 changes: 8 additions & 7 deletions arch/arc/kernel/mcip.c
Original file line number Diff line number Diff line change
Expand Up @@ -97,13 +97,7 @@ static void mcip_ipi_clear(int irq)
#endif
}

struct plat_smp_ops plat_smp_ops = {
.info = smp_cpuinfo_buf,
.ipi_send = mcip_ipi_send,
.ipi_clear = mcip_ipi_clear,
};

void mcip_init_early_smp(void)
static void mcip_probe_n_setup(void)
{
struct mcip_bcr {
#ifdef CONFIG_CPU_BIG_ENDIAN
Expand Down Expand Up @@ -142,6 +136,13 @@ void mcip_init_early_smp(void)
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)
*
Expand Down
5 changes: 0 additions & 5 deletions arch/arc/plat-axs10x/axs10x.c
Original file line number Diff line number Diff line change
Expand Up @@ -455,11 +455,6 @@ static void __init axs103_early_init(void)
axs10x_print_board_ver(AXC003_CREG + 4088, "AXC003 CPU Card");

axs10x_early_init();

#ifdef CONFIG_ARC_MCIP
/* No Hardware init, but filling the smp ops callbacks */
mcip_init_early_smp();
#endif
}
#endif

Expand Down
1 change: 0 additions & 1 deletion arch/arc/plat-sim/platform.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ static const char *simulation_compat[] __initconst = {
MACHINE_START(SIMULATION, "simulation")
.dt_compat = simulation_compat,
#ifdef CONFIG_ARC_MCIP
.init_early = mcip_init_early_smp,
.init_smp = mcip_init_smp,
#endif
MACHINE_END

0 comments on commit 26b8f99

Please sign in to comment.