frv: add io{read,write}{16,32}be functions
authorGuenter Roeck <linux@roeck-us.net>
Mon, 20 Apr 2015 15:36:15 +0000 (08:36 -0700)
committerRob Herring <robh@kernel.org>
Thu, 23 Apr 2015 03:38:21 +0000 (22:38 -0500)
These functions are used in various drivers, including the latest
version of the 8250 driver. The latter causes the following build
failure.

drivers/tty/serial/8250/8250_core.c: In function 'mem32be_serial_out':
drivers/tty/serial/8250/8250_core.c:456:2: error:
implicit declaration of function 'iowrite32be'
drivers/tty/serial/8250/8250_core.c: In function 'mem32be_serial_in':
drivers/tty/serial/8250/8250_core.c:462:2: error:
implicit declaration of function 'ioread32be'

Cc: Kevin Cernekee <cernekee@gmail.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Fixes: c627f2ceb692 ("serial: 8250: Add support for big-endian MMIO
accesses")
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Rob Herring <robh@kernel.org>
arch/frv/include/asm/io.h

index 99bb7ef..0b78bc8 100644 (file)
@@ -342,6 +342,11 @@ static inline void iowrite32(u32 val, void __iomem *p)
                __flush_PCI_writes();
 }
 
+#define ioread16be(addr)       be16_to_cpu(ioread16(addr))
+#define ioread32be(addr)       be32_to_cpu(ioread32(addr))
+#define iowrite16be(v, addr)   iowrite16(cpu_to_be16(v), (addr))
+#define iowrite32be(v, addr)   iowrite32(cpu_to_be32(v), (addr))
+
 static inline void ioread8_rep(void __iomem *p, void *dst, unsigned long count)
 {
        io_insb((unsigned long) p, dst, count);