summaryrefslogtreecommitdiffstats
path: root/sys/arm/at91
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arm/at91')
-rw-r--r--sys/arm/at91/at91.c6
-rw-r--r--sys/arm/at91/at91_mci.c2
-rw-r--r--sys/arm/at91/at91_pio.c10
-rw-r--r--sys/arm/at91/at91_rtc.c8
-rw-r--r--sys/arm/at91/at91_spi.c2
-rw-r--r--sys/arm/at91/at91_ssc.c2
-rw-r--r--sys/arm/at91/at91_st.c8
-rw-r--r--sys/arm/at91/at91_twi.c2
-rw-r--r--sys/arm/at91/if_ate.c2
9 files changed, 22 insertions, 20 deletions
diff --git a/sys/arm/at91/at91.c b/sys/arm/at91/at91.c
index cae88f2..59e5f08 100644
--- a/sys/arm/at91/at91.c
+++ b/sys/arm/at91/at91.c
@@ -543,14 +543,14 @@ at91_release_resource(device_t dev, device_t child, int type,
static int
at91_setup_intr(device_t dev, device_t child,
- struct resource *ires, int flags, driver_intr_t *intr, void *arg,
- void **cookiep)
+ struct resource *ires, int flags, driver_filter_t *filt,
+ driver_intr_t *intr, void *arg, void **cookiep)
{
struct at91_softc *sc = device_get_softc(dev);
if (rman_get_start(ires) == AT91RM92_IRQ_SYSTEM && !(flags & INTR_FAST))
panic("All system interrupt ISRs must be type INTR_FAST");
- BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags, intr, arg,
+ BUS_SETUP_INTR(device_get_parent(dev), child, ires, flags, filt, intr, arg,
cookiep);
bus_space_write_4(sc->sc_st, sc->sc_sys_sh, IC_IECR,
1 << rman_get_start(ires));
diff --git a/sys/arm/at91/at91_mci.c b/sys/arm/at91/at91_mci.c
index 1cc9091..ca9f399 100644
--- a/sys/arm/at91/at91_mci.c
+++ b/sys/arm/at91/at91_mci.c
@@ -192,7 +192,7 @@ at91_mci_attach(device_t dev)
* Activate the interrupt
*/
err = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_MISC | INTR_MPSAFE,
- at91_mci_intr, sc, &sc->intrhand);
+ NULL, at91_mci_intr, sc, &sc->intrhand);
if (err) {
AT91_MCI_LOCK_DESTROY(sc);
goto out;
diff --git a/sys/arm/at91/at91_pio.c b/sys/arm/at91/at91_pio.c
index 18ffe9b..f8c1863 100644
--- a/sys/arm/at91/at91_pio.c
+++ b/sys/arm/at91/at91_pio.c
@@ -83,7 +83,7 @@ static devclass_t at91_pio_devclass;
static int at91_pio_probe(device_t dev);
static int at91_pio_attach(device_t dev);
static int at91_pio_detach(device_t dev);
-static void at91_pio_intr(void *);
+static int at91_pio_intr(void *);
/* helper routines */
static int at91_pio_activate(device_t dev);
@@ -148,8 +148,8 @@ at91_pio_attach(device_t dev)
* Activate the interrupt, but disable all interrupts in the hardware
*/
WR4(sc, PIO_IDR, 0xffffffff);
- err = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_MISC | INTR_FAST,
- at91_pio_intr, sc, &sc->intrhand);
+ err = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_MISC,
+ at91_pio_intr, NULL, sc, &sc->intrhand);
if (err) {
AT91_PIO_LOCK_DESTROY(sc);
goto out;
@@ -217,7 +217,7 @@ at91_pio_deactivate(device_t dev)
return;
}
-static void
+static int
at91_pio_intr(void *xsc)
{
struct at91_pio_softc *sc = xsc;
@@ -232,7 +232,7 @@ at91_pio_intr(void *xsc)
AT91_PIO_UNLOCK(sc);
#endif
wakeup(sc);
- return;
+ return (FILTER_HANDLED);
}
static int
diff --git a/sys/arm/at91/at91_rtc.c b/sys/arm/at91/at91_rtc.c
index 3a68200..ad70b85 100644
--- a/sys/arm/at91/at91_rtc.c
+++ b/sys/arm/at91/at91_rtc.c
@@ -110,8 +110,8 @@ at91_rtc_attach(device_t dev)
* Activate the interrupt, but disable all interrupts in the hardware
*/
WR4(sc, RTC_IDR, 0xffffffff);
- err = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_MISC | INTR_FAST,
- at91_rtc_intr, sc, &sc->intrhand);
+ err = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_MISC,
+ at91_rtc_intr, NULL, sc, &sc->intrhand);
if (err) {
AT91_RTC_LOCK_DESTROY(sc);
goto out;
@@ -173,7 +173,7 @@ at91_rtc_deactivate(device_t dev)
return;
}
-static void
+static int
at91_rtc_intr(void *xsc)
{
struct at91_rtc_softc *sc = xsc;
@@ -188,7 +188,7 @@ at91_rtc_intr(void *xsc)
AT91_RTC_UNLOCK(sc);
#endif
wakeup(sc);
- return;
+ return (FILTER_HANDLED);
}
/*
diff --git a/sys/arm/at91/at91_spi.c b/sys/arm/at91/at91_spi.c
index 6341176..d3ee67d 100644
--- a/sys/arm/at91/at91_spi.c
+++ b/sys/arm/at91/at91_spi.c
@@ -163,7 +163,7 @@ at91_spi_activate(device_t dev)
if (sc->irq_res == NULL)
goto errout;
err = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_MISC | INTR_MPSAFE,
- at91_spi_intr, sc, &sc->intrhand);
+ NULL, at91_spi_intr, sc, &sc->intrhand);
if (err != 0)
goto errout;
return (0);
diff --git a/sys/arm/at91/at91_ssc.c b/sys/arm/at91/at91_ssc.c
index f4db0d1..3e08431 100644
--- a/sys/arm/at91/at91_ssc.c
+++ b/sys/arm/at91/at91_ssc.c
@@ -124,7 +124,7 @@ at91_ssc_attach(device_t dev)
* Activate the interrupt
*/
err = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_MISC | INTR_MPSAFE,
- at91_ssc_intr, sc, &sc->intrhand);
+ NULL, at91_ssc_intr, sc, &sc->intrhand);
if (err) {
AT91_SSC_LOCK_DESTROY(sc);
goto out;
diff --git a/sys/arm/at91/at91_st.c b/sys/arm/at91/at91_st.c
index e165f24..6ec9730 100644
--- a/sys/arm/at91/at91_st.c
+++ b/sys/arm/at91/at91_st.c
@@ -183,7 +183,7 @@ at91st_watchdog(void *argp, u_int cmd, int *error)
WR4(ST_CR, ST_CR_WDRST);
}
-static void
+static int
clock_intr(void *arg)
{
struct trapframe *fp = arg;
@@ -194,7 +194,9 @@ clock_intr(void *arg)
tot_count += 32768 / hz;
#endif
hardclock(TRAPF_USERMODE(fp), TRAPF_PC(fp));
+ return (FILTER_HANDLED);
}
+ return (FILTER_STRAY);
}
void
@@ -222,8 +224,8 @@ cpu_initclocks(void)
if (!irq)
panic("Unable to allocate irq for the system timer");
else
- bus_setup_intr(dev, irq, INTR_TYPE_CLK | INTR_FAST,
- clock_intr, NULL, &ih);
+ bus_setup_intr(dev, irq, INTR_TYPE_CLK,
+ clock_intr, NULL, NULL, &ih);
WR4(ST_PIMR, rel_value);
diff --git a/sys/arm/at91/at91_twi.c b/sys/arm/at91/at91_twi.c
index 1f522d6..0319e12 100644
--- a/sys/arm/at91/at91_twi.c
+++ b/sys/arm/at91/at91_twi.c
@@ -118,7 +118,7 @@ at91_twi_attach(device_t dev)
* Activate the interrupt
*/
err = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_MISC | INTR_MPSAFE,
- at91_twi_intr, sc, &sc->intrhand);
+ NULL, at91_twi_intr, sc, &sc->intrhand);
if (err) {
AT91_TWI_LOCK_DESTROY(sc);
goto out;
diff --git a/sys/arm/at91/if_ate.c b/sys/arm/at91/if_ate.c
index 9fb0d9a..02b49fb 100644
--- a/sys/arm/at91/if_ate.c
+++ b/sys/arm/at91/if_ate.c
@@ -226,7 +226,7 @@ ate_attach(device_t dev)
* Activate the interrupt
*/
err = bus_setup_intr(dev, sc->irq_res, INTR_TYPE_NET | INTR_MPSAFE,
- ate_intr, sc, &sc->intrhand);
+ NULL, ate_intr, sc, &sc->intrhand);
if (err) {
ether_ifdetach(ifp);
ATE_LOCK_DESTROY(sc);
OpenPOWER on IntegriCloud