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