]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/irqchip/irq-bcm2836.c
Merge remote-tracking branches 'spi/fix/ep93xx', 'spi/fix/rockchip', 'spi/fix/sunxi...
[karo-tx-linux.git] / drivers / irqchip / irq-bcm2836.c
index b6e950d4782a1e020acddb50705efb180fe758b3..72ff1d5c5de67058f4ef22bb233c41b7c737d6e3 100644 (file)
@@ -195,7 +195,7 @@ static void bcm2836_arm_irqchip_send_ipi(const struct cpumask *mask,
         * Ensure that stores to normal memory are visible to the
         * other CPUs before issuing the IPI.
         */
-       dsb();
+       smp_wmb();
 
        for_each_cpu(cpu, mask) {
                writel(1 << ipi, mailbox0_base + 16 * cpu);
@@ -223,6 +223,7 @@ static struct notifier_block bcm2836_arm_irqchip_cpu_notifier = {
        .priority = 100,
 };
 
+#ifdef CONFIG_ARM
 int __init bcm2836_smp_boot_secondary(unsigned int cpu,
                                      struct task_struct *idle)
 {
@@ -238,7 +239,7 @@ int __init bcm2836_smp_boot_secondary(unsigned int cpu,
 static const struct smp_operations bcm2836_smp_ops __initconst = {
        .smp_boot_secondary     = bcm2836_smp_boot_secondary,
 };
-
+#endif
 #endif
 
 static const struct irq_domain_ops bcm2836_arm_irqchip_intc_ops = {
@@ -252,12 +253,15 @@ bcm2836_arm_irqchip_smp_init(void)
        /* Unmask IPIs to the boot CPU. */
        bcm2836_arm_irqchip_cpu_notify(&bcm2836_arm_irqchip_cpu_notifier,
                                       CPU_STARTING,
-                                      (void *)smp_processor_id());
+                                      (void *)(uintptr_t)smp_processor_id());
        register_cpu_notifier(&bcm2836_arm_irqchip_cpu_notifier);
 
        set_smp_cross_call(bcm2836_arm_irqchip_send_ipi);
+
+#ifdef CONFIG_ARM
        smp_set_ops(&bcm2836_smp_ops);
 #endif
+#endif
 }
 
 /*