Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 266601
b: refs/heads/master
c: 97e0496
h: refs/heads/master
i:
  266599: 414768d
v: v3
  • Loading branch information
Kalle Valo committed Sep 16, 2011
1 parent b15acbe commit 52cc78a
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 2 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 8a13748034e93b4134455ebf51e2fada8eb00aca
refs/heads/master: 97e0496d056726ab46e7e977315f2ab847b34209
12 changes: 12 additions & 0 deletions trunk/drivers/net/wireless/ath/ath6kl/core.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,18 @@ enum ath6kl_fw_ie_type {
ATH6KL_FW_IE_FW_IMAGE = 3,
ATH6KL_FW_IE_PATCH_IMAGE = 4,
ATH6KL_FW_IE_RESERVED_RAM_SIZE = 5,
ATH6KL_FW_IE_CAPABILITIES = 6,
};

enum ath6kl_fw_capability {
ATH6KL_FW_CAPABILITY_HOST_P2P = 0,

/* this needs to be last */
ATH6KL_FW_CAPABILITY_MAX,
};

#define ATH6KL_CAPABILITY_LEN (ALIGN(ATH6KL_FW_CAPABILITY_MAX, 32) / 32)

struct ath6kl_fw_ie {
__le32 id;
__le32 len;
Expand Down Expand Up @@ -491,6 +501,8 @@ struct ath6kl {
u8 *fw_patch;
size_t fw_patch_len;

unsigned long fw_capabilities[ATH6KL_CAPABILITY_LEN];

struct workqueue_struct *ath6kl_wq;

struct ath6kl_node_table scan_table;
Expand Down
11 changes: 10 additions & 1 deletion trunk/drivers/net/wireless/ath/ath6kl/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -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));
Expand Down

0 comments on commit 52cc78a

Please sign in to comment.