[Madwifi-cvs] revision 1722 committed
Status: Beta
Brought to you by:
otaku
From: Matthew W. S. B. <svn...@ma...> - 2006-09-20 09:12:06
|
Project : madwifi Revision : 1722 Author : mentor (Matthew W. S. Bell) Date : 2006-09-20 11:11:58 +0200 (Wed, 20 Sep 2006) Log Message : Ahem. Back out changes from HAL. This was subtely wrong anyway. Affected Files: * trunk/hal/linux/ah_osdep.h updated Modified: trunk/hal/linux/ah_osdep.h =================================================================== --- trunk/hal/linux/ah_osdep.h 2006-09-20 08:45:13 UTC (rev 1721) +++ trunk/hal/linux/ah_osdep.h 2006-09-20 09:11:58 UTC (rev 1722) @@ -163,29 +163,25 @@ * platforms we have to byte-swap thoese registers specifically. * Most of this code is collapsed at compile time because the * register values are constants. - * - * Presumably when talking about hardware byte-swapping, the above - * text is referring to the Atheros chipset, as the registers - * referred to are in the PCI memory address space, and these are - * never byte-swapped by PCI chipsets or bridges, but always - * written directly (as in the format defined by the manufacturer). */ #if AH_BYTE_ORDER == AH_BIG_ENDIAN -#define _OS_REG_WRITE(_ah, _reg, _val) do { \ - writel((0x4000 <= (_reg) && (_reg) < 0x5000) ? \ - __bswap32(_val) : _val, \ - (_ah)->ah_sh + (_reg)); \ +#define _OS_REG_WRITE(_ah, _reg, _val) do { \ + if ( (_reg) >= 0x4000 && (_reg) < 0x5000) \ + *((volatile u_int32_t *)((_ah)->ah_sh + (_reg))) = \ + __bswap32((_val)); \ + else \ + *((volatile u_int32_t *)((_ah)->ah_sh + (_reg))) = (_val); \ } while (0) -#define _OS_REG_READ(_ah, _reg) \ - ((0x4000 <= (_reg) && (_reg) < 0x5000) ? \ - __bswap32(readl((_ah)->ah_sh + (_reg))) : \ - readl((_ah)->ah_sh + (_reg))) +#define _OS_REG_READ(_ah, _reg) \ + (((_reg) >= 0x4000 && (_reg) < 0x5000) ? \ + __bswap32(*((volatile u_int32_t *)((_ah)->ah_sh + (_reg)))) : \ + *((volatile u_int32_t *)((_ah)->ah_sh + (_reg)))) #else /* AH_LITTLE_ENDIAN */ -#define _OS_REG_WRITE(_ah, _reg, _val) do { \ - writel(_val, (_ah)->ah_sh + (_reg)); \ +#define _OS_REG_WRITE(_ah, _reg, _val) do { \ + *((volatile u_int32_t *)((_ah)->ah_sh + (_reg))) = (_val); \ } while (0) -#define _OS_REG_READ(_ah, _reg) \ - readl((_ah)->ah_sh + (_reg)) +#define _OS_REG_READ(_ah, _reg) \ + *((volatile u_int32_t *)((_ah)->ah_sh + (_reg))) #endif /* AH_BYTE_ORDER */ #if defined(AH_DEBUG) || defined(AH_REGOPS_FUNC) || defined(AH_DEBUG_ALQ) |