diff options
author | Philipp Zabel <philipp.zabel@gmail.com> | 2008-07-03 05:08:27 -0400 |
---|---|---|
committer | Samuel Ortiz <samuel@sortiz.org> | 2008-07-20 13:56:12 -0400 |
commit | de0d23c12c42317c273919b597f6822af2102e55 (patch) | |
tree | 5b7eb0bc1478e8a652b0116f8e7f0657fd48be57 /drivers/mfd/asic3.c | |
parent | 30250b457f30ca655d37ad1a1587221ff6eefc91 (diff) |
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>
Diffstat (limited to 'drivers/mfd/asic3.c')
-rw-r--r-- | drivers/mfd/asic3.c | 2 |
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) | |||
137 | for (i = ASIC3_NUM_GPIOS; i < ASIC3_NR_IRQS; i++) { | 137 | for (i = ASIC3_NUM_GPIOS; i < ASIC3_NR_IRQS; i++) { |
138 | /* They start at bit 4 and go up */ | 138 | /* They start at bit 4 and go up */ |
139 | if (status & (1 << (i - ASIC3_NUM_GPIOS + 4))) { | 139 | if (status & (1 << (i - ASIC3_NUM_GPIOS + 4))) { |
140 | desc = irq_desc + + i; | 140 | desc = irq_desc + asic->irq_base + i; |
141 | desc->handle_irq(asic->irq_base + i, | 141 | desc->handle_irq(asic->irq_base + i, |
142 | desc); | 142 | desc); |
143 | } | 143 | } |