[Madwifi-cvs] revision 3402 committed
Status: Beta
Brought to you by:
otaku
From: Pavel R. <svn...@ma...> - 2008-03-22 06:13:17
|
Project : madwifi Revision : 3402 Author : proski (Pavel Roskin) Date : 2008-03-22 07:13:08 +0100 (Sat, 22 Mar 2008) Log Message : Don't rely on the compiler optimizing out iowrite32be and ioread32be Use a separate set of _OS_REG_WRITE and _OS_REG_READ macros for little-endian systems. Affected Files: * madwifi/trunk/ath_hal/ah_os.h updated Modified: madwifi/trunk/ath_hal/ah_os.h =================================================================== --- madwifi/trunk/ath_hal/ah_os.h 2008-03-20 03:27:24 UTC (rev 3401) +++ madwifi/trunk/ath_hal/ah_os.h 2008-03-22 06:13:08 UTC (rev 3402) @@ -194,10 +194,6 @@ */ #if (AH_BYTE_ORDER == AH_BIG_ENDIAN) #define is_reg_le(__reg) ((0x4000 <= (__reg) && (__reg) < 0x5000)) -#else -#define is_reg_le(__reg) 1 -#endif - #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12) #define _OS_REG_WRITE(_ah, _reg, _val) do { \ is_reg_le(_reg) ? \ @@ -219,6 +215,21 @@ readl((_ah)->ah_sh + (_reg)) : \ cpu_to_le32(readl((_ah)->ah_sh + (_reg)))) #endif /* KERNEL_VERSION(2,6,12) */ +#else /* AH_BYTE_ORDER != AH_BIG_ENDIAN */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12) +#define _OS_REG_WRITE(_ah, _reg, _val) do { \ + iowrite32((_val), (_ah)->ah_sh + (_reg)); \ + } while (0) +#define _OS_REG_READ(_ah, _reg) \ + ioread32((_ah)->ah_sh + (_reg)) +#else +#define _OS_REG_WRITE(_ah, _reg, _val) do { \ + writel((_val), (_ah)->ah_sh + (_reg)); \ + } while (0) +#define _OS_REG_READ(_ah, _reg) \ + readl((_ah)->ah_sh + (_reg)) +#endif /* KERNEL_VERSION(2,6,12) */ +#endif /* AH_BYTE_ORDER != AH_BIG_ENDIAN */ /* * The functions in this section are not intended to be invoked by MadWifi |