0e84f13bb3
Backport the latest significant changes from ath6kl in 3.17, and add the SDIO ID of the V8P's wireless adapter. This should possibly make wireless work on the V8P.
58 lines
2.0 KiB
Diff
58 lines
2.0 KiB
Diff
From 1c3d95edf026c6fb446f53913c61ff1036c469cd Mon Sep 17 00:00:00 2001
|
|
From: Frederic Danis <frederic.danis@linux.intel.com>
|
|
Date: Mon, 2 Jun 2014 21:19:46 +0300
|
|
Subject: [PATCH 1/8] ath6kl: Fix ath6kl_bmi_read_hi32 macro
|
|
|
|
tmp may be used uninitialized if ath6kl_bmi_read() returns an error.
|
|
|
|
Signed-off-by: Frederic Danis <frederic.danis@linux.intel.com>
|
|
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
|
|
---
|
|
drivers/net/wireless/ath/ath6kl/bmi.h | 3 ++-
|
|
drivers/net/wireless/ath/ath6kl/init.c | 12 ++++++++++--
|
|
2 files changed, 12 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/drivers/net/wireless/ath/ath6kl/bmi.h b/drivers/net/wireless/ath/ath6kl/bmi.h
|
|
index 18fdd69..397a52f 100644
|
|
--- a/drivers/net/wireless/ath/ath6kl/bmi.h
|
|
+++ b/drivers/net/wireless/ath/ath6kl/bmi.h
|
|
@@ -242,7 +242,8 @@ struct ath6kl_bmi_target_info {
|
|
(void) (check_type == val); \
|
|
addr = ath6kl_get_hi_item_addr(ar, HI_ITEM(item)); \
|
|
ret = ath6kl_bmi_read(ar, addr, (u8 *) &tmp, 4); \
|
|
- *val = le32_to_cpu(tmp); \
|
|
+ if (!ret) \
|
|
+ *val = le32_to_cpu(tmp); \
|
|
ret; \
|
|
})
|
|
|
|
diff --git a/drivers/net/wireless/ath/ath6kl/init.c b/drivers/net/wireless/ath/ath6kl/init.c
|
|
index d5ef211..6e1e699 100644
|
|
--- a/drivers/net/wireless/ath/ath6kl/init.c
|
|
+++ b/drivers/net/wireless/ath/ath6kl/init.c
|
|
@@ -1161,11 +1161,19 @@ static int ath6kl_upload_board_file(struct ath6kl *ar)
|
|
ath6kl_bmi_write_hi32(ar, hi_board_data,
|
|
board_address);
|
|
} else {
|
|
- ath6kl_bmi_read_hi32(ar, hi_board_data, &board_address);
|
|
+ ret = ath6kl_bmi_read_hi32(ar, hi_board_data, &board_address);
|
|
+ if (ret) {
|
|
+ ath6kl_err("Failed to get board file target address.\n");
|
|
+ return ret;
|
|
+ }
|
|
}
|
|
|
|
/* determine where in target ram to write extended board data */
|
|
- ath6kl_bmi_read_hi32(ar, hi_board_ext_data, &board_ext_address);
|
|
+ ret = ath6kl_bmi_read_hi32(ar, hi_board_ext_data, &board_ext_address);
|
|
+ if (ret) {
|
|
+ ath6kl_err("Failed to get extended board file target address.\n");
|
|
+ return ret;
|
|
+ }
|
|
|
|
if (ar->target_type == TARGET_TYPE_AR6003 &&
|
|
board_ext_address == 0) {
|
|
--
|
|
2.1.0
|
|
|