aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-mmp
diff options
context:
space:
mode:
authorEric Miao <eric.y.miao@gmail.com>2010-02-03 02:39:35 -0500
committerEric Miao <eric.y.miao@gmail.com>2010-03-01 18:40:57 -0500
commit2029e5643a3c4fdd4ad20169fb950cc16e023d0c (patch)
tree8cb48739ffee9cf11522ccc1d907f3f17857a065 /arch/arm/mach-mmp
parentdf0c382436df5bdd74030baafa294b75c231ec8c (diff)
[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>
Diffstat (limited to 'arch/arm/mach-mmp')
-rw-r--r--arch/arm/mach-mmp/irq-mmp2.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/arm/mach-mmp/irq-mmp2.c b/arch/arm/mach-mmp/irq-mmp2.c
index b187c027822d..cb18221c0af3 100644
--- a/arch/arm/mach-mmp/irq-mmp2.c
+++ b/arch/arm/mach-mmp/irq-mmp2.c
@@ -102,7 +102,11 @@ static void init_mux_irq(struct irq_chip *chip, int start, int num)
102 int irq; 102 int irq;
103 103
104 for (irq = start; num > 0; irq++, num--) { 104 for (irq = start; num > 0; irq++, num--) {
105 chip->mask_ack(irq); 105 /* mask and clear the IRQ */
106 chip->mask(irq);
107 if (chip->ack)
108 chip->ack(irq);
109
106 set_irq_chip(irq, chip); 110 set_irq_chip(irq, chip);
107 set_irq_flags(irq, IRQF_VALID); 111 set_irq_flags(irq, IRQF_VALID);
108 set_irq_handler(irq, handle_level_irq); 112 set_irq_handler(irq, handle_level_irq);