| To: | Ralf Baechle <ralf@linux-mips.org> |
|---|---|
| Subject: | [PATCH 2.6] vr41xx: fix spurious IRQ problem |
| From: | Yoichi Yuasa <yuasa@hh.iij4u.or.jp> |
| Date: | Tue, 2 Aug 2005 00:35:38 +0900 |
| Cc: | yuasa@hh.iij4u.or.jp, linux-mips <linux-mips@linux-mips.org> |
| Original-recipient: | rfc822;linux-mips@linux-mips.org |
| Sender: | linux-mips-bounce@linux-mips.org |
Hi Ralf,
This patch has fixed spurious IRQ problem about vr41xx.
Please apply this patch.
Yoichi
Signed-off-by: Yoichi Yuasa <yuasa@hh.iij4u.or.jp>
diff -urN -X dontdiff a-orig/arch/mips/vr41xx/common/irq.c
a/arch/mips/vr41xx/common/irq.c
--- a-orig/arch/mips/vr41xx/common/irq.c 2005-07-12 01:04:42.000000000
+0900
+++ a/arch/mips/vr41xx/common/irq.c 2005-07-31 21:07:17.000000000 +0900
@@ -62,6 +62,7 @@
asmlinkage void irq_dispatch(unsigned int irq, struct pt_regs *regs)
{
irq_cascade_t *cascade;
+ irq_desc_t *desc;
if (irq >= NR_IRQS) {
atomic_inc(&irq_err_count);
@@ -70,11 +71,15 @@
cascade = irq_cascade + irq;
if (cascade->get_irq != NULL) {
+ unsigned int source_irq = irq;
+ desc = irq_desc + source_irq;
+ desc->handler->ack(source_irq);
irq = cascade->get_irq(irq, regs);
if (irq < 0)
atomic_inc(&irq_err_count);
else
irq_dispatch(irq, regs);
+ desc->handler->end(source_irq);
} else
do_IRQ(irq, regs);
}
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: [patch 05/15] Basic MIPS support, Christoph Hellwig |
|---|---|
| Next by Date: | Re: [PATCH 2.6] vr41xx: fix spurious IRQ problem, Ralf Baechle |
| Previous by Thread: | Re: [patch 05/15] Basic MIPS support, Ralf Baechle |
| Next by Thread: | Re: [PATCH 2.6] vr41xx: fix spurious IRQ problem, Ralf Baechle |
| Indexes: | [Date] [Thread] [Top] [All Lists] |