diff options
Diffstat (limited to 'drivers/net/wireless/wl12xx/wl12xx.h')
-rw-r--r-- | drivers/net/wireless/wl12xx/wl12xx.h | 66 |
1 files changed, 45 insertions, 21 deletions
diff --git a/drivers/net/wireless/wl12xx/wl12xx.h b/drivers/net/wireless/wl12xx/wl12xx.h index d1de13fe7d9a..1d6c94304b1a 100644 --- a/drivers/net/wireless/wl12xx/wl12xx.h +++ b/drivers/net/wireless/wl12xx/wl12xx.h | |||
@@ -130,7 +130,7 @@ extern u32 wl12xx_debug_level; | |||
130 | 130 | ||
131 | 131 | ||
132 | 132 | ||
133 | #define WL1271_FW_NAME "wl1271-fw.bin" | 133 | #define WL1271_FW_NAME "wl1271-fw-2.bin" |
134 | #define WL1271_AP_FW_NAME "wl1271-fw-ap.bin" | 134 | #define WL1271_AP_FW_NAME "wl1271-fw-ap.bin" |
135 | 135 | ||
136 | #define WL1271_NVS_NAME "wl1271-nvs.bin" | 136 | #define WL1271_NVS_NAME "wl1271-nvs.bin" |
@@ -214,8 +214,8 @@ struct wl1271_stats { | |||
214 | /* Broadcast and Global links + links to stations */ | 214 | /* Broadcast and Global links + links to stations */ |
215 | #define AP_MAX_LINKS (AP_MAX_STATIONS + 2) | 215 | #define AP_MAX_LINKS (AP_MAX_STATIONS + 2) |
216 | 216 | ||
217 | /* FW status registers */ | 217 | /* FW status registers common for AP/STA */ |
218 | struct wl1271_fw_status { | 218 | struct wl1271_fw_common_status { |
219 | __le32 intr; | 219 | __le32 intr; |
220 | u8 fw_rx_counter; | 220 | u8 fw_rx_counter; |
221 | u8 drv_rx_counter; | 221 | u8 drv_rx_counter; |
@@ -224,6 +224,11 @@ struct wl1271_fw_status { | |||
224 | __le32 rx_pkt_descs[NUM_RX_PKT_DESC]; | 224 | __le32 rx_pkt_descs[NUM_RX_PKT_DESC]; |
225 | __le32 tx_released_blks[NUM_TX_QUEUES]; | 225 | __le32 tx_released_blks[NUM_TX_QUEUES]; |
226 | __le32 fw_localtime; | 226 | __le32 fw_localtime; |
227 | } __packed; | ||
228 | |||
229 | /* FW status registers for AP */ | ||
230 | struct wl1271_fw_ap_status { | ||
231 | struct wl1271_fw_common_status common; | ||
227 | 232 | ||
228 | /* Next fields valid only in AP FW */ | 233 | /* Next fields valid only in AP FW */ |
229 | 234 | ||
@@ -238,6 +243,24 @@ struct wl1271_fw_status { | |||
238 | u8 padding_1[1]; | 243 | u8 padding_1[1]; |
239 | } __packed; | 244 | } __packed; |
240 | 245 | ||
246 | /* FW status registers for STA */ | ||
247 | struct wl1271_fw_sta_status { | ||
248 | struct wl1271_fw_common_status common; | ||
249 | |||
250 | u8 tx_total; | ||
251 | u8 reserved1; | ||
252 | __le16 reserved2; | ||
253 | } __packed; | ||
254 | |||
255 | struct wl1271_fw_full_status { | ||
256 | union { | ||
257 | struct wl1271_fw_common_status common; | ||
258 | struct wl1271_fw_sta_status sta; | ||
259 | struct wl1271_fw_ap_status ap; | ||
260 | }; | ||
261 | } __packed; | ||
262 | |||
263 | |||
241 | struct wl1271_rx_mem_pool_addr { | 264 | struct wl1271_rx_mem_pool_addr { |
242 | u32 addr; | 265 | u32 addr; |
243 | u32 addr_extra; | 266 | u32 addr_extra; |
@@ -278,6 +301,24 @@ struct wl1271_ap_key { | |||
278 | u16 tx_seq_16; | 301 | u16 tx_seq_16; |
279 | }; | 302 | }; |
280 | 303 | ||
304 | enum wl12xx_flags { | ||
305 | WL1271_FLAG_STA_ASSOCIATED, | ||
306 | WL1271_FLAG_JOINED, | ||
307 | WL1271_FLAG_GPIO_POWER, | ||
308 | WL1271_FLAG_TX_QUEUE_STOPPED, | ||
309 | WL1271_FLAG_IN_ELP, | ||
310 | WL1271_FLAG_PSM, | ||
311 | WL1271_FLAG_PSM_REQUESTED, | ||
312 | WL1271_FLAG_IRQ_PENDING, | ||
313 | WL1271_FLAG_IRQ_RUNNING, | ||
314 | WL1271_FLAG_IDLE, | ||
315 | WL1271_FLAG_IDLE_REQUESTED, | ||
316 | WL1271_FLAG_PSPOLL_FAILURE, | ||
317 | WL1271_FLAG_STA_STATE_SENT, | ||
318 | WL1271_FLAG_FW_TX_BUSY, | ||
319 | WL1271_FLAG_AP_STARTED | ||
320 | }; | ||
321 | |||
281 | struct wl1271 { | 322 | struct wl1271 { |
282 | struct platform_device *plat_dev; | 323 | struct platform_device *plat_dev; |
283 | struct ieee80211_hw *hw; | 324 | struct ieee80211_hw *hw; |
@@ -296,22 +337,6 @@ struct wl1271 { | |||
296 | enum wl1271_state state; | 337 | enum wl1271_state state; |
297 | struct mutex mutex; | 338 | struct mutex mutex; |
298 | 339 | ||
299 | #define WL1271_FLAG_STA_RATES_CHANGED (0) | ||
300 | #define WL1271_FLAG_STA_ASSOCIATED (1) | ||
301 | #define WL1271_FLAG_JOINED (2) | ||
302 | #define WL1271_FLAG_GPIO_POWER (3) | ||
303 | #define WL1271_FLAG_TX_QUEUE_STOPPED (4) | ||
304 | #define WL1271_FLAG_IN_ELP (5) | ||
305 | #define WL1271_FLAG_PSM (6) | ||
306 | #define WL1271_FLAG_PSM_REQUESTED (7) | ||
307 | #define WL1271_FLAG_IRQ_PENDING (8) | ||
308 | #define WL1271_FLAG_IRQ_RUNNING (9) | ||
309 | #define WL1271_FLAG_IDLE (10) | ||
310 | #define WL1271_FLAG_IDLE_REQUESTED (11) | ||
311 | #define WL1271_FLAG_PSPOLL_FAILURE (12) | ||
312 | #define WL1271_FLAG_STA_STATE_SENT (13) | ||
313 | #define WL1271_FLAG_FW_TX_BUSY (14) | ||
314 | #define WL1271_FLAG_AP_STARTED (15) | ||
315 | unsigned long flags; | 340 | unsigned long flags; |
316 | 341 | ||
317 | struct wl1271_partition_set part; | 342 | struct wl1271_partition_set part; |
@@ -405,7 +430,6 @@ struct wl1271 { | |||
405 | * bits 16-23 - 802.11n MCS index mask | 430 | * bits 16-23 - 802.11n MCS index mask |
406 | * support only 1 stream, thus only 8 bits for the MCS rates (0-7). | 431 | * support only 1 stream, thus only 8 bits for the MCS rates (0-7). |
407 | */ | 432 | */ |
408 | u32 sta_rate_set; | ||
409 | u32 basic_rate_set; | 433 | u32 basic_rate_set; |
410 | u32 basic_rate; | 434 | u32 basic_rate; |
411 | u32 rate_set; | 435 | u32 rate_set; |
@@ -445,7 +469,7 @@ struct wl1271 { | |||
445 | u32 buffer_cmd; | 469 | u32 buffer_cmd; |
446 | u32 buffer_busyword[WL1271_BUSY_WORD_CNT]; | 470 | u32 buffer_busyword[WL1271_BUSY_WORD_CNT]; |
447 | 471 | ||
448 | struct wl1271_fw_status *fw_status; | 472 | struct wl1271_fw_full_status *fw_status; |
449 | struct wl1271_tx_hw_res_if *tx_res_if; | 473 | struct wl1271_tx_hw_res_if *tx_res_if; |
450 | 474 | ||
451 | struct ieee80211_vif *vif; | 475 | struct ieee80211_vif *vif; |