[PATCH] ppc64: Big-endian I/O memory accessors.
Arthur Othieno
a.othieno at bluewin.ch
Sun Aug 21 11:48:47 EST 2005
I/O memory accessors. Big-endian version. For those busses/devices
that do export big-endian I/O memory.
Of notable relevance/reference:
http://lwn.net/Articles/132804/
http://ozlabs.org/pipermail/linuxppc-embedded/2005-August/019798.html
http://ozlabs.org/pipermail/linuxppc-embedded/2005-August/019752.html
Signed-Off-By: Arthur Othieno <a.othieno at bluewin.ch>
iomap.c | 20 ++++++++++++++++++++
1 files changed, 20 insertions(+)
--- a/arch/ppc64/kernel/iomap.c 2005-08-20 19:23:12.000000000 -0400
+++ b/arch/ppc64/kernel/iomap.c 2005-08-20 21:35:42.000000000 -0400
@@ -22,13 +22,23 @@ unsigned int fastcall ioread16(void __io
{
return readw(addr);
}
+unsigned int fastcall ioread16be(void __iomem *addr)
+{
+ return __raw_readw(addr);
+}
unsigned int fastcall ioread32(void __iomem *addr)
{
return readl(addr);
}
+unsigned int fastcall ioread32be(void __iomem *addr)
+{
+ return __raw_readl(addr);
+}
EXPORT_SYMBOL(ioread8);
EXPORT_SYMBOL(ioread16);
+EXPORT_SYMBOL(ioread16be);
EXPORT_SYMBOL(ioread32);
+EXPORT_SYMBOL(ioread32be);
void fastcall iowrite8(u8 val, void __iomem *addr)
{
@@ -38,13 +48,23 @@ void fastcall iowrite16(u16 val, void __
{
writew(val, addr);
}
+void fastcall iowrite16be(u16 val, void __iomem *addr)
+{
+ __raw_writew(val, addr);
+}
void fastcall iowrite32(u32 val, void __iomem *addr)
{
writel(val, addr);
}
+void fastcall iowrite32be(u32 val, void __iomem *addr)
+{
+ __raw_writel(val, addr);
+}
EXPORT_SYMBOL(iowrite8);
EXPORT_SYMBOL(iowrite16);
+EXPORT_SYMBOL(iowrite16be);
EXPORT_SYMBOL(iowrite32);
+EXPORT_SYMBOL(iowrite32be);
/*
* These are the "repeat read/write" functions. Note the
More information about the Linuxppc64-dev
mailing list