static void baboon_irq(struct irq_desc *desc) { int irq_bit, irq_num; unsigned char events; events = baboon->mb_ifr & 0x07; if (!events) return; irq_num = IRQ_BABOON_0; irq_bit = 1; do { if (events & irq_bit) { baboon->mb_ifr &= ~irq_bit; generic_handle_irq(irq_num); } irq_bit <<= 1; irq_num++; } while(events >= irq_bit); #if 0 if (baboon->mb_ifr & 0x02) macide_ack_intr(NULL); /* for now we need to smash all interrupts */ baboon->mb_ifr &= ~events; #endif }
static void baboon_irq(unsigned int irq, struct irq_desc *desc) { int irq_bit, irq_num; unsigned char events; #ifdef DEBUG_IRQS printk("baboon_irq: mb_control %02X mb_ifr %02X mb_status %02X\n", (uint) baboon->mb_control, (uint) baboon->mb_ifr, (uint) baboon->mb_status); #endif events = baboon->mb_ifr & 0x07; if (!events) return; irq_num = IRQ_BABOON_0; irq_bit = 1; do { if (events & irq_bit) { baboon->mb_ifr &= ~irq_bit; generic_handle_irq(irq_num); } irq_bit <<= 1; irq_num++; } while(events >= irq_bit); #if 0 if (baboon->mb_ifr & 0x02) macide_ack_intr(NULL); /* for now we need to smash all interrupts */ baboon->mb_ifr &= ~events; #endif }
irqreturn_t baboon_irq(int irq, void *dev_id) { int irq_bit, irq_num; unsigned char events; #ifdef DEBUG_IRQS printk("baboon_irq: mb_control %02X mb_ifr %02X mb_status %02X\n", (uint) baboon->mb_control, (uint) baboon->mb_ifr, (uint) baboon->mb_status); #endif if (!(events = baboon->mb_ifr & 0x07)) return IRQ_NONE; irq_num = IRQ_BABOON_0; irq_bit = 1; do { if (events & irq_bit) { baboon->mb_ifr &= ~irq_bit; m68k_handle_int(irq_num); } irq_bit <<= 1; irq_num++; } while(events >= irq_bit); #if 0 if (baboon->mb_ifr & 0x02) macide_ack_intr(NULL); /* for now we need to smash all interrupts */ baboon->mb_ifr &= ~events; #endif return IRQ_HANDLED; }