diff options
Diffstat (limited to 'arch/blackfin/mach-common/ints-priority.c')
-rw-r--r-- | arch/blackfin/mach-common/ints-priority.c | 14 |
1 files changed, 5 insertions, 9 deletions
diff --git a/arch/blackfin/mach-common/ints-priority.c b/arch/blackfin/mach-common/ints-priority.c index a604f19d8dc3..6e7db990bfae 100644 --- a/arch/blackfin/mach-common/ints-priority.c +++ b/arch/blackfin/mach-common/ints-priority.c | |||
@@ -312,8 +312,7 @@ static void bfin_handle_irq(unsigned irq) | |||
312 | __ipipe_handle_irq(irq, ®s); | 312 | __ipipe_handle_irq(irq, ®s); |
313 | ipipe_trace_irq_exit(irq); | 313 | ipipe_trace_irq_exit(irq); |
314 | #else /* !CONFIG_IPIPE */ | 314 | #else /* !CONFIG_IPIPE */ |
315 | struct irq_desc *desc = irq_desc + irq; | 315 | generic_handle_irq(irq); |
316 | desc->handle_irq(irq, desc); | ||
317 | #endif /* !CONFIG_IPIPE */ | 316 | #endif /* !CONFIG_IPIPE */ |
318 | } | 317 | } |
319 | 318 | ||
@@ -540,10 +539,7 @@ static inline void bfin_set_irq_handler(unsigned irq, irq_flow_handler_t handle) | |||
540 | #ifdef CONFIG_IPIPE | 539 | #ifdef CONFIG_IPIPE |
541 | _set_irq_handler(irq, handle_level_irq); | 540 | _set_irq_handler(irq, handle_level_irq); |
542 | #else | 541 | #else |
543 | struct irq_desc *desc = irq_desc + irq; | 542 | __set_irq_handler_unlocked(irq, handle); |
544 | /* May not call generic set_irq_handler() due to spinlock | ||
545 | recursion. */ | ||
546 | desc->handle_irq = handle; | ||
547 | #endif | 543 | #endif |
548 | } | 544 | } |
549 | 545 | ||
@@ -562,7 +558,7 @@ static void bfin_gpio_ack_irq(unsigned int irq) | |||
562 | 558 | ||
563 | static void bfin_gpio_mask_ack_irq(unsigned int irq) | 559 | static void bfin_gpio_mask_ack_irq(unsigned int irq) |
564 | { | 560 | { |
565 | struct irq_desc *desc = irq_desc + irq; | 561 | struct irq_desc *desc = irq_to_desc(irq); |
566 | u32 gpionr = irq_to_gpio(irq); | 562 | u32 gpionr = irq_to_gpio(irq); |
567 | 563 | ||
568 | if (desc->handle_irq == handle_edge_irq) | 564 | if (desc->handle_irq == handle_edge_irq) |
@@ -820,7 +816,7 @@ void init_pint_lut(void) | |||
820 | 816 | ||
821 | static void bfin_gpio_ack_irq(unsigned int irq) | 817 | static void bfin_gpio_ack_irq(unsigned int irq) |
822 | { | 818 | { |
823 | struct irq_desc *desc = irq_desc + irq; | 819 | struct irq_desc *desc = irq_to_desc(irq); |
824 | u32 pint_val = irq2pint_lut[irq - SYS_IRQS]; | 820 | u32 pint_val = irq2pint_lut[irq - SYS_IRQS]; |
825 | u32 pintbit = PINT_BIT(pint_val); | 821 | u32 pintbit = PINT_BIT(pint_val); |
826 | u32 bank = PINT_2_BANK(pint_val); | 822 | u32 bank = PINT_2_BANK(pint_val); |
@@ -837,7 +833,7 @@ static void bfin_gpio_ack_irq(unsigned int irq) | |||
837 | 833 | ||
838 | static void bfin_gpio_mask_ack_irq(unsigned int irq) | 834 | static void bfin_gpio_mask_ack_irq(unsigned int irq) |
839 | { | 835 | { |
840 | struct irq_desc *desc = irq_desc + irq; | 836 | struct irq_desc *desc = irq_to_desc(irq); |
841 | u32 pint_val = irq2pint_lut[irq - SYS_IRQS]; | 837 | u32 pint_val = irq2pint_lut[irq - SYS_IRQS]; |
842 | u32 pintbit = PINT_BIT(pint_val); | 838 | u32 pintbit = PINT_BIT(pint_val); |
843 | u32 bank = PINT_2_BANK(pint_val); | 839 | u32 bank = PINT_2_BANK(pint_val); |