aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArik Nemtsov <arik@wizery.com>2010-10-16 12:53:48 -0400
committerLuciano Coelho <coelho@ti.com>2011-01-24 15:11:48 -0500
commitbeb6c880720073c233633c45792a4bb5d5fedbd5 (patch)
tree303f38897f1b94c59b1fa7c5098a8e374ca1003f
parentae113b57826b40f1962a6e2417efd757b638e6a9 (diff)
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>
-rw-r--r--drivers/net/wireless/wl12xx/event.h7
-rw-r--r--drivers/net/wireless/wl12xx/rx.h10
-rw-r--r--drivers/net/wireless/wl12xx/tx.h9
-rw-r--r--drivers/net/wireless/wl12xx/wl12xx.h18
4 files changed, 37 insertions, 7 deletions
diff --git a/drivers/net/wireless/wl12xx/event.h b/drivers/net/wireless/wl12xx/event.h
index fd955f31cec4..1d5ef670d480 100644
--- a/drivers/net/wireless/wl12xx/event.h
+++ b/drivers/net/wireless/wl12xx/event.h
@@ -116,7 +116,12 @@ struct event_mailbox {
116 u8 scheduled_scan_status; 116 u8 scheduled_scan_status;
117 u8 ps_status; 117 u8 ps_status;
118 118
119 u8 reserved_5[29]; 119 /* AP FW only */
120 u8 hlid_removed;
121 __le16 sta_aging_status;
122 __le16 sta_tx_retry_exceeded;
123
124 u8 reserved_5[24];
120} __packed; 125} __packed;
121 126
122int wl1271_event_unmask(struct wl1271 *wl); 127int wl1271_event_unmask(struct wl1271 *wl);
diff --git a/drivers/net/wireless/wl12xx/rx.h b/drivers/net/wireless/wl12xx/rx.h
index f695553f31e0..8d048b36bbba 100644
--- a/drivers/net/wireless/wl12xx/rx.h
+++ b/drivers/net/wireless/wl12xx/rx.h
@@ -86,8 +86,9 @@
86/* 86/*
87 * RX Descriptor status 87 * RX Descriptor status
88 * 88 *
89 * Bits 0-2 - status 89 * Bits 0-2 - error code
90 * Bits 3-7 - reserved 90 * Bits 3-5 - process_id tag (AP mode FW)
91 * Bits 6-7 - reserved
91 */ 92 */
92#define WL1271_RX_DESC_STATUS_MASK 0x07 93#define WL1271_RX_DESC_STATUS_MASK 0x07
93 94
@@ -110,7 +111,10 @@ struct wl1271_rx_descriptor {
110 u8 snr; 111 u8 snr;
111 __le32 timestamp; 112 __le32 timestamp;
112 u8 packet_class; 113 u8 packet_class;
113 u8 process_id; 114 union {
115 u8 process_id; /* STA FW */
116 u8 hlid; /* AP FW */
117 } __packed;
114 u8 pad_len; 118 u8 pad_len;
115 u8 reserved; 119 u8 reserved;
116} __packed; 120} __packed;
diff --git a/drivers/net/wireless/wl12xx/tx.h b/drivers/net/wireless/wl12xx/tx.h
index 5ccd22eaf074..05722a560d91 100644
--- a/drivers/net/wireless/wl12xx/tx.h
+++ b/drivers/net/wireless/wl12xx/tx.h
@@ -29,6 +29,7 @@
29#define TX_HW_BLOCK_SIZE 252 29#define TX_HW_BLOCK_SIZE 252
30 30
31#define TX_HW_MGMT_PKT_LIFETIME_TU 2000 31#define TX_HW_MGMT_PKT_LIFETIME_TU 2000
32#define TX_HW_AP_MODE_PKT_LIFETIME_TU 8000
32/* The chipset reference driver states, that the "aid" value 1 33/* The chipset reference driver states, that the "aid" value 1
33 * is for infra-BSS, but is still always used */ 34 * is for infra-BSS, but is still always used */
34#define TX_HW_DEFAULT_AID 1 35#define TX_HW_DEFAULT_AID 1
@@ -77,8 +78,12 @@ struct wl1271_tx_hw_descr {
77 u8 id; 78 u8 id;
78 /* The packet TID value (as User-Priority) */ 79 /* The packet TID value (as User-Priority) */
79 u8 tid; 80 u8 tid;
80 /* Identifier of the remote STA in IBSS, 1 in infra-BSS */ 81 union {
81 u8 aid; 82 /* STA - Identifier of the remote STA in IBSS, 1 in infra-BSS */
83 u8 aid;
84 /* AP - host link ID (HLID) */
85 u8 hlid;
86 } __packed;
82 u8 reserved; 87 u8 reserved;
83} __packed; 88} __packed;
84 89
diff --git a/drivers/net/wireless/wl12xx/wl12xx.h b/drivers/net/wireless/wl12xx/wl12xx.h
index 4bbdb89f1bcb..2f855443555c 100644
--- a/drivers/net/wireless/wl12xx/wl12xx.h
+++ b/drivers/net/wireless/wl12xx/wl12xx.h
@@ -195,6 +195,11 @@ struct wl1271_stats {
195#define NUM_TX_QUEUES 4 195#define NUM_TX_QUEUES 4
196#define NUM_RX_PKT_DESC 8 196#define NUM_RX_PKT_DESC 8
197 197
198#define AP_MAX_STATIONS 5
199
200/* Broadcast and Global links + links to stations */
201#define AP_MAX_LINKS (AP_MAX_STATIONS + 2)
202
198/* FW status registers */ 203/* FW status registers */
199struct wl1271_fw_status { 204struct wl1271_fw_status {
200 __le32 intr; 205 __le32 intr;
@@ -205,7 +210,18 @@ struct wl1271_fw_status {
205 __le32 rx_pkt_descs[NUM_RX_PKT_DESC]; 210 __le32 rx_pkt_descs[NUM_RX_PKT_DESC];
206 __le32 tx_released_blks[NUM_TX_QUEUES]; 211 __le32 tx_released_blks[NUM_TX_QUEUES];
207 __le32 fw_localtime; 212 __le32 fw_localtime;
208 __le32 padding[2]; 213
214 /* Next fields valid only in AP FW */
215
216 /*
217 * A bitmap (where each bit represents a single HLID)
218 * to indicate if the station is in PS mode.
219 */
220 __le32 link_ps_bitmap;
221
222 /* Number of freed MBs per HLID */
223 u8 tx_lnk_free_blks[AP_MAX_LINKS];
224 u8 padding_1[1];
209} __packed; 225} __packed;
210 226
211struct wl1271_rx_mem_pool_addr { 227struct wl1271_rx_mem_pool_addr {