|
@@ -25,6 +25,50 @@
|
|
|
#define mmiowb() do {} while (0)
|
|
|
#endif
|
|
|
|
|
|
+#ifndef __io_br
|
|
|
+#define __io_br() barrier()
|
|
|
+#endif
|
|
|
+
|
|
|
+/* prevent prefetching of coherent DMA data ahead of a dma-complete */
|
|
|
+#ifndef __io_ar
|
|
|
+#ifdef rmb
|
|
|
+#define __io_ar() rmb()
|
|
|
+#else
|
|
|
+#define __io_ar() barrier()
|
|
|
+#endif
|
|
|
+#endif
|
|
|
+
|
|
|
+/* flush writes to coherent DMA data before possibly triggering a DMA read */
|
|
|
+#ifndef __io_bw
|
|
|
+#ifdef wmb
|
|
|
+#define __io_bw() wmb()
|
|
|
+#else
|
|
|
+#define __io_bw() barrier()
|
|
|
+#endif
|
|
|
+#endif
|
|
|
+
|
|
|
+/* serialize device access against a spin_unlock, usually handled there. */
|
|
|
+#ifndef __io_aw
|
|
|
+#define __io_aw() barrier()
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifndef __io_pbw
|
|
|
+#define __io_pbw() __io_bw()
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifndef __io_paw
|
|
|
+#define __io_paw() __io_aw()
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifndef __io_pbr
|
|
|
+#define __io_pbr() __io_br()
|
|
|
+#endif
|
|
|
+
|
|
|
+#ifndef __io_par
|
|
|
+#define __io_par() __io_ar()
|
|
|
+#endif
|
|
|
+
|
|
|
+
|
|
|
/*
|
|
|
* __raw_{read,write}{b,w,l,q}() access memory in native endianness.
|
|
|
*
|