svn commit: r365927 - head/sys/arm/allwinner
Emmanuel Vadot
manu at FreeBSD.org
Sun Sep 20 16:11:38 UTC 2020
Author: manu
Date: Sun Sep 20 16:11:38 2020
New Revision: 365927
URL: https://svnweb.freebsd.org/changeset/base/365927
Log:
arm: allwinner: aw_nmi: Fix wrong logic when we disable the nmi
MFC after: 1 week
Modified:
head/sys/arm/allwinner/aw_nmi.c
Modified: head/sys/arm/allwinner/aw_nmi.c
==============================================================================
--- head/sys/arm/allwinner/aw_nmi.c Sun Sep 20 15:11:52 2020 (r365926)
+++ head/sys/arm/allwinner/aw_nmi.c Sun Sep 20 16:11:38 2020 (r365927)
@@ -129,7 +129,7 @@ aw_nmi_intr(void *arg)
}
if (intr_isrc_dispatch(&sc->intr.isrc, curthread->td_intr_frame) != 0) {
- SC_NMI_WRITE(sc, sc->cfg->enable_reg, !NMI_IRQ_ENABLE);
+ SC_NMI_WRITE(sc, sc->cfg->enable_reg, ~NMI_IRQ_ENABLE);
device_printf(sc->dev, "Stray interrupt, NMI disabled\n");
}
@@ -153,7 +153,7 @@ aw_nmi_disable_intr(device_t dev, struct intr_irqsrc *
sc = device_get_softc(dev);
- SC_NMI_WRITE(sc, sc->cfg->enable_reg, !NMI_IRQ_ENABLE);
+ SC_NMI_WRITE(sc, sc->cfg->enable_reg, ~NMI_IRQ_ENABLE);
}
static int
@@ -296,7 +296,7 @@ aw_nmi_teardown_intr(device_t dev, struct intr_irqsrc
sc->intr.pol = INTR_POLARITY_CONFORM;
sc->intr.tri = INTR_TRIGGER_CONFORM;
- SC_NMI_WRITE(sc, sc->cfg->enable_reg, !NMI_IRQ_ENABLE);
+ SC_NMI_WRITE(sc, sc->cfg->enable_reg, ~NMI_IRQ_ENABLE);
}
return (0);
@@ -367,7 +367,7 @@ aw_nmi_attach(device_t dev)
}
/* Disable and clear interrupts */
- SC_NMI_WRITE(sc, sc->cfg->enable_reg, !NMI_IRQ_ENABLE);
+ SC_NMI_WRITE(sc, sc->cfg->enable_reg, ~NMI_IRQ_ENABLE);
SC_NMI_WRITE(sc, sc->cfg->pending_reg, NMI_IRQ_ACK);
xref = OF_xref_from_node(ofw_bus_get_node(dev));
More information about the svn-src-all
mailing list