]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/arc/kernel/mcip.c
ARC: smp: Move default boot kick/wait code out of MCIP into common code
[karo-tx-linux.git] / arch / arc / kernel / mcip.c
index d9e44b62df05d81a31305048aa91290784980e9d..e18d36eb0af60b55a1991fd6267cf5a18b960503 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/irq.h>
 #include <linux/spinlock.h>
 #include <asm/mcip.h>
+#include <asm/setup.h>
 
 static char smp_cpuinfo_buf[128];
 static int idu_detected;
@@ -96,34 +97,14 @@ static void mcip_ipi_clear(int irq)
 #endif
 }
 
-volatile int wake_flag;
-
-static void mcip_wakeup_cpu(int cpu, unsigned long pc)
-{
-       BUG_ON(cpu == 0);
-       wake_flag = cpu;
-}
-
-void arc_platform_smp_wait_to_boot(int cpu)
-{
-       while (wake_flag != cpu)
-               ;
-
-       wake_flag = 0;
-       __asm__ __volatile__("j @first_lines_of_secondary       \n");
-}
-
 struct plat_smp_ops plat_smp_ops = {
        .info           = smp_cpuinfo_buf,
-       .cpu_kick       = mcip_wakeup_cpu,
        .ipi_send       = mcip_ipi_send,
        .ipi_clear      = mcip_ipi_clear,
 };
 
 void mcip_init_early_smp(void)
 {
-#define IS_AVAIL1(var, str)    ((var) ? str : "")
-
        struct mcip_bcr {
 #ifdef CONFIG_CPU_BIG_ENDIAN
                unsigned int pad3:8,
@@ -252,7 +233,7 @@ static struct irq_chip idu_irq_chip = {
 
 static int idu_first_irq;
 
-static void idu_cascade_isr(unsigned int __core_irq, struct irq_desc *desc)
+static void idu_cascade_isr(struct irq_desc *desc)
 {
        struct irq_domain *domain = irq_desc_get_handler_data(desc);
        unsigned int core_irq = irq_desc_get_irq(desc);