wl12xx: Add AP related definitions to HOST-FW interface

Change structures in a non-destructive manner. This means no
changes in size or location of existing members used by STA.

Signed-off-by: Arik Nemtsov <arik@wizery.com>
Reviewed-by: Luciano Coelho <coelho@ti.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
This commit is contained in:
Arik Nemtsov 2010-10-16 18:53:48 +02:00 committed by Luciano Coelho
parent ae113b5782
commit beb6c88072
4 changed files with 37 additions and 7 deletions

View File

@ -116,7 +116,12 @@ struct event_mailbox {
u8 scheduled_scan_status;
u8 ps_status;
u8 reserved_5[29];
/* AP FW only */
u8 hlid_removed;
__le16 sta_aging_status;
__le16 sta_tx_retry_exceeded;
u8 reserved_5[24];
} __packed;
int wl1271_event_unmask(struct wl1271 *wl);

View File

@ -86,8 +86,9 @@
/*
* RX Descriptor status
*
* Bits 0-2 - status
* Bits 3-7 - reserved
* Bits 0-2 - error code
* Bits 3-5 - process_id tag (AP mode FW)
* Bits 6-7 - reserved
*/
#define WL1271_RX_DESC_STATUS_MASK 0x07
@ -110,7 +111,10 @@ struct wl1271_rx_descriptor {
u8 snr;
__le32 timestamp;
u8 packet_class;
u8 process_id;
union {
u8 process_id; /* STA FW */
u8 hlid; /* AP FW */
} __packed;
u8 pad_len;
u8 reserved;
} __packed;

View File

@ -29,6 +29,7 @@
#define TX_HW_BLOCK_SIZE 252
#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
@ -77,8 +78,12 @@ struct wl1271_tx_hw_descr {
u8 id;
/* The packet TID value (as User-Priority) */
u8 tid;
/* Identifier of the remote STA in IBSS, 1 in infra-BSS */
u8 aid;
union {
/* STA - Identifier of the remote STA in IBSS, 1 in infra-BSS */
u8 aid;
/* AP - host link ID (HLID) */
u8 hlid;
} __packed;
u8 reserved;
} __packed;

View File

@ -195,6 +195,11 @@ struct wl1271_stats {
#define NUM_TX_QUEUES 4
#define NUM_RX_PKT_DESC 8
#define AP_MAX_STATIONS 5
/* Broadcast and Global links + links to stations */
#define AP_MAX_LINKS (AP_MAX_STATIONS + 2)
/* FW status registers */
struct wl1271_fw_status {
__le32 intr;
@ -205,7 +210,18 @@ struct wl1271_fw_status {
__le32 rx_pkt_descs[NUM_RX_PKT_DESC];
__le32 tx_released_blks[NUM_TX_QUEUES];
__le32 fw_localtime;
__le32 padding[2];
/* Next fields valid only in AP FW */
/*
* A bitmap (where each bit represents a single HLID)
* to indicate if the station is in PS mode.
*/
__le32 link_ps_bitmap;
/* Number of freed MBs per HLID */
u8 tx_lnk_free_blks[AP_MAX_LINKS];
u8 padding_1[1];
} __packed;
struct wl1271_rx_mem_pool_addr {