[ARM] mmp2: fix incorrect calling of chip->mask_ack() for 2nd level cascaded IRQs

The irq_chip is not yet registered, so no default irq_chip.mask_ack(),
which we have to handle it correctly manually here.

Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com>
Signed-off-by: Eric Miao <eric.y.miao@gmail.com>
This commit is contained in:
Eric Miao 2010-02-02 23:39:35 -08:00
parent df0c382436
commit 2029e5643a
1 changed files with 5 additions and 1 deletions

View File

@ -102,7 +102,11 @@ static void init_mux_irq(struct irq_chip *chip, int start, int num)
int irq;
for (irq = start; num > 0; irq++, num--) {
chip->mask_ack(irq);
/* mask and clear the IRQ */
chip->mask(irq);
if (chip->ack)
chip->ack(irq);
set_irq_chip(irq, chip);
set_irq_flags(irq, IRQF_VALID);
set_irq_handler(irq, handle_level_irq);