aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/wl12xx/wl12xx.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/wl12xx/wl12xx.h')
-rw-r--r--drivers/net/wireless/wl12xx/wl12xx.h46
1 files changed, 32 insertions, 14 deletions
diff --git a/drivers/net/wireless/wl12xx/wl12xx.h b/drivers/net/wireless/wl12xx/wl12xx.h
index b2b09cd02022..90352415e2aa 100644
--- a/drivers/net/wireless/wl12xx/wl12xx.h
+++ b/drivers/net/wireless/wl12xx/wl12xx.h
@@ -35,8 +35,14 @@
35#include "conf.h" 35#include "conf.h"
36#include "ini.h" 36#include "ini.h"
37 37
38#define WL127X_FW_NAME "ti-connectivity/wl127x-fw-3.bin" 38#define WL127X_FW_NAME_MULTI "ti-connectivity/wl127x-fw-4-mr.bin"
39#define WL128X_FW_NAME "ti-connectivity/wl128x-fw-3.bin" 39#define WL127X_FW_NAME_SINGLE "ti-connectivity/wl127x-fw-4-sr.bin"
40
41#define WL128X_FW_NAME_MULTI "ti-connectivity/wl128x-fw-4-mr.bin"
42#define WL128X_FW_NAME_SINGLE "ti-connectivity/wl128x-fw-4-sr.bin"
43
44#define WL127X_PLT_FW_NAME "ti-connectivity/wl127x-fw-4-plt.bin"
45#define WL128X_PLT_FW_NAME "ti-connectivity/wl128x-fw-4-plt.bin"
40 46
41/* 47/*
42 * wl127x and wl128x are using the same NVS file name. However, the 48 * wl127x and wl128x are using the same NVS file name. However, the
@@ -90,7 +96,13 @@
90enum wl1271_state { 96enum wl1271_state {
91 WL1271_STATE_OFF, 97 WL1271_STATE_OFF,
92 WL1271_STATE_ON, 98 WL1271_STATE_ON,
93 WL1271_STATE_PLT, 99};
100
101enum wl12xx_fw_type {
102 WL12XX_FW_TYPE_NONE,
103 WL12XX_FW_TYPE_NORMAL,
104 WL12XX_FW_TYPE_MULTI,
105 WL12XX_FW_TYPE_PLT,
94}; 106};
95 107
96enum wl1271_partition_type { 108enum wl1271_partition_type {
@@ -247,6 +259,7 @@ enum wl12xx_flags {
247 WL1271_FLAG_PENDING_WORK, 259 WL1271_FLAG_PENDING_WORK,
248 WL1271_FLAG_SOFT_GEMINI, 260 WL1271_FLAG_SOFT_GEMINI,
249 WL1271_FLAG_RECOVERY_IN_PROGRESS, 261 WL1271_FLAG_RECOVERY_IN_PROGRESS,
262 WL1271_FLAG_VIF_CHANGE_IN_PROGRESS,
250}; 263};
251 264
252enum wl12xx_vif_flags { 265enum wl12xx_vif_flags {
@@ -254,8 +267,7 @@ enum wl12xx_vif_flags {
254 WLVIF_FLAG_STA_ASSOCIATED, 267 WLVIF_FLAG_STA_ASSOCIATED,
255 WLVIF_FLAG_IBSS_JOINED, 268 WLVIF_FLAG_IBSS_JOINED,
256 WLVIF_FLAG_AP_STARTED, 269 WLVIF_FLAG_AP_STARTED,
257 WLVIF_FLAG_PSM, 270 WLVIF_FLAG_IN_PS,
258 WLVIF_FLAG_PSM_REQUESTED,
259 WLVIF_FLAG_STA_STATE_SENT, 271 WLVIF_FLAG_STA_STATE_SENT,
260 WLVIF_FLAG_RX_STREAMING_STARTED, 272 WLVIF_FLAG_RX_STREAMING_STARTED,
261 WLVIF_FLAG_PSPOLL_FAILURE, 273 WLVIF_FLAG_PSPOLL_FAILURE,
@@ -295,6 +307,9 @@ struct wl1271 {
295 spinlock_t wl_lock; 307 spinlock_t wl_lock;
296 308
297 enum wl1271_state state; 309 enum wl1271_state state;
310 enum wl12xx_fw_type fw_type;
311 bool plt;
312 u8 last_vif_count;
298 struct mutex mutex; 313 struct mutex mutex;
299 314
300 unsigned long flags; 315 unsigned long flags;
@@ -313,7 +328,12 @@ struct wl1271 {
313 328
314 s8 hw_pg_ver; 329 s8 hw_pg_ver;
315 330
316 u8 mac_addr[ETH_ALEN]; 331 /* address read from the fuse ROM */
332 u32 fuse_oui_addr;
333 u32 fuse_nic_addr;
334
335 /* we have up to 2 MAC addresses */
336 struct mac_address addresses[2];
317 int channel; 337 int channel;
318 u8 system_hlid; 338 u8 system_hlid;
319 339
@@ -425,8 +445,6 @@ struct wl1271 {
425 struct wl12xx_fw_status *fw_status; 445 struct wl12xx_fw_status *fw_status;
426 struct wl1271_tx_hw_res_if *tx_res_if; 446 struct wl1271_tx_hw_res_if *tx_res_if;
427 447
428 struct ieee80211_vif *vif;
429
430 /* Current chipset configuration */ 448 /* Current chipset configuration */
431 struct conf_drv_settings conf; 449 struct conf_drv_settings conf;
432 450
@@ -503,6 +521,8 @@ struct wl12xx_vif {
503 u8 basic_rate_idx; 521 u8 basic_rate_idx;
504 u8 ap_rate_idx; 522 u8 ap_rate_idx;
505 u8 p2p_rate_idx; 523 u8 p2p_rate_idx;
524
525 bool qos;
506 } sta; 526 } sta;
507 struct { 527 struct {
508 u8 global_hlid; 528 u8 global_hlid;
@@ -560,12 +580,6 @@ struct wl12xx_vif {
560 /* Session counter for the chipset */ 580 /* Session counter for the chipset */
561 int session_counter; 581 int session_counter;
562 582
563 struct completion *ps_compl;
564 struct delayed_work pspoll_work;
565
566 /* counter for ps-poll delivery failures */
567 int ps_poll_failures;
568
569 /* retry counter for PSM entries */ 583 /* retry counter for PSM entries */
570 u8 psm_entry_retry; 584 u8 psm_entry_retry;
571 585
@@ -575,6 +589,10 @@ struct wl12xx_vif {
575 int rssi_thold; 589 int rssi_thold;
576 int last_rssi_event; 590 int last_rssi_event;
577 591
592 /* save the current encryption type for auto-arp config */
593 u8 encryption_type;
594 __be32 ip_addr;
595
578 /* RX BA constraint value */ 596 /* RX BA constraint value */
579 bool ba_support; 597 bool ba_support;
580 bool ba_allowed; 598 bool ba_allowed;