diff options
-rw-r--r-- | drivers/net/wireless/ath/ath6kl/init.c | 17 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath6kl/target.h | 2 |
2 files changed, 13 insertions, 6 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/init.c b/drivers/net/wireless/ath/ath6kl/init.c index bf0385ec0e05..5865466e884c 100644 --- a/drivers/net/wireless/ath/ath6kl/init.c +++ b/drivers/net/wireless/ath/ath6kl/init.c | |||
@@ -1146,9 +1146,21 @@ static int ath6kl_upload_otp(struct ath6kl *ar) | |||
1146 | return ret; | 1146 | return ret; |
1147 | } | 1147 | } |
1148 | 1148 | ||
1149 | /* read firmware start address */ | ||
1150 | ret = ath6kl_bmi_read(ar, | ||
1151 | ath6kl_get_hi_item_addr(ar, | ||
1152 | HI_ITEM(hi_app_start)), | ||
1153 | (u8 *) &address, sizeof(address)); | ||
1154 | |||
1155 | if (ret) { | ||
1156 | ath6kl_err("Failed to read hi_app_start: %d\n", ret); | ||
1157 | return ret; | ||
1158 | } | ||
1159 | |||
1160 | ar->hw.app_start_override_addr = address; | ||
1161 | |||
1149 | /* execute the OTP code */ | 1162 | /* execute the OTP code */ |
1150 | param = 0; | 1163 | param = 0; |
1151 | address = ar->hw.app_start_override_addr; | ||
1152 | ath6kl_bmi_execute(ar, address, ¶m); | 1164 | ath6kl_bmi_execute(ar, address, ¶m); |
1153 | 1165 | ||
1154 | return ret; | 1166 | return ret; |
@@ -1343,21 +1355,18 @@ static int ath6kl_init_hw_params(struct ath6kl *ar) | |||
1343 | case AR6003_REV2_VERSION: | 1355 | case AR6003_REV2_VERSION: |
1344 | ar->hw.dataset_patch_addr = AR6003_REV2_DATASET_PATCH_ADDRESS; | 1356 | ar->hw.dataset_patch_addr = AR6003_REV2_DATASET_PATCH_ADDRESS; |
1345 | ar->hw.app_load_addr = AR6003_REV2_APP_LOAD_ADDRESS; | 1357 | ar->hw.app_load_addr = AR6003_REV2_APP_LOAD_ADDRESS; |
1346 | ar->hw.app_start_override_addr = AR6003_REV2_APP_START_OVERRIDE; | ||
1347 | ar->hw.board_ext_data_addr = AR6003_REV2_BOARD_EXT_DATA_ADDRESS; | 1358 | ar->hw.board_ext_data_addr = AR6003_REV2_BOARD_EXT_DATA_ADDRESS; |
1348 | ar->hw.reserved_ram_size = AR6003_REV2_RAM_RESERVE_SIZE; | 1359 | ar->hw.reserved_ram_size = AR6003_REV2_RAM_RESERVE_SIZE; |
1349 | break; | 1360 | break; |
1350 | case AR6003_REV3_VERSION: | 1361 | case AR6003_REV3_VERSION: |
1351 | ar->hw.dataset_patch_addr = AR6003_REV3_DATASET_PATCH_ADDRESS; | 1362 | ar->hw.dataset_patch_addr = AR6003_REV3_DATASET_PATCH_ADDRESS; |
1352 | ar->hw.app_load_addr = 0x1234; | 1363 | ar->hw.app_load_addr = 0x1234; |
1353 | ar->hw.app_start_override_addr = AR6003_REV3_APP_START_OVERRIDE; | ||
1354 | ar->hw.board_ext_data_addr = AR6003_REV3_BOARD_EXT_DATA_ADDRESS; | 1364 | ar->hw.board_ext_data_addr = AR6003_REV3_BOARD_EXT_DATA_ADDRESS; |
1355 | ar->hw.reserved_ram_size = AR6003_REV3_RAM_RESERVE_SIZE; | 1365 | ar->hw.reserved_ram_size = AR6003_REV3_RAM_RESERVE_SIZE; |
1356 | break; | 1366 | break; |
1357 | case AR6004_REV1_VERSION: | 1367 | case AR6004_REV1_VERSION: |
1358 | ar->hw.dataset_patch_addr = AR6003_REV2_DATASET_PATCH_ADDRESS; | 1368 | ar->hw.dataset_patch_addr = AR6003_REV2_DATASET_PATCH_ADDRESS; |
1359 | ar->hw.app_load_addr = AR6003_REV3_APP_LOAD_ADDRESS; | 1369 | ar->hw.app_load_addr = AR6003_REV3_APP_LOAD_ADDRESS; |
1360 | ar->hw.app_start_override_addr = AR6003_REV3_APP_START_OVERRIDE; | ||
1361 | ar->hw.board_ext_data_addr = AR6004_REV1_BOARD_EXT_DATA_ADDRESS; | 1370 | ar->hw.board_ext_data_addr = AR6004_REV1_BOARD_EXT_DATA_ADDRESS; |
1362 | ar->hw.reserved_ram_size = AR6004_REV1_RAM_RESERVE_SIZE; | 1371 | ar->hw.reserved_ram_size = AR6004_REV1_RAM_RESERVE_SIZE; |
1363 | break; | 1372 | break; |
diff --git a/drivers/net/wireless/ath/ath6kl/target.h b/drivers/net/wireless/ath/ath6kl/target.h index 7db06a5d9194..c9a76051f042 100644 --- a/drivers/net/wireless/ath/ath6kl/target.h +++ b/drivers/net/wireless/ath/ath6kl/target.h | |||
@@ -331,13 +331,11 @@ struct host_interest { | |||
331 | (((target_type) == TARGET_TYPE_AR6003) ? AR6003_VTOP(vaddr) : \ | 331 | (((target_type) == TARGET_TYPE_AR6003) ? AR6003_VTOP(vaddr) : \ |
332 | (((target_type) == TARGET_TYPE_AR6004) ? AR6004_VTOP(vaddr) : 0)) | 332 | (((target_type) == TARGET_TYPE_AR6004) ? AR6004_VTOP(vaddr) : 0)) |
333 | 333 | ||
334 | #define AR6003_REV2_APP_START_OVERRIDE 0x944C00 | ||
335 | #define AR6003_REV2_APP_LOAD_ADDRESS 0x543180 | 334 | #define AR6003_REV2_APP_LOAD_ADDRESS 0x543180 |
336 | #define AR6003_REV2_BOARD_EXT_DATA_ADDRESS 0x57E500 | 335 | #define AR6003_REV2_BOARD_EXT_DATA_ADDRESS 0x57E500 |
337 | #define AR6003_REV2_DATASET_PATCH_ADDRESS 0x57e884 | 336 | #define AR6003_REV2_DATASET_PATCH_ADDRESS 0x57e884 |
338 | #define AR6003_REV2_RAM_RESERVE_SIZE 6912 | 337 | #define AR6003_REV2_RAM_RESERVE_SIZE 6912 |
339 | 338 | ||
340 | #define AR6003_REV3_APP_START_OVERRIDE 0x945d00 | ||
341 | #define AR6003_REV3_APP_LOAD_ADDRESS 0x545000 | 339 | #define AR6003_REV3_APP_LOAD_ADDRESS 0x545000 |
342 | #define AR6003_REV3_BOARD_EXT_DATA_ADDRESS 0x542330 | 340 | #define AR6003_REV3_BOARD_EXT_DATA_ADDRESS 0x542330 |
343 | #define AR6003_REV3_DATASET_PATCH_ADDRESS 0x57FF74 | 341 | #define AR6003_REV3_DATASET_PATCH_ADDRESS 0x57FF74 |