svn commit: r263228 - head/sys/mips/atheros
Adrian Chadd
adrian at FreeBSD.org
Sun Mar 16 08:38:31 UTC 2014
Author: adrian
Date: Sun Mar 16 08:38:31 2014
New Revision: 263228
URL: http://svnweb.freebsd.org/changeset/base/263228
Log:
* Handle the three other timer interrupts for now, from the AR724x
later. If the interrupts are ACKed even if they're not masked, we get
the interrupts again later. Grr.
* The AR724x and later chips want the interrupt bits cleared by writing the
relevant bit to it, NOT by writing all but the current interrupt to it.
Tested:
* AR9344, DB120 reference board
TODO:
* Test ar724x and later chips to ensure no regressions have occured.
Modified:
head/sys/mips/atheros/apb.c
Modified: head/sys/mips/atheros/apb.c
==============================================================================
--- head/sys/mips/atheros/apb.c Sun Mar 16 08:04:06 2014 (r263227)
+++ head/sys/mips/atheros/apb.c Sun Mar 16 08:38:31 2014 (r263228)
@@ -362,9 +362,9 @@ apb_filter(void *arg)
case AR71XX_SOC_AR9341:
case AR71XX_SOC_AR9342:
case AR71XX_SOC_AR9344:
- /* Ack/clear the irq on status register for AR724x */
+ /* ACK/clear the given interrupt */
ATH_WRITE_REG(AR71XX_MISC_INTR_STATUS,
- reg & ~(1 << irq));
+ (1 << irq));
break;
default:
/* fallthrough */
@@ -385,7 +385,7 @@ apb_filter(void *arg)
continue;
}
/* Ignore timer interrupts */
- if (irq != 0)
+ if (irq != 0 && irq != 8 && irq != 9 && irq != 10)
printf("Stray APB IRQ %d\n", irq);
continue;
}
More information about the svn-src-all
mailing list