aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMohammed Shafi Shajakhan <mohammed@qca.qualcomm.com>2012-09-27 08:49:53 -0400
committerKalle Valo <kvalo@qca.qualcomm.com>2012-10-24 04:49:57 -0400
commita2e1be33a2a762a30e2960c11634a672cdf131cb (patch)
treea99d03c5e3587efdf7dbc9a08a50786de300d737
parent171fe76877d3d8071a901e64eb63eeee6c7760a2 (diff)
ath6kl: Add a hardware flag for SDIO CRC error workaround
Make use of SDIO CRC error workaround hardware flag and avoid target revision checks. Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qca.qualcomm.com> Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
-rw-r--r--drivers/net/wireless/ath/ath6kl/core.h1
-rw-r--r--drivers/net/wireless/ath/ath6kl/init.c7
2 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/core.h b/drivers/net/wireless/ath/ath6kl/core.h
index 1778bd3c732..189d8faf8c8 100644
--- a/drivers/net/wireless/ath/ath6kl/core.h
+++ b/drivers/net/wireless/ath/ath6kl/core.h
@@ -152,6 +152,7 @@ enum ath6kl_hw_flags {
152 ATH6KL_HW_64BIT_RATES = BIT(0), 152 ATH6KL_HW_64BIT_RATES = BIT(0),
153 ATH6KL_HW_AP_INACTIVITY_MINS = BIT(1), 153 ATH6KL_HW_AP_INACTIVITY_MINS = BIT(1),
154 ATH6KL_HW_MAP_LP_ENDPOINT = BIT(2), 154 ATH6KL_HW_MAP_LP_ENDPOINT = BIT(2),
155 ATH6KL_HW_SDIO_CRC_ERROR_WAR = BIT(3),
155}; 156};
156 157
157#define ATH6KL_FW_API2_FILE "fw-2.bin" 158#define ATH6KL_FW_API2_FILE "fw-2.bin"
diff --git a/drivers/net/wireless/ath/ath6kl/init.c b/drivers/net/wireless/ath/ath6kl/init.c
index bb6aeea1c87..f21fa322e5c 100644
--- a/drivers/net/wireless/ath/ath6kl/init.c
+++ b/drivers/net/wireless/ath/ath6kl/init.c
@@ -42,7 +42,7 @@ static const struct ath6kl_hw hw_list[] = {
42 .reserved_ram_size = 6912, 42 .reserved_ram_size = 6912,
43 .refclk_hz = 26000000, 43 .refclk_hz = 26000000,
44 .uarttx_pin = 8, 44 .uarttx_pin = 8,
45 .flags = 0, 45 .flags = ATH6KL_HW_SDIO_CRC_ERROR_WAR,
46 46
47 /* hw2.0 needs override address hardcoded */ 47 /* hw2.0 needs override address hardcoded */
48 .app_start_override_addr = 0x944C00, 48 .app_start_override_addr = 0x944C00,
@@ -68,7 +68,7 @@ static const struct ath6kl_hw hw_list[] = {
68 .refclk_hz = 26000000, 68 .refclk_hz = 26000000,
69 .uarttx_pin = 8, 69 .uarttx_pin = 8,
70 .testscript_addr = 0x57ef74, 70 .testscript_addr = 0x57ef74,
71 .flags = 0, 71 .flags = ATH6KL_HW_SDIO_CRC_ERROR_WAR,
72 72
73 .fw = { 73 .fw = {
74 .dir = AR6003_HW_2_1_1_FW_DIR, 74 .dir = AR6003_HW_2_1_1_FW_DIR,
@@ -1431,8 +1431,7 @@ static int ath6kl_init_upload(struct ath6kl *ar)
1431 return status; 1431 return status;
1432 1432
1433 /* WAR to avoid SDIO CRC err */ 1433 /* WAR to avoid SDIO CRC err */
1434 if (ar->version.target_ver == AR6003_HW_2_0_VERSION || 1434 if (ar->hw.flags & ATH6KL_HW_SDIO_CRC_ERROR_WAR) {
1435 ar->version.target_ver == AR6003_HW_2_1_1_VERSION) {
1436 ath6kl_err("temporary war to avoid sdio crc error\n"); 1435 ath6kl_err("temporary war to avoid sdio crc error\n");
1437 1436
1438 param = 0x28; 1437 param = 0x28;