summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoland Vossen <rvossen@broadcom.com>2011-08-08 15:58:22 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2011-08-23 13:00:02 -0700
commit98ff86e37d1d1c3ebcaa124dfa9a900eb0e1fa77 (patch)
tree6e3dfa425758b479943aaf846b4e569f42bed923
parent9204df650808cf6cf1d84e027c3fec66d7d845d2 (diff)
downloadop-kernel-dev-98ff86e37d1d1c3ebcaa124dfa9a900eb0e1fa77.zip
op-kernel-dev-98ff86e37d1d1c3ebcaa124dfa9a900eb0e1fa77.tar.gz
staging: brcm80211: fixed build issue for big endian platforms
Driver now builds for big endian mips platform, possibly also for other big endian platforms. A change was made to the R_REG and W_REG macro's. These macro's perform an xor (^) operation for endianess swap purposes. Gcc complained because an xor operation is not allowed on a pointer type. Fixed this by casting the pointer to an unsigned long. Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com> Signed-off-by: Arend van Spriel <arend@broadcom.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r--drivers/staging/brcm80211/brcmsmac/dma.h1
-rw-r--r--drivers/staging/brcm80211/brcmsmac/types.h8
2 files changed, 5 insertions, 4 deletions
diff --git a/drivers/staging/brcm80211/brcmsmac/dma.h b/drivers/staging/brcm80211/brcmsmac/dma.h
index 3ff109f..334f2eb 100644
--- a/drivers/staging/brcm80211/brcmsmac/dma.h
+++ b/drivers/staging/brcm80211/brcmsmac/dma.h
@@ -17,6 +17,7 @@
#ifndef _BRCM_DMA_H_
#define _BRCM_DMA_H_
+#include <linux/delay.h>
#include "types.h" /* forward structure declarations */
/* DMA structure:
diff --git a/drivers/staging/brcm80211/brcmsmac/types.h b/drivers/staging/brcm80211/brcmsmac/types.h
index e0880a01..ab97718 100644
--- a/drivers/staging/brcm80211/brcmsmac/types.h
+++ b/drivers/staging/brcm80211/brcmsmac/types.h
@@ -305,11 +305,11 @@ do { \
switch (sizeof(*(r))) { \
case sizeof(u8): \
__osl_v = \
- readb((u8 *)((r)^3)); \
+ readb((u8 *)((unsigned long)(r)^3)); \
break; \
case sizeof(u16): \
__osl_v = \
- readw((u16 *)((r)^2)); \
+ readw((u16 *)((unsigned long)(r)^2)); \
break; \
case sizeof(u32): \
__osl_v = readl((u32 *)(r)); \
@@ -322,10 +322,10 @@ do { \
switch (sizeof(*(r))) { \
case sizeof(u8): \
writeb((u8)(v), \
- (u8 *)((r)^3)); break; \
+ (u8 *)((unsigned long)(r)^3)); break; \
case sizeof(u16): \
writew((u16)(v), \
- (u16 *)((r)^2)); break; \
+ (u16 *)((unsigned long)(r)^2)); break; \
case sizeof(u32): \
writel((u32)(v), \
(u32 *)(r)); break; \
OpenPOWER on IntegriCloud