aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwmc3200wifi/iwm.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwmc3200wifi/iwm.h')
-rw-r--r--drivers/net/wireless/iwmc3200wifi/iwm.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwmc3200wifi/iwm.h b/drivers/net/wireless/iwmc3200wifi/iwm.h
index 1b02a4e2a1ac..79ffa3b98d73 100644
--- a/drivers/net/wireless/iwmc3200wifi/iwm.h
+++ b/drivers/net/wireless/iwmc3200wifi/iwm.h
@@ -65,6 +65,8 @@ struct iwm_conf {
65 u32 sdio_ior_timeout; 65 u32 sdio_ior_timeout;
66 unsigned long calib_map; 66 unsigned long calib_map;
67 unsigned long expected_calib_map; 67 unsigned long expected_calib_map;
68 u8 ct_kill_entry;
69 u8 ct_kill_exit;
68 bool reset_on_fatal_err; 70 bool reset_on_fatal_err;
69 bool auto_connect; 71 bool auto_connect;
70 bool wimax_not_present; 72 bool wimax_not_present;
@@ -79,7 +81,6 @@ struct iwm_conf {
79 u32 assoc_timeout; 81 u32 assoc_timeout;
80 u32 roam_timeout; 82 u32 roam_timeout;
81 u32 wireless_mode; 83 u32 wireless_mode;
82 u32 coexist_mode;
83 84
84 u8 ibss_band; 85 u8 ibss_band;
85 u8 ibss_channel; 86 u8 ibss_channel;
@@ -129,11 +130,18 @@ struct iwm_notif {
129 unsigned long buf_size; 130 unsigned long buf_size;
130}; 131};
131 132
133struct iwm_tid_info {
134 __le16 last_seq_num;
135 bool stopped;
136 struct mutex mutex;
137};
138
132struct iwm_sta_info { 139struct iwm_sta_info {
133 u8 addr[ETH_ALEN]; 140 u8 addr[ETH_ALEN];
134 bool valid; 141 bool valid;
135 bool qos; 142 bool qos;
136 u8 color; 143 u8 color;
144 struct iwm_tid_info tid_info[IWM_UMAC_TID_NR];
137}; 145};
138 146
139struct iwm_tx_info { 147struct iwm_tx_info {
@@ -183,6 +191,8 @@ struct iwm_key {
183struct iwm_tx_queue { 191struct iwm_tx_queue {
184 int id; 192 int id;
185 struct sk_buff_head queue; 193 struct sk_buff_head queue;
194 struct sk_buff_head stopped_queue;
195 spinlock_t lock;
186 struct workqueue_struct *wq; 196 struct workqueue_struct *wq;
187 struct work_struct worker; 197 struct work_struct worker;
188 u8 concat_buf[IWM_HAL_CONCATENATE_BUF_SIZE]; 198 u8 concat_buf[IWM_HAL_CONCATENATE_BUF_SIZE];
@@ -276,12 +286,14 @@ struct iwm_priv {
276 struct iw_statistics wstats; 286 struct iw_statistics wstats;
277 struct delayed_work stats_request; 287 struct delayed_work stats_request;
278 struct delayed_work disconnect; 288 struct delayed_work disconnect;
289 struct delayed_work ct_kill_delay;
279 290
280 struct iwm_debugfs dbg; 291 struct iwm_debugfs dbg;
281 292
282 u8 *eeprom; 293 u8 *eeprom;
283 struct timer_list watchdog; 294 struct timer_list watchdog;
284 struct work_struct reset_worker; 295 struct work_struct reset_worker;
296 struct work_struct auth_retry_worker;
285 struct mutex mutex; 297 struct mutex mutex;
286 298
287 u8 *req_ie; 299 u8 *req_ie;
@@ -290,6 +302,8 @@ struct iwm_priv {
290 int resp_ie_len; 302 int resp_ie_len;
291 303
292 struct iwm_fw_error_hdr *last_fw_err; 304 struct iwm_fw_error_hdr *last_fw_err;
305 char umac_version[8];
306 char lmac_version[8];
293 307
294 char private[0] __attribute__((__aligned__(NETDEV_ALIGN))); 308 char private[0] __attribute__((__aligned__(NETDEV_ALIGN)));
295}; 309};
@@ -335,6 +349,7 @@ int iwm_up(struct iwm_priv *iwm);
335int iwm_down(struct iwm_priv *iwm); 349int iwm_down(struct iwm_priv *iwm);
336 350
337/* TX API */ 351/* TX API */
352int iwm_tid_to_queue(u16 tid);
338void iwm_tx_credit_inc(struct iwm_priv *iwm, int id, int total_freed_pages); 353void iwm_tx_credit_inc(struct iwm_priv *iwm, int id, int total_freed_pages);
339void iwm_tx_worker(struct work_struct *work); 354void iwm_tx_worker(struct work_struct *work);
340int iwm_xmit_frame(struct sk_buff *skb, struct net_device *netdev); 355int iwm_xmit_frame(struct sk_buff *skb, struct net_device *netdev);