Commit 766375362a1dcac63dc0c0fb61ce4143c8de63d9

Authored by Arthur Othieno
Committed by Paul Mackerras
1 parent 1635317fac

[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