aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/cfi
diff options
context:
space:
mode:
authorAdrian Chadd <adrian@FreeBSD.org>2016-02-04 22:39:27 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2016-02-04 22:39:27 +0000
commit3f84dfc1cde5594500e2cee4b1db17c2fc1c2ab2 (patch)
tree0c9d4cc6fc2f5093ab12798df0abd6ce8bf1ff52 /sys/dev/cfi
parent24e61dbfdd744dd8c4a1fb326411059befcaded5 (diff)
Notes
Diffstat (limited to 'sys/dev/cfi')
-rw-r--r--sys/dev/cfi/cfi_core.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/sys/dev/cfi/cfi_core.c b/sys/dev/cfi/cfi_core.c
index 5150b779f0e5..d292e1a4188b 100644
--- a/sys/dev/cfi/cfi_core.c
+++ b/sys/dev/cfi/cfi_core.c
@@ -99,11 +99,17 @@ cfi_read(struct cfi_softc *sc, u_int ofs)
break;
case 2:
sval = bus_space_read_2(sc->sc_tag, sc->sc_handle, ofs);
+#ifdef CFI_HARDWAREBYTESWAP
+ val = sval;
+#else
val = le16toh(sval);
+#endif
break;
case 4:
val = bus_space_read_4(sc->sc_tag, sc->sc_handle, ofs);
+#ifndef CFI_HARDWAREBYTESWAP
val = le32toh(val);
+#endif
break;
default:
val = ~0;
@@ -122,10 +128,19 @@ cfi_write(struct cfi_softc *sc, u_int ofs, u_int val)
bus_space_write_1(sc->sc_tag, sc->sc_handle, ofs, val);
break;
case 2:
+#ifdef CFI_HARDWAREBYTESWAP
+ bus_space_write_2(sc->sc_tag, sc->sc_handle, ofs, val);
+#else
bus_space_write_2(sc->sc_tag, sc->sc_handle, ofs, htole16(val));
+
+#endif
break;
case 4:
+#ifdef CFI_HARDWAREBYTESWAP
+ bus_space_write_4(sc->sc_tag, sc->sc_handle, ofs, val);
+#else
bus_space_write_4(sc->sc_tag, sc->sc_handle, ofs, htole32(val));
+#endif
break;
}
}