]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ARCv2: smp: [plat-*]: No need to explicitly call mcip_init_early_smp()
authorVineet Gupta <vgupta@synopsys.com>
Mon, 12 Oct 2015 11:08:07 +0000 (16:38 +0530)
committerVineet Gupta <vgupta@synopsys.com>
Wed, 28 Oct 2015 10:43:40 +0000 (16:13 +0530)
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 <vgupta@synopsys.com>
arch/arc/include/asm/mcip.h
arch/arc/kernel/mcip.c
arch/arc/plat-axs10x/axs10x.c
arch/arc/plat-sim/platform.c

index 52c11f0bb0e5b5afbeacda75ef9c014032de4fb4..c9b2b402a8103b34f3e5c570ba27a36310162559 100644 (file)
@@ -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
index e18d36eb0af60b55a1991fd6267cf5a18b960503..96b0b62ced65b627133a9df0e3c0502125292487 100644 (file)
@@ -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
@@ -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)
  *
index 0a77b19e1df8db1d37af0346e36a4b53254ca272..9ce1999633631983246e276a6957f96199015ce9 100644 (file)
@@ -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
 
index d9e35b4a2f0861bd9e0bd9ad38360e959029d62c..e4128cca1b52cac496c870a8d333a78a7009a85f 100644 (file)
@@ -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