RFC: Fix big endian MMIO primitives.

Krzysztof Halasa khc at pm.waw.pl
Sat May 5 17:34:13 EDT 2012


cpu_read*() and cpu_wrire*() are precisely equal to __raw_read*() and
__raw_write*().

Striving for correctness we can replace all those __raw_*() with cpu_*()
as that's exactly what the former ones do. Also we can change read*()
and write*() into explicit leXX_*(). Both changes could affect porting
from Linux, though.

Signed-off-by: Krzysztof Hałasa <khc at pm.waw.pl>

diff --git a/include/io.h b/include/io.h
index 39b5e61..8d885de 100644
--- a/include/io.h
+++ b/include/io.h
@@ -4,20 +4,11 @@
 #include <asm/io.h>
 
 /* cpu_read/cpu_write: cpu native io accessors */
-#if __BYTE_ORDER == __BIG_ENDIAN
-#define cpu_readb(a)		readb(a)
-#define cpu_readw(a)		in_be16(a)
-#define cpu_readl(a)		in_be32(a)
-#define cpu_writeb(v, a)	writeb((v), (a))
-#define cpu_writew(v, a)	out_be16((a), (v))
-#define cpu_writel(v, a)	out_be32((a), (v))
-#else
-#define cpu_readb(a)		readb(a)
-#define cpu_readw(a)		readw(a)
-#define cpu_readl(a)		readl(a)
-#define cpu_writeb(v, a)	writeb((v), (a))
-#define cpu_writew(v, a)	writew((v), (a))
-#define cpu_writel(v, a)	writel((v), (a))
-#endif
+#define cpu_readb(a)		__raw_readb(a)
+#define cpu_readw(a)		__raw_readw(a)
+#define cpu_readl(a)		__raw_readl(a)
+#define cpu_writeb(v, a)	__raw_writeb((v), (a))
+#define cpu_writew(v, a)	__raw_writew((v), (a))
+#define cpu_writel(v, a)	__raw_writel((v), (a))
 
 #endif /* __IO_H */



More information about the barebox mailing list