From dcefe33658dfb8628cdba7a3c45df5016f3b0be3 Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Mon, 29 Aug 2011 12:47:07 +0200 Subject: [PATCH] microblaze: Fix in/out_be8/16/32 functions Use inline functions instead of macros because of typechecking. Signed-off-by: Michal Simek --- arch/microblaze/include/asm/io.h | 33 ++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/arch/microblaze/include/asm/io.h b/arch/microblaze/include/asm/io.h index 584cbce358c..add666e950f 100644 --- a/arch/microblaze/include/asm/io.h +++ b/arch/microblaze/include/asm/io.h @@ -46,14 +46,35 @@ #define outl(x, addr) ((void) writel (x, addr)) /* Some #definitions to keep strange Xilinx code happy */ -#define in_8(addr) readb (addr) -#define in_be16(addr) readw (addr) -#define in_be32(addr) readl (addr) +extern inline int in_8(volatile unsigned char *addr) +{ + return readb(addr); +} + +extern inline int in_be16(volatile unsigned short *addr) +{ + return readw(addr); +} -#define out_8(addr,x ) outb (x,addr) -#define out_be16(addr,x ) outw (x,addr) -#define out_be32(addr,x ) outl (x,addr) +extern inline int in_be32(volatile unsigned int *addr) +{ + return readl(addr); +} +extern inline void out_8(volatile unsigned char *addr, char val) +{ + outb(val, addr); +} + +extern inline void out_be16(volatile unsigned short *addr, short val) +{ + outw(val, addr); +} + +extern inline void out_be32(volatile unsigned int *addr, int val) +{ + outl(val, addr); +} #define inb_p(port) inb((port)) #define outb_p(val, port) outb((val), (port)) -- 2.47.3