}
EXPORT_SYMBOL(ifxmips_mask_and_ack_irq);
+static void
+ifxmips_ack_irq(unsigned int irq_nr)
+{
+ int i;
+ u32 *isr = IFXMIPS_ICU_IM0_ISR;
+
+ irq_nr -= INT_NUM_IRQ0;
+ for (i = 0; i <= 4; i++)
+ {
+ if (irq_nr < INT_NUM_IM_OFFSET)
+ {
+ ifxmips_w32((1 << irq_nr), isr);
+ return;
+ }
+ isr += IFXMIPS_ICU_OFFSET;
+ irq_nr -= INT_NUM_IM_OFFSET;
+ }
+}
+
+
void
ifxmips_enable_irq(unsigned int irq_nr)
{
.enable = ifxmips_enable_irq,
.disable = ifxmips_disable_irq,
.unmask = ifxmips_enable_irq,
- .ack = ifxmips_end_irq,
+ .ack = ifxmips_ack_irq,
.mask = ifxmips_disable_irq,
.mask_ack = ifxmips_mask_and_ack_irq,
.end = ifxmips_end_irq,