Module Name:    src
Committed By:   skrll
Date:           Thu Jan 12 05:35:45 UTC 2017

Modified Files:
        src/sys/external/bsd/vchiq/dist/interface/vchiq_arm:
            vchiq_kmod_netbsd.c

Log Message:
Use some macros for magic numbers and correct return value.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.7 \
    src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_kmod_netbsd.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_kmod_netbsd.c
diff -u src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_kmod_netbsd.c:1.6 src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_kmod_netbsd.c:1.7
--- src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_kmod_netbsd.c:1.6	Fri Jan 15 07:49:41 2016
+++ src/sys/external/bsd/vchiq/dist/interface/vchiq_arm/vchiq_kmod_netbsd.c	Thu Jan 12 05:35:45 2017
@@ -1,4 +1,4 @@
-/* $NetBSD: vchiq_kmod_netbsd.c,v 1.6 2016/01/15 07:49:41 mlelstv Exp $ */
+/* $NetBSD: vchiq_kmod_netbsd.c,v 1.7 2017/01/12 05:35:45 skrll Exp $ */
 
 /*-
  * Copyright (c) 2013 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vchiq_kmod_netbsd.c,v 1.6 2016/01/15 07:49:41 mlelstv Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vchiq_kmod_netbsd.c,v 1.7 2017/01/12 05:35:45 skrll Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -72,6 +72,13 @@ static void vchiq_defer(device_t);
 /* External functions */
 int vchiq_init(void);
 
+
+#define VCHIQ_DOORBELL0		0x40
+#define VCHIQ_DOORBELL1		0x44
+#define VCHIQ_DOORBELL2		0x48
+#define VCHIQ_DOORBELL3		0x4C
+
+
 CFATTACH_DECL_NEW(vchiq, sizeof(struct vchiq_softc),
     vchiq_match, vchiq_attach, NULL, NULL);
 
@@ -138,14 +145,17 @@ vchiq_intr(void *priv)
 	struct vchiq_softc *sc = priv;
 	uint32_t status;
 
-	status = bus_space_read_4(sc->sc_iot, sc->sc_ioh, 0x40);
-	if (status & 0x4)
-		remote_event_pollall(&g_state);
+	bus_space_barrier(sc->sc_iot, sc->sc_ioh,
+	    VCHIQ_DOORBELL0, 4, BUS_SPACE_BARRIER_READ);
 
-	bus_space_barrier(vchiq_softc->sc_iot, vchiq_softc->sc_ioh,
-	    0x40, 4, BUS_SPACE_BARRIER_READ);
+	rmb();
+	status = bus_space_read_4(sc->sc_iot, sc->sc_ioh, VCHIQ_DOORBELL0);
+	if (status & 0x4) {
+		remote_event_pollall(&g_state);
+		return 1;
+	}
 
-	return 1;
+	return 0;
 }
 
 static int
@@ -169,10 +179,10 @@ remote_event_signal(REMOTE_EVENT_T *even
 	dsb();		/* data barrier operation */
 
 	if (event->armed) {
-		bus_space_barrier(vchiq_softc->sc_iot, vchiq_softc->sc_ioh,
-		    0x48, 4, BUS_SPACE_BARRIER_WRITE);
 		bus_space_write_4(vchiq_softc->sc_iot, vchiq_softc->sc_ioh,
-		    0x48, 0);
+		    VCHIQ_DOORBELL2, 0);
+                bus_space_barrier(vchiq_softc->sc_iot, vchiq_softc->sc_ioh,
+                    VCHIQ_DOORBELL2, 4, BUS_SPACE_BARRIER_WRITE);
 	}
 }
 

Reply via email to