[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <200907081505.14846.florian@openwrt.org>
Date: Wed, 8 Jul 2009 15:05:14 +0200
From: Florian Fainelli <florian@...nwrt.org>
To: David Miller <davem@...emloft.net>
Cc: netdev@...r.kernel.org, Steve Holland <sdh4@...tate.edu>,
Joe Chou <joe.chou@....com.tw>
Subject: [PATCH 1/2] r6040: restore MIER register correctly when IRQ line is shared
When the r6040 device IRQ line is shared we will enter the driver
interrupt service routine, mask off the device interrupt enable
register (MIER) and return with IRQ_NONE, we would then leave the
device with interrupts disabled, this patch fixes that issue.
Reported-by: Steve Holland <sdh4@...tate.edu>
Signed-off-by: Joe Chou <joe.chou@....com.tw>
Signed-off-by: Florian Fainelli <florian@...nwrt.org>
---
diff --git a/drivers/net/r6040.c b/drivers/net/r6040.c
index 57c31b8..e532be4 100644
--- a/drivers/net/r6040.c
+++ b/drivers/net/r6040.c
@@ -704,8 +704,11 @@ static irqreturn_t r6040_interrupt(int irq, void *dev_id)
/* Read MISR status and clear */
status = ioread16(ioaddr + MISR);
- if (status == 0x0000 || status == 0xffff)
+ if (status == 0x0000 || status == 0xffff) {
+ /* Restore RDC MAC interrupt */
+ iowrite16(misr, ioaddr + MIER);
return IRQ_NONE;
+ }
/* RX interrupt request */
if (status & RX_INTS) {
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists