diff options
author | Arik Nemtsov <arik@wizery.com> | 2010-10-16 12:53:48 -0400 |
---|---|---|
committer | Luciano Coelho <coelho@ti.com> | 2011-01-24 15:11:48 -0500 |
commit | beb6c880720073c233633c45792a4bb5d5fedbd5 (patch) | |
tree | 303f38897f1b94c59b1fa7c5098a8e374ca1003f | |
parent | ae113b57826b40f1962a6e2417efd757b638e6a9 (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.h | 7 | ||||
-rw-r--r-- | drivers/net/wireless/wl12xx/rx.h | 10 | ||||
-rw-r--r-- | drivers/net/wireless/wl12xx/tx.h | 9 | ||||
-rw-r--r-- | drivers/net/wireless/wl12xx/wl12xx.h | 18 |
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 | ||
122 | int wl1271_event_unmask(struct wl1271 *wl); | 127 | int 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 */ |
199 | struct wl1271_fw_status { | 204 | struct 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 | ||
211 | struct wl1271_rx_mem_pool_addr { | 227 | struct wl1271_rx_mem_pool_addr { |