Re: [PATCH 7/8] mfd: Use the AB8500's IRQ domain to convert hwirq to virq
From: Linus Walleij <hidden>
Date: 2012-08-14 08:26:02
Also in:
linux-arm-kernel
On Thu, Aug 9, 2012 at 5:53 PM, Lee Jones [off-list ref] wrote:
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. CC: Samuel Ortiz <redacted> Signed-off-by: Lee Jones <redacted>
This looks better that what was in there before so Acked-by: Linus Walleij <redacted> However:
quoted hunk ↗ jump to hunk
@@ -501,8 +501,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);
Still this ab8500_irq_get_virq() business. But is this a static local function in the ab8500-core.c now? Then it's fine, it's the kernel-wide interface that is the problem. Yours, Linus Walleij