소스 검색

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>
Vineet Gupta 9 년 전
부모
커밋
aa0efcde45
4개의 변경된 파일2개의 추가작업 그리고 16개의 파일을 삭제
  1. 0 2
      arch/arc/include/asm/mcip.h
  2. 2 8
      arch/arc/kernel/mcip.c
  3. 0 3
      arch/arc/plat-axs10x/axs10x.c
  4. 0 3
      arch/arc/plat-sim/platform.c

+ 0 - 2
arch/arc/include/asm/mcip.h

@@ -86,8 +86,6 @@ static inline void __mcip_cmd_data(unsigned int cmd, unsigned int param,
 	__mcip_cmd(cmd, param);
 }
 
-extern void mcip_init_smp(unsigned int cpu);
-
 #endif
 
 #endif

+ 2 - 8
arch/arc/kernel/mcip.c

@@ -19,14 +19,7 @@ static int idu_detected;
 
 static DEFINE_RAW_SPINLOCK(mcip_lock);
 
-/*
- * Any SMP specific init any CPU does when it comes up.
- * Here we setup the CPU to enable Inter-Processor-Interrupts
- * Called for each CPU
- * -Master      : init_IRQ()
- * -Other(s)    : start_kernel_secondary()
- */
-void mcip_init_smp(unsigned int cpu)
+static void mcip_setup_per_cpu(int cpu)
 {
 	smp_ipi_irq_setup(cpu, IPI_IRQ);
 }
@@ -139,6 +132,7 @@ static void mcip_probe_n_setup(void)
 struct plat_smp_ops plat_smp_ops = {
 	.info		= smp_cpuinfo_buf,
 	.init_early_smp	= mcip_probe_n_setup,
+	.init_irq_cpu	= mcip_setup_per_cpu,
 	.ipi_send	= mcip_ipi_send,
 	.ipi_clear	= mcip_ipi_clear,
 };

+ 0 - 3
arch/arc/plat-axs10x/axs10x.c

@@ -482,9 +482,6 @@ static const char *axs103_compat[] __initconst = {
 MACHINE_START(AXS103, "axs103")
 	.dt_compat	= axs103_compat,
 	.init_early	= axs103_early_init,
-#ifdef CONFIG_ARC_MCIP
-	.init_smp	= mcip_init_smp,
-#endif
 MACHINE_END
 
 /*

+ 0 - 3
arch/arc/plat-sim/platform.c

@@ -30,7 +30,4 @@ static const char *simulation_compat[] __initconst = {
 
 MACHINE_START(SIMULATION, "simulation")
 	.dt_compat	= simulation_compat,
-#ifdef CONFIG_ARC_MCIP
-	.init_smp	= mcip_init_smp,
-#endif
 MACHINE_END