diff options
Diffstat (limited to 'arch/m68k/mac/baboon.c')
-rw-r--r-- | arch/m68k/mac/baboon.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/arch/m68k/mac/baboon.c b/arch/m68k/mac/baboon.c index 303a3b56c51c..8ea7498cec37 100644 --- a/arch/m68k/mac/baboon.c +++ b/arch/m68k/mac/baboon.c | |||
@@ -66,7 +66,7 @@ void __init baboon_register_interrupts(void) | |||
66 | 66 | ||
67 | irqreturn_t baboon_irq(int irq, void *dev_id) | 67 | irqreturn_t baboon_irq(int irq, void *dev_id) |
68 | { | 68 | { |
69 | int irq_bit,i; | 69 | int irq_bit, irq_num; |
70 | unsigned char events; | 70 | unsigned char events; |
71 | 71 | ||
72 | #ifdef DEBUG_IRQS | 72 | #ifdef DEBUG_IRQS |
@@ -78,14 +78,18 @@ irqreturn_t baboon_irq(int irq, void *dev_id) | |||
78 | if (!(events = baboon->mb_ifr & 0x07)) | 78 | if (!(events = baboon->mb_ifr & 0x07)) |
79 | return IRQ_NONE; | 79 | return IRQ_NONE; |
80 | 80 | ||
81 | for (i = 0, irq_bit = 1 ; i < 3 ; i++, irq_bit <<= 1) { | 81 | irq_num = IRQ_BABOON_0; |
82 | irq_bit = 1; | ||
83 | do { | ||
82 | if (events & irq_bit/* & baboon_active*/) { | 84 | if (events & irq_bit/* & baboon_active*/) { |
83 | baboon_active &= ~irq_bit; | 85 | baboon_active &= ~irq_bit; |
84 | baboon->mb_ifr &= ~irq_bit; | 86 | baboon->mb_ifr &= ~irq_bit; |
85 | m68k_handle_int(IRQ_BABOON_0 + i); | 87 | m68k_handle_int(irq_num); |
86 | baboon_active |= irq_bit; | 88 | baboon_active |= irq_bit; |
87 | } | 89 | } |
88 | } | 90 | irq_bit <<= 1; |
91 | irq_num++; | ||
92 | } while(events >= irq_bit); | ||
89 | #if 0 | 93 | #if 0 |
90 | if (baboon->mb_ifr & 0x02) macide_ack_intr(NULL); | 94 | if (baboon->mb_ifr & 0x02) macide_ack_intr(NULL); |
91 | /* for now we need to smash all interrupts */ | 95 | /* for now we need to smash all interrupts */ |