Blackfin: handle the core timer interrupt with handle_percpu_irq on SMP
authorGraf Yang <graf.yang@analog.com>
Tue, 18 Aug 2009 04:29:33 +0000 (04:29 +0000)
committerMike Frysinger <vapier@gentoo.org>
Thu, 17 Sep 2009 02:10:29 +0000 (22:10 -0400)
Signed-off-by: Graf Yang <graf.yang@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
arch/blackfin/mach-common/ints-priority.c

index 4cc55bc..6ffda78 100644 (file)
@@ -1052,18 +1052,26 @@ int __init init_arch_irq(void)
                        set_irq_chained_handler(irq, bfin_demux_error_irq);
                        break;
 #endif
+
 #ifdef CONFIG_SMP
+#ifdef CONFIG_TICKSOURCE_GPTMR0
+               case IRQ_TIMER0:
+#endif
+#ifdef CONFIG_TICKSOURCE_CORETMR
+               case IRQ_CORETMR:
+#endif
                case IRQ_SUPPLE_0:
                case IRQ_SUPPLE_1:
                        set_irq_handler(irq, handle_percpu_irq);
                        break;
 #endif
+
 #ifdef CONFIG_IPIPE
 #ifndef CONFIG_TICKSOURCE_CORETMR
                case IRQ_TIMER0:
                        set_irq_handler(irq, handle_simple_irq);
                        break;
-#endif /* !CONFIG_TICKSOURCE_CORETMR */
+#endif
                case IRQ_CORETMR:
                        set_irq_handler(irq, handle_simple_irq);
                        break;
@@ -1071,15 +1079,10 @@ int __init init_arch_irq(void)
                        set_irq_handler(irq, handle_level_irq);
                        break;
 #else /* !CONFIG_IPIPE */
-#ifdef CONFIG_TICKSOURCE_GPTMR0
-               case IRQ_TIMER0:
-                       set_irq_handler(irq, handle_percpu_irq);
-                       break;
-#endif /* CONFIG_TICKSOURCE_GPTMR0 */
                default:
                        set_irq_handler(irq, handle_simple_irq);
                        break;
-#endif /* !CONFIG_IPIPE */
+#endif /* !CONFIG_IPIPE */
                }
        }