From 14f637f8f7e4d4d43ac717075aacd0681b3ff270 Mon Sep 17 00:00:00 2001 From: Hoan Hoang Date: Tue, 11 May 2010 02:43:07 -0400 Subject: AX88180: make OUTW handle 32bit/16bit defines too The current OUTW function is always defined as a 16bit function, but this doesn't work correctly when using the 32bit access mode. So define it as a 32bit function when in 32bit mode so things work correctly on Blackfin 32bit LE systems. Signed-off-by: Hoan Hoang Signed-off-by: Mike Frysinger Signed-off-by: Ben Warren --- drivers/net/ax88180.h | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'drivers/net/ax88180.h') diff --git a/drivers/net/ax88180.h b/drivers/net/ax88180.h index f26a91bf8c..9a324bdef0 100644 --- a/drivers/net/ax88180.h +++ b/drivers/net/ax88180.h @@ -357,15 +357,15 @@ static inline unsigned short INW (struct eth_device *dev, unsigned long addr) return le16_to_cpu (*(volatile unsigned short *) (addr + dev->iobase)); } +/* + Access RXBUFFER_START/TXBUFFER_START to read RX buffer/write TX buffer +*/ +#if defined (CONFIG_DRIVER_AX88180_16BIT) static inline void OUTW (struct eth_device *dev, unsigned short command, unsigned long addr) { *(volatile unsigned short *) ((addr + dev->iobase)) = cpu_to_le16 (command); } -/* - Access RXBUFFER_START/TXBUFFER_START to read RX buffer/write TX buffer -*/ -#if defined (CONFIG_DRIVER_AX88180_16BIT) static inline unsigned short READ_RXBUF (struct eth_device *dev) { return le16_to_cpu (*(volatile unsigned short *) (RXBUFFER_START + dev->iobase)); @@ -376,6 +376,11 @@ static inline void WRITE_TXBUF (struct eth_device *dev, unsigned short data) *(volatile unsigned short *) ((TXBUFFER_START + dev->iobase)) = cpu_to_le16 (data); } #else +static inline void OUTW (struct eth_device *dev, unsigned short command, unsigned long addr) +{ + *(volatile unsigned long *) ((addr + dev->iobase)) = cpu_to_le32 (command); +} + static inline unsigned long READ_RXBUF (struct eth_device *dev) { return le32_to_cpu (*(volatile unsigned long *) (RXBUFFER_START + dev->iobase)); -- cgit v1.2.1