Author: marius
Date: Sat Mar 19 20:36:05 2011
New Revision: 219785
URL: http://svn.freebsd.org/changeset/base/219785

Log:
  - Make a panic message better reflect the actual problem.
  - A closer inspection of the OpenSolaris code indicates the block store
    workaround is only necessary in case of BUS_DMASYNC_POSTREAD.
  - Mark some unused parameters as such.

Modified:
  head/sys/sparc64/pci/fire.c

Modified: head/sys/sparc64/pci/fire.c
==============================================================================
--- head/sys/sparc64/pci/fire.c Sat Mar 19 19:58:09 2011        (r219784)
+++ head/sys/sparc64/pci/fire.c Sat Mar 19 20:36:05 2011        (r219785)
@@ -337,7 +337,7 @@ fire_attach(device_t dev)
        if (OF_getprop(node, "portid", &sc->sc_ign, sizeof(sc->sc_ign)) == -1)
                panic("%s: could not determine IGN", __func__);
        if (OF_getprop(node, "module-revision#", &prop, sizeof(prop)) == -1)
-               panic("%s: could not determine revision", __func__);
+               panic("%s: could not determine module-revision", __func__);
 
        device_printf(dev, "%s, module-revision %d, IGN %#x\n",
            desc->fd_name, prop, sc->sc_ign);
@@ -1510,18 +1510,20 @@ fire_dmamap_sync(bus_dma_tag_t dt __unus
        static u_char buf[VIS_BLOCKSIZE] __aligned(VIS_BLOCKSIZE);
        register_t reg, s;
 
-       if ((map->dm_flags & DMF_LOADED) == 0 ||
-           (op & ~BUS_DMASYNC_POSTWRITE) == 0)
+       if ((map->dm_flags & DMF_LOADED) == 0)
                return;
 
-       s = intr_disable();
-       reg = rd(fprs);
-       wr(fprs, reg | FPRS_FEF, 0);
-       __asm __volatile("stda %%f0, [%0] %1"
-           : : "r" (buf), "n" (ASI_BLK_COMMIT_S));
-       membar(Sync);
-       wr(fprs, reg, 0);
-       intr_restore(s);
+       if ((op & BUS_DMASYNC_POSTREAD) != 0) {
+               s = intr_disable();
+               reg = rd(fprs);
+               wr(fprs, reg | FPRS_FEF, 0);
+               __asm __volatile("stda %%f0, [%0] %1"
+                   : : "r" (buf), "n" (ASI_BLK_COMMIT_S));
+               membar(Sync);
+               wr(fprs, reg, 0);
+               intr_restore(s);
+       } else if ((op & BUS_DMASYNC_PREWRITE) != 0)
+               membar(Sync);
 }
 
 static void
@@ -2128,7 +2130,7 @@ fire_release_resource(device_t bus, devi
 }
 
 static bus_dma_tag_t
-fire_get_dma_tag(device_t bus, device_t child)
+fire_get_dma_tag(device_t bus, device_t child __unused)
 {
        struct fire_softc *sc;
 
@@ -2137,7 +2139,7 @@ fire_get_dma_tag(device_t bus, device_t 
 }
 
 static phandle_t
-fire_get_node(device_t bus, device_t dev)
+fire_get_node(device_t bus, device_t child __unused)
 {
        struct fire_softc *sc;
 
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to