--- a/ath_hal/ah_os.h
+++ b/ath_hal/ah_os.h
@@ -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
