MIPS: smp-mt: Use common GIC IPI implementation
authorPaul Burton <paul.burton@imgtec.com>
Mon, 24 Mar 2014 10:19:31 +0000 (10:19 +0000)
committerRalf Baechle <ralf@linux-mips.org>
Mon, 31 Mar 2014 16:17:12 +0000 (18:17 +0200)
Rather than duplicating the GIC IPI send function, share the one already
used by CONFIG_MIPS_CPS & CONFIG_MIPS_CMP.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: Paul Burton <paul.burton@imgtec.com>
Patchwork: https://patchwork.linux-mips.org/patch/6653/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/Kconfig
arch/mips/kernel/smp-mt.c

index a5ea11d8ec4e283ebe053cc461315fb5c74621ab..14aeb174e00f0f15dc13c8860ffa5f8c91313ea2 100644 (file)
@@ -1918,6 +1918,7 @@ config MIPS_MT_SMP
        select CPU_MIPSR2_IRQ_VI
        select CPU_MIPSR2_IRQ_EI
        select SYNC_R4K
+       select MIPS_GIC_IPI
        select MIPS_MT
        select SMP
        select SMP_UP
index 3378c452e5d74b9d548a358d1f91508444372b3a..f8e13149604d74529dd746f889bf6a1345f4bf9e 100644 (file)
@@ -113,27 +113,6 @@ static void __init smvp_tc_init(unsigned int tc, unsigned int mvpconf0)
        write_tc_c0_tchalt(TCHALT_H);
 }
 
-#ifdef CONFIG_IRQ_GIC
-static void mp_send_ipi_single(int cpu, unsigned int action)
-{
-       unsigned long flags;
-
-       local_irq_save(flags);
-
-       switch (action) {
-       case SMP_CALL_FUNCTION:
-               gic_send_ipi(plat_ipi_call_int_xlate(cpu));
-               break;
-
-       case SMP_RESCHEDULE_YOURSELF:
-               gic_send_ipi(plat_ipi_resched_int_xlate(cpu));
-               break;
-       }
-
-       local_irq_restore(flags);
-}
-#endif
-
 static void vsmp_send_ipi_single(int cpu, unsigned int action)
 {
        int i;
@@ -142,7 +121,7 @@ static void vsmp_send_ipi_single(int cpu, unsigned int action)
 
 #ifdef CONFIG_IRQ_GIC
        if (gic_present) {
-               mp_send_ipi_single(cpu, action);
+               gic_send_ipi_single(cpu, action);
                return;
        }
 #endif