Commit 766375362a1dcac63dc0c0fb61ce4143c8de63d9
Committed by
Paul Mackerras
1 parent
1635317fac
Exists in
master
and in
4 other branches
[PATCH] ppc64: Big-endian I/O memory accessors.
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@bluewin.ch> Signed-off-by: Paul Mackerras <paulus@samba.org>
Showing 1 changed file with 20 additions and 0 deletions Side-by-side Diff
arch/ppc64/kernel/iomap.c
| ... | ... | @@ -22,13 +22,23 @@ |
| 22 | 22 | { |
| 23 | 23 | return readw(addr); |
| 24 | 24 | } |
| 25 | +unsigned int fastcall ioread16be(void __iomem *addr) | |
| 26 | +{ | |
| 27 | + return in_be16(addr); | |
| 28 | +} | |
| 25 | 29 | unsigned int fastcall ioread32(void __iomem *addr) |
| 26 | 30 | { |
| 27 | 31 | return readl(addr); |
| 28 | 32 | } |
| 33 | +unsigned int fastcall ioread32be(void __iomem *addr) | |
| 34 | +{ | |
| 35 | + return in_be32(addr); | |
| 36 | +} | |
| 29 | 37 | EXPORT_SYMBOL(ioread8); |
| 30 | 38 | EXPORT_SYMBOL(ioread16); |
| 39 | +EXPORT_SYMBOL(ioread16be); | |
| 31 | 40 | EXPORT_SYMBOL(ioread32); |
| 41 | +EXPORT_SYMBOL(ioread32be); | |
| 32 | 42 | |
| 33 | 43 | void fastcall iowrite8(u8 val, void __iomem *addr) |
| 34 | 44 | { |
| 35 | 45 | |
| 36 | 46 | |
| 37 | 47 | |
| ... | ... | @@ -38,13 +48,23 @@ |
| 38 | 48 | { |
| 39 | 49 | writew(val, addr); |
| 40 | 50 | } |
| 51 | +void fastcall iowrite16be(u16 val, void __iomem *addr) | |
| 52 | +{ | |
| 53 | + out_be16(addr, val); | |
| 54 | +} | |
| 41 | 55 | void fastcall iowrite32(u32 val, void __iomem *addr) |
| 42 | 56 | { |
| 43 | 57 | writel(val, addr); |
| 44 | 58 | } |
| 59 | +void fastcall iowrite32be(u32 val, void __iomem *addr) | |
| 60 | +{ | |
| 61 | + out_be32(addr, val); | |
| 62 | +} | |
| 45 | 63 | EXPORT_SYMBOL(iowrite8); |
| 46 | 64 | EXPORT_SYMBOL(iowrite16); |
| 65 | +EXPORT_SYMBOL(iowrite16be); | |
| 47 | 66 | EXPORT_SYMBOL(iowrite32); |
| 67 | +EXPORT_SYMBOL(iowrite32be); | |
| 48 | 68 | |
| 49 | 69 | /* |
| 50 | 70 | * These are the "repeat read/write" functions. Note the |