Skip to content

Commit 090878a

Browse files
committed
Merge tag 'mxs-fixes-3.10' of git://git.linaro.org/people/shawnguo/linux-2.6 into fixes
From Shawn Guo, mxs fixes for 3.10: - Since the time we move to MULTI_IRQ_HANDLER, the 0x7f polling for no interrupt in icoll_handle_irq() becomes insane, because 0x7f is an valid interrupt number, the irq of gpio bank 0. That unnecessary polling results in the driver not detecting when irq 0x7f is active which makes the machine effectively dead lock. The fix removes the interrupt poll loop and allows usage of gpio0 interrupt without an infinite loop. * tag 'mxs-fixes-3.10' of git://git.linaro.org/people/shawnguo/linux-2.6: ARM: mxs: icoll: Fix interrupts gpio bank 0 Signed-off-by: Olof Johansson <[email protected]>
2 parents 3d0d8b9 + b5f83e9 commit 090878a

File tree

1 file changed

+4
-10
lines changed

1 file changed

+4
-10
lines changed

drivers/irqchip/irq-mxs.c

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -76,16 +76,10 @@ asmlinkage void __exception_irq_entry icoll_handle_irq(struct pt_regs *regs)
7676
{
7777
u32 irqnr;
7878

79-
do {
80-
irqnr = __raw_readl(icoll_base + HW_ICOLL_STAT_OFFSET);
81-
if (irqnr != 0x7f) {
82-
__raw_writel(irqnr, icoll_base + HW_ICOLL_VECTOR);
83-
irqnr = irq_find_mapping(icoll_domain, irqnr);
84-
handle_IRQ(irqnr, regs);
85-
continue;
86-
}
87-
break;
88-
} while (1);
79+
irqnr = __raw_readl(icoll_base + HW_ICOLL_STAT_OFFSET);
80+
__raw_writel(irqnr, icoll_base + HW_ICOLL_VECTOR);
81+
irqnr = irq_find_mapping(icoll_domain, irqnr);
82+
handle_IRQ(irqnr, regs);
8983
}
9084

9185
static int icoll_irq_domain_map(struct irq_domain *d, unsigned int virq,

0 commit comments

Comments
 (0)