diff options
-rw-r--r-- | drivers/net/wireless/ath/ath6kl/bmi.h | 13 |
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 3c5b382a3529..18fdd69e1f71 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 | ||
242 | int ath6kl_bmi_init(struct ath6kl *ar); | 249 | int ath6kl_bmi_init(struct ath6kl *ar); |