From ff0565d7177c51d05c5a5eeab2b0a579e36c048c Mon Sep 17 00:00:00 2001 From: sam Date: Mon, 22 Jun 2009 20:57:51 +0000 Subject: [PATCH] hook arm_post_filter to ACK GPIO interrupts; this fixes the interrupt storm observed on the GPS+RS485 uarts on Gateworks Cambria boards Reviewed by: cognet --- sys/arm/xscale/ixp425/ixp425.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/sys/arm/xscale/ixp425/ixp425.c b/sys/arm/xscale/ixp425/ixp425.c index cefcefd03f18..6fb2aaa8d6f0 100644 --- a/sys/arm/xscale/ixp425/ixp425.c +++ b/sys/arm/xscale/ixp425/ixp425.c @@ -186,6 +186,13 @@ ixp425_gpio_ack(int irq) ixp425_irq2gpio_bit(irq); } +static void +ixp425_post_filter(void *arg) +{ + uintptr_t irq = (uintptr_t) arg; + ixp425_gpio_ack(irq); +} + void arm_mask_irq(uintptr_t nb) { @@ -304,6 +311,7 @@ ixp425_attach(device_t dev) ixp435_set_intrmask(); ixp435_set_intrsteer(); } + arm_post_filter = ixp425_post_filter; if (bus_dma_tag_create(NULL, 1, 0, BUS_SPACE_MAXADDR_32BIT, BUS_SPACE_MAXADDR, NULL, NULL, 0xffffffff, 0xff, 0xffffffff, 0,