aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKalle Valo <kvalo@qca.qualcomm.com>2012-03-07 13:03:59 -0500
committerKalle Valo <kvalo@qca.qualcomm.com>2012-03-07 13:03:59 -0500
commit80fb26863952eecef70b4e93c283d99584fbb912 (patch)
treef71941dc75665a9bde532c343a402515ee62077d
parent24fc32b35647401bbf03b3e2d5f01c6d0579a01c (diff)
ath6kl: add ath6kl_bmi_read_hi32()
There are few 32 bit reads from the host interest area. Add ath6kl_bmi_read_hi32() to make it easier to do that. As code is cleaner this also fixes few checkpatch warnings. Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
-rw-r--r--drivers/net/wireless/ath/ath6kl/bmi.h7
-rw-r--r--drivers/net/wireless/ath/ath6kl/init.c20
2 files changed, 11 insertions, 16 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/bmi.h b/drivers/net/wireless/ath/ath6kl/bmi.h
index e6a7330aadcd..3c5b382a3529 100644
--- a/drivers/net/wireless/ath/ath6kl/bmi.h
+++ b/drivers/net/wireless/ath/ath6kl/bmi.h
@@ -231,6 +231,13 @@ struct ath6kl_bmi_target_info {
231 ath6kl_bmi_write(ar, addr, (u8 *) &v, sizeof(v)); \ 231 ath6kl_bmi_write(ar, addr, (u8 *) &v, sizeof(v)); \
232 }) 232 })
233 233
234#define ath6kl_bmi_read_hi32(ar, item, val) \
235 ({ \
236 u32 addr, *check_type = val; \
237 (void) (check_type == val); \
238 addr = ath6kl_get_hi_item_addr(ar, HI_ITEM(item)); \
239 ath6kl_bmi_read(ar, addr, (u8 *) val, 4); \
240 })
234 241
235int ath6kl_bmi_init(struct ath6kl *ar); 242int ath6kl_bmi_init(struct ath6kl *ar);
236void ath6kl_bmi_cleanup(struct ath6kl *ar); 243void ath6kl_bmi_cleanup(struct ath6kl *ar);
diff --git a/drivers/net/wireless/ath/ath6kl/init.c b/drivers/net/wireless/ath/ath6kl/init.c
index da5900d30caa..d1d121dc8970 100644
--- a/drivers/net/wireless/ath/ath6kl/init.c
+++ b/drivers/net/wireless/ath/ath6kl/init.c
@@ -501,10 +501,7 @@ int ath6kl_configure_target(struct ath6kl *ar)
501 /* set the firmware mode to STA/IBSS/AP */ 501 /* set the firmware mode to STA/IBSS/AP */
502 param = 0; 502 param = 0;
503 503
504 if (ath6kl_bmi_read(ar, 504 if (ath6kl_bmi_read_hi32(ar, hi_option_flag, &param) != 0) {
505 ath6kl_get_hi_item_addr(ar,
506 HI_ITEM(hi_option_flag)),
507 (u8 *)&param, 4) != 0) {
508 ath6kl_err("bmi_read_memory for setting fwmode failed\n"); 505 ath6kl_err("bmi_read_memory for setting fwmode failed\n");
509 return -EIO; 506 return -EIO;
510 } 507 }
@@ -1074,17 +1071,11 @@ static int ath6kl_upload_board_file(struct ath6kl *ar)
1074 ath6kl_bmi_write_hi32(ar, hi_board_data, 1071 ath6kl_bmi_write_hi32(ar, hi_board_data,
1075 ar->hw.board_addr); 1072 ar->hw.board_addr);
1076 } else { 1073 } else {
1077 ath6kl_bmi_read(ar, 1074 ath6kl_bmi_read_hi32(ar, hi_board_data, &board_address);
1078 ath6kl_get_hi_item_addr(ar,
1079 HI_ITEM(hi_board_data)),
1080 (u8 *) &board_address, 4);
1081 } 1075 }
1082 1076
1083 /* determine where in target ram to write extended board data */ 1077 /* determine where in target ram to write extended board data */
1084 ath6kl_bmi_read(ar, 1078 ath6kl_bmi_read_hi32(ar, hi_board_ext_data, &board_ext_address);
1085 ath6kl_get_hi_item_addr(ar,
1086 HI_ITEM(hi_board_ext_data)),
1087 (u8 *) &board_ext_address, 4);
1088 1079
1089 if (ar->target_type == TARGET_TYPE_AR6003 && 1080 if (ar->target_type == TARGET_TYPE_AR6003 &&
1090 board_ext_address == 0) { 1081 board_ext_address == 0) {
@@ -1177,10 +1168,7 @@ static int ath6kl_upload_otp(struct ath6kl *ar)
1177 } 1168 }
1178 1169
1179 /* read firmware start address */ 1170 /* read firmware start address */
1180 ret = ath6kl_bmi_read(ar, 1171 ret = ath6kl_bmi_read_hi32(ar, hi_app_start, &address);
1181 ath6kl_get_hi_item_addr(ar,
1182 HI_ITEM(hi_app_start)),
1183 (u8 *) &address, sizeof(address));
1184 1172
1185 if (ret) { 1173 if (ret) {
1186 ath6kl_err("Failed to read hi_app_start: %d\n", ret); 1174 ath6kl_err("Failed to read hi_app_start: %d\n", ret);