aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorKalle Valo <kvalo@qca.qualcomm.com>2012-03-07 13:04:00 -0500
committerKalle Valo <kvalo@qca.qualcomm.com>2012-03-07 13:04:00 -0500
commitb51f92e09ab63f49bb32769cc3a7d0d49ffefcdf (patch)
tree46d64af4d3383b5dfea1b4722fc6eff0502c7b4c /drivers/net/wireless
parent05aab177a9a231455d8dfcb71c7179da0985e7f8 (diff)
ath6kl: make ath6kl_bmi_[read|write]_hi32() endian safe
ath6kl_bmi_[read|write]_hi32() did not have endian support, fix that. Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/ath/ath6kl/bmi.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/bmi.h b/drivers/net/wireless/ath/ath6kl/bmi.h
index 3c5b382a352..18fdd69e1f7 100644
--- a/drivers/net/wireless/ath/ath6kl/bmi.h
+++ b/drivers/net/wireless/ath/ath6kl/bmi.h
@@ -225,18 +225,25 @@ struct ath6kl_bmi_target_info {
225 225
226#define ath6kl_bmi_write_hi32(ar, item, val) \ 226#define ath6kl_bmi_write_hi32(ar, item, val) \
227 ({ \ 227 ({ \
228 u32 addr, v; \ 228 u32 addr; \
229 __le32 v; \
230 \
229 addr = ath6kl_get_hi_item_addr(ar, HI_ITEM(item)); \ 231 addr = ath6kl_get_hi_item_addr(ar, HI_ITEM(item)); \
230 v = val; \ 232 v = cpu_to_le32(val); \
231 ath6kl_bmi_write(ar, addr, (u8 *) &v, sizeof(v)); \ 233 ath6kl_bmi_write(ar, addr, (u8 *) &v, sizeof(v)); \
232 }) 234 })
233 235
234#define ath6kl_bmi_read_hi32(ar, item, val) \ 236#define ath6kl_bmi_read_hi32(ar, item, val) \
235 ({ \ 237 ({ \
236 u32 addr, *check_type = val; \ 238 u32 addr, *check_type = val; \
239 __le32 tmp; \
240 int ret; \
241 \
237 (void) (check_type == val); \ 242 (void) (check_type == val); \
238 addr = ath6kl_get_hi_item_addr(ar, HI_ITEM(item)); \ 243 addr = ath6kl_get_hi_item_addr(ar, HI_ITEM(item)); \
239 ath6kl_bmi_read(ar, addr, (u8 *) val, 4); \ 244 ret = ath6kl_bmi_read(ar, addr, (u8 *) &tmp, 4); \
245 *val = le32_to_cpu(tmp); \
246 ret; \
240 }) 247 })
241 248
242int ath6kl_bmi_init(struct ath6kl *ar); 249int ath6kl_bmi_init(struct ath6kl *ar);