wl12xx: update rx/tx
Update the rx/tx descriptors according to the new fw api (fw >= 6/7.3.0.0.75) Signed-off-by: Eliad Peller <eliad@wizery.com> Signed-off-by: Luciano Coelho <coelho@ti.com>
This commit is contained in:
Родитель
a4e02f330a
Коммит
79b122dc51
|
@ -86,7 +86,7 @@
|
|||
* Bits 3-5 - process_id tag (AP mode FW)
|
||||
* Bits 6-7 - reserved
|
||||
*/
|
||||
#define WL1271_RX_DESC_STATUS_MASK 0x07
|
||||
#define WL1271_RX_DESC_STATUS_MASK 0x03
|
||||
|
||||
#define WL1271_RX_DESC_SUCCESS 0x00
|
||||
#define WL1271_RX_DESC_DECRYPT_FAIL 0x01
|
||||
|
@ -121,10 +121,7 @@ struct wl1271_rx_descriptor {
|
|||
u8 snr;
|
||||
__le32 timestamp;
|
||||
u8 packet_class;
|
||||
union {
|
||||
u8 process_id; /* STA FW */
|
||||
u8 hlid; /* AP FW */
|
||||
} __packed;
|
||||
u8 hlid;
|
||||
u8 pad_len;
|
||||
u8 reserved;
|
||||
} __packed;
|
||||
|
|
|
@ -276,9 +276,9 @@ static void wl1271_tx_fill_hdr(struct wl1271 *wl, struct sk_buff *skb,
|
|||
wl->session_counter << TX_HW_ATTR_OFST_SESSION_COUNTER;
|
||||
}
|
||||
|
||||
if (wl->bss_type != BSS_TYPE_AP_BSS) {
|
||||
desc->aid = hlid;
|
||||
desc->hlid = hlid;
|
||||
|
||||
if (wl->bss_type != BSS_TYPE_AP_BSS) {
|
||||
/* if the packets are destined for AP (have a STA entry)
|
||||
send them with AP rate policies, otherwise use default
|
||||
basic rates */
|
||||
|
@ -287,7 +287,6 @@ static void wl1271_tx_fill_hdr(struct wl1271 *wl, struct sk_buff *skb,
|
|||
else
|
||||
rate_idx = ACX_TX_BASIC_RATE;
|
||||
} else {
|
||||
desc->hlid = hlid;
|
||||
switch (hlid) {
|
||||
case WL1271_AP_GLOBAL_HLID:
|
||||
rate_idx = ACX_TX_AP_MODE_MGMT_RATE;
|
||||
|
@ -375,7 +374,15 @@ static int wl1271_prepare_tx_frame(struct wl1271 *wl, struct sk_buff *skb,
|
|||
if (wl->bss_type == BSS_TYPE_AP_BSS)
|
||||
hlid = wl1271_tx_get_hlid(skb);
|
||||
else
|
||||
hlid = TX_HW_DEFAULT_AID;
|
||||
if (test_bit(WL1271_FLAG_STA_ASSOCIATED, &wl->flags))
|
||||
hlid = wl->sta_hlid;
|
||||
else
|
||||
hlid = wl->dev_hlid;
|
||||
|
||||
if (hlid == WL12XX_INVALID_LINK_ID) {
|
||||
wl1271_error("invalid hlid. dropping skb 0x%p", skb);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
ret = wl1271_tx_allocate(wl, skb, extra, buf_offset, hlid);
|
||||
if (ret < 0)
|
||||
|
|
|
@ -29,9 +29,6 @@
|
|||
|
||||
#define TX_HW_MGMT_PKT_LIFETIME_TU 2000
|
||||
#define TX_HW_AP_MODE_PKT_LIFETIME_TU 8000
|
||||
/* The chipset reference driver states, that the "aid" value 1
|
||||
* is for infra-BSS, but is still always used */
|
||||
#define TX_HW_DEFAULT_AID 1
|
||||
|
||||
#define TX_HW_ATTR_SAVE_RETRIES BIT(0)
|
||||
#define TX_HW_ATTR_HEADER_PAD BIT(1)
|
||||
|
@ -116,12 +113,8 @@ struct wl1271_tx_hw_descr {
|
|||
u8 id;
|
||||
/* The packet TID value (as User-Priority) */
|
||||
u8 tid;
|
||||
union {
|
||||
/* STA - Identifier of the remote STA in IBSS, 1 in infra-BSS */
|
||||
u8 aid;
|
||||
/* AP - host link ID (HLID) */
|
||||
u8 hlid;
|
||||
} __packed;
|
||||
/* host link ID (HLID) */
|
||||
u8 hlid;
|
||||
u8 reserved;
|
||||
} __packed;
|
||||
|
||||
|
@ -133,7 +126,8 @@ enum wl1271_tx_hw_res_status {
|
|||
TX_TIMEOUT = 4,
|
||||
TX_KEY_NOT_FOUND = 5,
|
||||
TX_PEER_NOT_FOUND = 6,
|
||||
TX_SESSION_MISMATCH = 7
|
||||
TX_SESSION_MISMATCH = 7,
|
||||
TX_LINK_NOT_VALID = 8,
|
||||
};
|
||||
|
||||
struct wl1271_tx_hw_res_descr {
|
||||
|
|
|
@ -159,7 +159,7 @@ extern u32 wl12xx_debug_level;
|
|||
#define WL1271_AP_BSS_INDEX 0
|
||||
#define WL1271_AP_DEF_BEACON_EXP 20
|
||||
|
||||
#define ACX_TX_DESCRIPTORS 32
|
||||
#define ACX_TX_DESCRIPTORS 16
|
||||
|
||||
#define WL1271_AGGR_BUFFER_SIZE (4 * PAGE_SIZE)
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче