aboutsummaryrefslogtreecommitdiffstats
path: root/arch/blackfin/mach-common/ints-priority-dc.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/blackfin/mach-common/ints-priority-dc.c')
-rw-r--r--arch/blackfin/mach-common/ints-priority-dc.c21
1 files changed, 6 insertions, 15 deletions
diff --git a/arch/blackfin/mach-common/ints-priority-dc.c b/arch/blackfin/mach-common/ints-priority-dc.c
index c2f05fabedc1..4882f0e801a9 100644
--- a/arch/blackfin/mach-common/ints-priority-dc.c
+++ b/arch/blackfin/mach-common/ints-priority-dc.c
@@ -181,7 +181,6 @@ static struct irq_chip bf561_internal_irqchip = {
181 .unmask = bf561_internal_unmask_irq, 181 .unmask = bf561_internal_unmask_irq,
182}; 182};
183 183
184#ifdef CONFIG_IRQCHIP_DEMUX_GPIO
185static unsigned short gpio_enabled[gpio_bank(MAX_BLACKFIN_GPIOS)]; 184static unsigned short gpio_enabled[gpio_bank(MAX_BLACKFIN_GPIOS)];
186static unsigned short gpio_edge_triggered[gpio_bank(MAX_BLACKFIN_GPIOS)]; 185static unsigned short gpio_edge_triggered[gpio_bank(MAX_BLACKFIN_GPIOS)];
187 186
@@ -362,8 +361,6 @@ static void bf561_demux_gpio_irq(unsigned int inta_irq,
362 361
363} 362}
364 363
365#endif /* CONFIG_IRQCHIP_DEMUX_GPIO */
366
367void __init init_exception_vectors(void) 364void __init init_exception_vectors(void)
368{ 365{
369 SSYNC(); 366 SSYNC();
@@ -413,26 +410,21 @@ int __init init_arch_irq(void)
413 set_irq_chip(irq, &bf561_core_irqchip); 410 set_irq_chip(irq, &bf561_core_irqchip);
414 else 411 else
415 set_irq_chip(irq, &bf561_internal_irqchip); 412 set_irq_chip(irq, &bf561_internal_irqchip);
416#ifdef CONFIG_IRQCHIP_DEMUX_GPIO 413
417 if ((irq != IRQ_PROG0_INTA) && 414 if ((irq != IRQ_PROG0_INTA) &&
418 (irq != IRQ_PROG1_INTA) && (irq != IRQ_PROG2_INTA)) { 415 (irq != IRQ_PROG1_INTA) &&
419#endif 416 (irq != IRQ_PROG2_INTA))
420 set_irq_handler(irq, handle_simple_irq); 417 set_irq_handler(irq, handle_simple_irq);
421#ifdef CONFIG_IRQCHIP_DEMUX_GPIO 418 else
422 } else {
423 set_irq_chained_handler(irq, bf561_demux_gpio_irq); 419 set_irq_chained_handler(irq, bf561_demux_gpio_irq);
424 }
425#endif
426
427 } 420 }
428 421
429#ifdef CONFIG_IRQCHIP_DEMUX_GPIO
430 for (irq = IRQ_PF0; irq <= IRQ_PF47; irq++) { 422 for (irq = IRQ_PF0; irq <= IRQ_PF47; irq++) {
431 set_irq_chip(irq, &bf561_gpio_irqchip); 423 set_irq_chip(irq, &bf561_gpio_irqchip);
432 /* if configured as edge, then will be changed to do_edge_IRQ */ 424 /* if configured as edge, then will be changed to do_edge_IRQ */
433 set_irq_handler(irq, handle_level_irq); 425 set_irq_handler(irq, handle_level_irq);
434 } 426 }
435#endif 427
436 bfin_write_IMASK(0); 428 bfin_write_IMASK(0);
437 CSYNC(); 429 CSYNC();
438 ilat = bfin_read_ILAT(); 430 ilat = bfin_read_ILAT();
@@ -457,9 +449,8 @@ int __init init_arch_irq(void)
457} 449}
458 450
459#ifdef CONFIG_DO_IRQ_L1 451#ifdef CONFIG_DO_IRQ_L1
460void do_irq(int vec, struct pt_regs *fp)__attribute__((l1_text)); 452__attribute__((l1_text))
461#endif 453#endif
462
463void do_irq(int vec, struct pt_regs *fp) 454void do_irq(int vec, struct pt_regs *fp)
464{ 455{
465 if (vec == EVT_IVTMR_P) { 456 if (vec == EVT_IVTMR_P) {