summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/dev/smc
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2013-11-12 13:39:12 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2013-11-13 14:10:35 +0100
commitb41556e22fe77cd25bc52195152c3e54b5ad6d6e (patch)
tree7f8d68e7a89545e5422a98ea09917b4ed6037368 /freebsd/sys/dev/smc
parentcommands: Use REQUIRE_ORDER option processing (diff)
downloadrtems-libbsd-b41556e22fe77cd25bc52195152c3e54b5ad6d6e.tar.bz2
if_smc: Fix for level-triggered interrupts
Diffstat (limited to 'freebsd/sys/dev/smc')
-rw-r--r--freebsd/sys/dev/smc/if_smc.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/freebsd/sys/dev/smc/if_smc.c b/freebsd/sys/dev/smc/if_smc.c
index 073a35c1..8d3740cc 100644
--- a/freebsd/sys/dev/smc/if_smc.c
+++ b/freebsd/sys/dev/smc/if_smc.c
@@ -809,6 +809,12 @@ smc_intr(void *context)
struct smc_softc *sc;
sc = (struct smc_softc *)context;
+#ifdef __rtems__
+ SMC_LOCK(sc);
+ smc_select_bank(sc, 2);
+ smc_write_1(sc, MSK, 0);
+ SMC_UNLOCK(sc);
+#endif /* __rtems__ */
taskqueue_enqueue_fast(sc->smc_tq, &sc->smc_intr);
return (FILTER_HANDLED);
}