diff options
Diffstat (limited to 'arch/blackfin/include/asm/io.h')
| -rw-r--r-- | arch/blackfin/include/asm/io.h | 27 | 
1 files changed, 15 insertions, 12 deletions
diff --git a/arch/blackfin/include/asm/io.h b/arch/blackfin/include/asm/io.h index 63b2d8c7857..3022b5c96b3 100644 --- a/arch/blackfin/include/asm/io.h +++ b/arch/blackfin/include/asm/io.h @@ -80,19 +80,22 @@ static inline unsigned int readl(const volatile void __iomem *addr)  #define memcpy_fromio(a,b,c)	memcpy((a),(void *)(b),(c))  #define memcpy_toio(a,b,c)	memcpy((void *)(a),(b),(c)) -#define inb(addr)    readb(addr) -#define inw(addr)    readw(addr) -#define inl(addr)    readl(addr) -#define outb(x,addr) ((void) writeb(x,addr)) -#define outw(x,addr) ((void) writew(x,addr)) -#define outl(x,addr) ((void) writel(x,addr)) +/* Convert "I/O port addresses" to actual addresses.  i.e. ugly casts. */ +#define __io(port) ((void *)(unsigned long)(port)) -#define inb_p(addr)    inb(addr) -#define inw_p(addr)    inw(addr) -#define inl_p(addr)    inl(addr) -#define outb_p(x,addr) outb(x,addr) -#define outw_p(x,addr) outw(x,addr) -#define outl_p(x,addr) outl(x,addr) +#define inb(port)    readb(__io(port)) +#define inw(port)    readw(__io(port)) +#define inl(port)    readl(__io(port)) +#define outb(x,port) writeb(x,__io(port)) +#define outw(x,port) writew(x,__io(port)) +#define outl(x,port) writel(x,__io(port)) + +#define inb_p(port)    inb(__io(port)) +#define inw_p(port)    inw(__io(port)) +#define inl_p(port)    inl(__io(port)) +#define outb_p(x,port) outb(x,__io(port)) +#define outw_p(x,port) outw(x,__io(port)) +#define outl_p(x,port) outl(x,__io(port))  #define ioread8_rep(a,d,c)	readsb(a,d,c)  #define ioread16_rep(a,d,c)	readsw(a,d,c)  |