summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath6kl/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/ath/ath6kl/init.c')
-rw-r--r--drivers/net/wireless/ath/ath6kl/init.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/init.c b/drivers/net/wireless/ath/ath6kl/init.c
index e2a29b25884..b9b13a040c7 100644
--- a/drivers/net/wireless/ath/ath6kl/init.c
+++ b/drivers/net/wireless/ath/ath6kl/init.c
@@ -901,7 +901,7 @@ static int ath6kl_fetch_fw_api2(struct ath6kl *ar)
struct ath6kl_fw_ie *hdr;
const char *filename;
const u8 *data;
- int ret, ie_id;
+ int ret, ie_id, i, index, bit;
__le32 *val;
switch (ar->version.target_ver) {
@@ -992,6 +992,15 @@ static int ath6kl_fetch_fw_api2(struct ath6kl *ar)
val = (__le32 *) data;
ar->hw.reserved_ram_size = le32_to_cpup(val);
break;
+ case ATH6KL_FW_IE_CAPABILITIES:
+ for (i = 0; i < ATH6KL_FW_CAPABILITY_MAX; i++) {
+ index = ALIGN(i, 8) / 8;
+ bit = i % 8;
+
+ if (data[index] & (1 << bit))
+ __set_bit(i, ar->fw_capabilities);
+ }
+ break;
default:
ath6kl_dbg(ATH6KL_DBG_TRC, "Unknown fw ie: %u\n",
le32_to_cpup(&hdr->id));