summaryrefslogtreecommitdiff
path: root/drivers/net/wireless/ath
diff options
context:
space:
mode:
authorKalle Valo <kvalo@qca.qualcomm.com>2011-11-14 21:30:39 +0400
committerKalle Valo <kvalo@qca.qualcomm.com>2011-11-16 12:22:33 +0400
commit0d4d72bf8e15199c4cf8d5491c9c45464a1d6f08 (patch)
treea7be4246ac9f6244d305065241b3d7d39c983b4c /drivers/net/wireless/ath
parent856f4b313abaeeffff97792c72d17b8b7019440b (diff)
downloadlinux-0d4d72bf8e15199c4cf8d5491c9c45464a1d6f08.tar.xz
ath6kl: add board address to struct ath6kl_hw
This is to make it configurable by firmware IEs. Also determine if we need to write or read the board address to the chip by checking if board address is set or not. Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath')
-rw-r--r--drivers/net/wireless/ath/ath6kl/core.h1
-rw-r--r--drivers/net/wireless/ath/ath6kl/init.c10
-rw-r--r--drivers/net/wireless/ath/ath6kl/target.h3
3 files changed, 5 insertions, 9 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/core.h b/drivers/net/wireless/ath/ath6kl/core.h
index f5a8334ca51e..83167be882e9 100644
--- a/drivers/net/wireless/ath/ath6kl/core.h
+++ b/drivers/net/wireless/ath/ath6kl/core.h
@@ -548,6 +548,7 @@ struct ath6kl {
u32 app_start_override_addr;
u32 board_ext_data_addr;
u32 reserved_ram_size;
+ u32 board_addr;
} hw;
u16 conf_flags;
diff --git a/drivers/net/wireless/ath/ath6kl/init.c b/drivers/net/wireless/ath/ath6kl/init.c
index 77444d1edd5a..bed468d3208b 100644
--- a/drivers/net/wireless/ath/ath6kl/init.c
+++ b/drivers/net/wireless/ath/ath6kl/init.c
@@ -57,6 +57,7 @@ static const struct ath6kl_hw hw_list[] = {
.app_load_addr = 0x1234,
.board_ext_data_addr = 0x437000,
.reserved_ram_size = 19456,
+ .board_addr = 0x433900,
},
{
.id = AR6004_REV2_VERSION,
@@ -64,6 +65,7 @@ static const struct ath6kl_hw hw_list[] = {
.app_load_addr = 0x1234,
.board_ext_data_addr = 0x437000,
.reserved_ram_size = 11264,
+ .board_addr = 0x43d400,
},
};
@@ -1031,12 +1033,8 @@ static int ath6kl_upload_board_file(struct ath6kl *ar)
* For AR6004, host determine Target RAM address for
* writing board data.
*/
- if (ar->target_type == TARGET_TYPE_AR6004) {
- if (ar->version.target_ver == AR6004_REV1_VERSION)
- board_address = AR6004_REV1_BOARD_DATA_ADDRESS;
- else
- board_address = AR6004_REV2_BOARD_DATA_ADDRESS;
-
+ if (ar->hw.board_addr != 0) {
+ board_address = ar->hw.board_addr;
ath6kl_bmi_write(ar,
ath6kl_get_hi_item_addr(ar,
HI_ITEM(hi_board_data)),
diff --git a/drivers/net/wireless/ath/ath6kl/target.h b/drivers/net/wireless/ath/ath6kl/target.h
index ece0f1312ea9..108a723a1085 100644
--- a/drivers/net/wireless/ath/ath6kl/target.h
+++ b/drivers/net/wireless/ath/ath6kl/target.h
@@ -334,9 +334,6 @@ struct host_interest {
(((target_type) == TARGET_TYPE_AR6003) ? AR6003_VTOP(vaddr) : \
(((target_type) == TARGET_TYPE_AR6004) ? AR6004_VTOP(vaddr) : 0))
-#define AR6004_REV1_BOARD_DATA_ADDRESS 0x433900
-#define AR6004_REV2_BOARD_DATA_ADDRESS 0x43d400
-
#define ATH6KL_FWLOG_PAYLOAD_SIZE 1500
struct ath6kl_dbglog_buf {