MIPS: Alchemy: Fix hang with high-frequency edge interrupts
authorManuel Lauss <manuel.lauss@googlemail.com>
Wed, 14 Oct 2009 10:22:20 +0000 (12:22 +0200)
committerRalf Baechle <ralf@linux-mips.org>
Mon, 2 Nov 2009 11:00:08 +0000 (12:00 +0100)
The handle_edge_irq() flowhandler disables edge int sources which occur
too fast (i.e. another edge comes in before the irq handler function
had a chance to finish).  Currently, the mask_ack() callback does not
ack the edges in hardware, leading to an endless loop in the flowhandler
where it tries to shut up the irq source.

When I rewrote the alchemy IRQ code  I wrongly assumed the mask_ack()
callback was only used by the level flowhandler, hence it omitted the
(at the time pointless) edge acks.  Turned out I was wrong; so here
is a complete mask_ack implementation for Alchemy IC, which fixes
the above mentioned problem.

Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>

No differences found