Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 35976d4d authored by Florian Fainelli's avatar Florian Fainelli Committed by David S. Miller
Browse files

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: default avatarSteve Holland <sdh4@iastate.edu>
Signed-off-by: default avatarJoe Chou <joe.chou@rdc.com.tw>
Signed-off-by: default avatarFlorian Fainelli <florian@openwrt.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 345aa031
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -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) {