summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLee Jones <lee.jones@linaro.org>2012-08-09 16:53:54 +0100
committerSamuel Ortiz <sameo@linux.intel.com>2012-09-18 14:35:17 +0200
commit0a37fc56888c37049f60aab398fddceafd33fe72 (patch)
treebf4eea5fc36e0ecfc127cbfee79d6abc5a7f167a
parent4adcefd3f908f02a5266cb37d82dc34615edbd3b (diff)
mfd: Use the AB8500's IRQ domain to convert hwirq to virq
Before the AB8500 had its own IRQ domain, the IRQ handler would take the fired local IRQ (hwirq) and add it to the irq_base to convert it to an IRQ number which Linux would understand (virq). However, the IRQ base is not always used anymore since we can make use of Linear domains. It's better to use the AB8500 hwirq -> virq mapping helper function to convert them instead. That's what we do here. Signed-off-by: Lee Jones <lee.jones@linaro.org> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
-rw-r--r--drivers/mfd/ab8500-core.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/mfd/ab8500-core.c b/drivers/mfd/ab8500-core.c
index dd91951c68f..a3aceffb60f 100644
--- a/drivers/mfd/ab8500-core.c
+++ b/drivers/mfd/ab8500-core.c
@@ -517,8 +517,9 @@ static irqreturn_t ab8500_irq(int irq, void *dev)
do {
int bit = __ffs(value);
int line = i * 8 + bit;
+ int virq = ab8500_irq_get_virq(ab8500, line);
- handle_nested_irq(ab8500->irq_base + line);
+ handle_nested_irq(virq);
value &= ~(1 << bit);
} while (value);