diff options
Diffstat (limited to 'arch/blackfin/mach-common/ints-priority-sc.c')
-rw-r--r-- | arch/blackfin/mach-common/ints-priority-sc.c | 48 |
1 files changed, 28 insertions, 20 deletions
diff --git a/arch/blackfin/mach-common/ints-priority-sc.c b/arch/blackfin/mach-common/ints-priority-sc.c index 28a878c3577a..4708023fe716 100644 --- a/arch/blackfin/mach-common/ints-priority-sc.c +++ b/arch/blackfin/mach-common/ints-priority-sc.c | |||
@@ -579,8 +579,12 @@ static unsigned int bfin_gpio_irq_startup(unsigned int irq) | |||
579 | u16 gpionr = irq - IRQ_PA0; | 579 | u16 gpionr = irq - IRQ_PA0; |
580 | u8 pint_val = irq2pint_lut[irq - SYS_IRQS]; | 580 | u8 pint_val = irq2pint_lut[irq - SYS_IRQS]; |
581 | 581 | ||
582 | if (pint_val == IRQ_NOT_AVAIL) | 582 | if (pint_val == IRQ_NOT_AVAIL) { |
583 | printk(KERN_ERR | ||
584 | "GPIO IRQ %d :Not in PINT Assign table " | ||
585 | "Reconfigure Interrupt to Port Assignemt\n", irq); | ||
583 | return -ENODEV; | 586 | return -ENODEV; |
587 | } | ||
584 | 588 | ||
585 | if (!(gpio_enabled[gpio_bank(gpionr)] & gpio_bit(gpionr))) { | 589 | if (!(gpio_enabled[gpio_bank(gpionr)] & gpio_bit(gpionr))) { |
586 | ret = gpio_request(gpionr, NULL); | 590 | ret = gpio_request(gpionr, NULL); |
@@ -713,6 +717,29 @@ static void bfin_demux_gpio_irq(unsigned int intb_irq, | |||
713 | } | 717 | } |
714 | #endif /* CONFIG_IRQCHIP_DEMUX_GPIO */ | 718 | #endif /* CONFIG_IRQCHIP_DEMUX_GPIO */ |
715 | 719 | ||
720 | void __init init_exception_vectors(void) | ||
721 | { | ||
722 | SSYNC(); | ||
723 | |||
724 | #ifndef CONFIG_KGDB | ||
725 | bfin_write_EVT0(evt_emulation); | ||
726 | #endif | ||
727 | bfin_write_EVT2(evt_evt2); | ||
728 | bfin_write_EVT3(trap); | ||
729 | bfin_write_EVT5(evt_ivhw); | ||
730 | bfin_write_EVT6(evt_timer); | ||
731 | bfin_write_EVT7(evt_evt7); | ||
732 | bfin_write_EVT8(evt_evt8); | ||
733 | bfin_write_EVT9(evt_evt9); | ||
734 | bfin_write_EVT10(evt_evt10); | ||
735 | bfin_write_EVT11(evt_evt11); | ||
736 | bfin_write_EVT12(evt_evt12); | ||
737 | bfin_write_EVT13(evt_evt13); | ||
738 | bfin_write_EVT14(evt14_softirq); | ||
739 | bfin_write_EVT15(evt_system_call); | ||
740 | CSYNC(); | ||
741 | } | ||
742 | |||
716 | /* | 743 | /* |
717 | * This function should be called during kernel startup to initialize | 744 | * This function should be called during kernel startup to initialize |
718 | * the BFin IRQ handling routines. | 745 | * the BFin IRQ handling routines. |
@@ -733,29 +760,10 @@ int __init init_arch_irq(void) | |||
733 | bfin_write_SIC_IMASK(SIC_UNMASK_ALL); | 760 | bfin_write_SIC_IMASK(SIC_UNMASK_ALL); |
734 | bfin_write_SIC_IWR(IWR_ENABLE_ALL); | 761 | bfin_write_SIC_IWR(IWR_ENABLE_ALL); |
735 | #endif | 762 | #endif |
736 | |||
737 | SSYNC(); | 763 | SSYNC(); |
738 | 764 | ||
739 | local_irq_disable(); | 765 | local_irq_disable(); |
740 | 766 | ||
741 | #ifndef CONFIG_KGDB | ||
742 | bfin_write_EVT0(evt_emulation); | ||
743 | #endif | ||
744 | bfin_write_EVT2(evt_evt2); | ||
745 | bfin_write_EVT3(trap); | ||
746 | bfin_write_EVT5(evt_ivhw); | ||
747 | bfin_write_EVT6(evt_timer); | ||
748 | bfin_write_EVT7(evt_evt7); | ||
749 | bfin_write_EVT8(evt_evt8); | ||
750 | bfin_write_EVT9(evt_evt9); | ||
751 | bfin_write_EVT10(evt_evt10); | ||
752 | bfin_write_EVT11(evt_evt11); | ||
753 | bfin_write_EVT12(evt_evt12); | ||
754 | bfin_write_EVT13(evt_evt13); | ||
755 | bfin_write_EVT14(evt14_softirq); | ||
756 | bfin_write_EVT15(evt_system_call); | ||
757 | CSYNC(); | ||
758 | |||
759 | #if defined(CONFIG_IRQCHIP_DEMUX_GPIO) && defined(CONFIG_BF54x) | 767 | #if defined(CONFIG_IRQCHIP_DEMUX_GPIO) && defined(CONFIG_BF54x) |
760 | #ifdef CONFIG_PINTx_REASSIGN | 768 | #ifdef CONFIG_PINTx_REASSIGN |
761 | pint[0]->assign = CONFIG_PINT0_ASSIGN; | 769 | pint[0]->assign = CONFIG_PINT0_ASSIGN; |