Fix OTP execution address for AR6003 HW2.0 ath6kl: writing otp to 0x543180 (3689 B) ath6kl: bmi LZ stream start: addr: 0x543180) ath6kl: bmi send LZ data: len: 3688) ath6kl: bmi send LZ data: len: 4) ath6kl: bmi LZ stream start: addr: 0x0) ath6kl: bmi read memory: device: addr: 0x54061c, len: 4 ath6kl: app_start_override_addr 0x0 ath6kl: executing OTP at 0x0 ath6kl: bmi execute: addr: 0x0, param: 0) ath6kl: bmi_recv_buf FIFO empty ath6kl: Unable to read from the device: -22 Signed-off-by: Sangwook Lee <sangwook.lee@xxxxxxxxxx> --- drivers/net/wireless/ath/ath6kl/init.c | 3 +++ drivers/net/wireless/ath/ath6kl/target.h | 1 + 2 files changed, 4 insertions(+), 0 deletions(-) diff --git a/drivers/net/wireless/ath/ath6kl/init.c b/drivers/net/wireless/ath/ath6kl/init.c index b277111..bfe802b 100644 --- a/drivers/net/wireless/ath/ath6kl/init.c +++ b/drivers/net/wireless/ath/ath6kl/init.c @@ -1211,6 +1211,9 @@ static int ath6kl_upload_otp(struct ath6kl *ar) return ret; } + if (ar->version.target_ver == AR6003_REV2_VERSION) + address = AR6003_REV2_APP_START_OVERRIDE; + ar->hw.app_start_override_addr = address; ath6kl_dbg(ATH6KL_DBG_BOOT, "app_start_override_addr 0x%x\n", diff --git a/drivers/net/wireless/ath/ath6kl/target.h b/drivers/net/wireless/ath/ath6kl/target.h index c9a7605..253c489 100644 --- a/drivers/net/wireless/ath/ath6kl/target.h +++ b/drivers/net/wireless/ath/ath6kl/target.h @@ -331,6 +331,7 @@ struct host_interest { (((target_type) == TARGET_TYPE_AR6003) ? AR6003_VTOP(vaddr) : \ (((target_type) == TARGET_TYPE_AR6004) ? AR6004_VTOP(vaddr) : 0)) +#define AR6003_REV2_APP_START_OVERRIDE 0x944C00 #define AR6003_REV2_APP_LOAD_ADDRESS 0x543180 #define AR6003_REV2_BOARD_EXT_DATA_ADDRESS 0x57E500 #define AR6003_REV2_DATASET_PATCH_ADDRESS 0x57e884 -- 1.7.4.1 -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html