summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilipp Zabel <philipp.zabel@gmail.com>2008-07-03 13:08:27 +0400
committerSamuel Ortiz <samuel@sortiz.org>2008-07-20 21:56:12 +0400
commitde0d23c12c42317c273919b597f6822af2102e55 (patch)
tree5b7eb0bc1478e8a652b0116f8e7f0657fd48be57
parent30250b457f30ca655d37ad1a1587221ff6eefc91 (diff)
downloadlinux-de0d23c12c42317c273919b597f6822af2102e55.tar.xz
mfd: fix the asic3 irq demux code
Wrong irq numbers were given to desc->handle_irq, which on some devices caused endless loops (asic3_irq_demux calling itself, basically). Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com> Signed-off-by: Samuel Ortiz <sameo@openedhand.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
-rw-r--r--drivers/mfd/asic3.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/mfd/asic3.c b/drivers/mfd/asic3.c
index 50c773c4d60a..f2fb233b0ff3 100644
--- a/drivers/mfd/asic3.c
+++ b/drivers/mfd/asic3.c
@@ -137,7 +137,7 @@ static void asic3_irq_demux(unsigned int irq, struct irq_desc *desc)
for (i = ASIC3_NUM_GPIOS; i < ASIC3_NR_IRQS; i++) {
/* They start at bit 4 and go up */
if (status & (1 << (i - ASIC3_NUM_GPIOS + 4))) {
- desc = irq_desc + + i;
+ desc = irq_desc + asic->irq_base + i;
desc->handle_irq(asic->irq_base + i,
desc);
}