aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m68k/mac/baboon.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/m68k/mac/baboon.c')
-rw-r--r--arch/m68k/mac/baboon.c12
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
67irqreturn_t baboon_irq(int irq, void *dev_id) 67irqreturn_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 */