aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-dev.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-dev.h')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-dev.h284
1 files changed, 97 insertions, 187 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index 68b953f2bdc7..e84534c4d956 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -1,6 +1,6 @@
1/****************************************************************************** 1/******************************************************************************
2 * 2 *
3 * Copyright(c) 2003 - 2010 Intel Corporation. All rights reserved. 3 * Copyright(c) 2003 - 2011 Intel Corporation. All rights reserved.
4 * 4 *
5 * This program is free software; you can redistribute it and/or modify it 5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of version 2 of the GNU General Public License as 6 * under the terms of version 2 of the GNU General Public License as
@@ -26,7 +26,6 @@
26/* 26/*
27 * Please use this file (iwl-dev.h) for driver implementation definitions. 27 * Please use this file (iwl-dev.h) for driver implementation definitions.
28 * Please use iwl-commands.h for uCode API definitions. 28 * Please use iwl-commands.h for uCode API definitions.
29 * Please use iwl-4965-hw.h for hardware-related definitions.
30 */ 29 */
31 30
32#ifndef __iwl_dev_h__ 31#ifndef __iwl_dev_h__
@@ -179,53 +178,12 @@ struct iwl_tx_queue {
179 178
180#define IWL_NUM_SCAN_RATES (2) 179#define IWL_NUM_SCAN_RATES (2)
181 180
182struct iwl4965_channel_tgd_info {
183 u8 type;
184 s8 max_power;
185};
186
187struct iwl4965_channel_tgh_info {
188 s64 last_radar_time;
189};
190
191#define IWL4965_MAX_RATE (33)
192
193struct iwl3945_clip_group {
194 /* maximum power level to prevent clipping for each rate, derived by
195 * us from this band's saturation power in EEPROM */
196 const s8 clip_powers[IWL_MAX_RATES];
197};
198
199/* current Tx power values to use, one for each rate for each channel.
200 * requested power is limited by:
201 * -- regulatory EEPROM limits for this channel
202 * -- hardware capabilities (clip-powers)
203 * -- spectrum management
204 * -- user preference (e.g. iwconfig)
205 * when requested power is set, base power index must also be set. */
206struct iwl3945_channel_power_info {
207 struct iwl3945_tx_power tpc; /* actual radio and DSP gain settings */
208 s8 power_table_index; /* actual (compenst'd) index into gain table */
209 s8 base_power_index; /* gain index for power at factory temp. */
210 s8 requested_power; /* power (dBm) requested for this chnl/rate */
211};
212
213/* current scan Tx power values to use, one for each scan rate for each
214 * channel. */
215struct iwl3945_scan_power_info {
216 struct iwl3945_tx_power tpc; /* actual radio and DSP gain settings */
217 s8 power_table_index; /* actual (compenst'd) index into gain table */
218 s8 requested_power; /* scan pwr (dBm) requested for chnl/rate */
219};
220
221/* 181/*
222 * One for each channel, holds all channel setup data 182 * One for each channel, holds all channel setup data
223 * Some of the fields (e.g. eeprom and flags/max_power_avg) are redundant 183 * Some of the fields (e.g. eeprom and flags/max_power_avg) are redundant
224 * with one another! 184 * with one another!
225 */ 185 */
226struct iwl_channel_info { 186struct iwl_channel_info {
227 struct iwl4965_channel_tgd_info tgd;
228 struct iwl4965_channel_tgh_info tgh;
229 struct iwl_eeprom_channel eeprom; /* EEPROM regulatory limit */ 187 struct iwl_eeprom_channel eeprom; /* EEPROM regulatory limit */
230 struct iwl_eeprom_channel ht40_eeprom; /* EEPROM regulatory limit for 188 struct iwl_eeprom_channel ht40_eeprom; /* EEPROM regulatory limit for
231 * HT40 channel */ 189 * HT40 channel */
@@ -245,14 +203,6 @@ struct iwl_channel_info {
245 s8 ht40_max_power_avg; /* (dBm) regul. eeprom, normal Tx, any rate */ 203 s8 ht40_max_power_avg; /* (dBm) regul. eeprom, normal Tx, any rate */
246 u8 ht40_flags; /* flags copied from EEPROM */ 204 u8 ht40_flags; /* flags copied from EEPROM */
247 u8 ht40_extension_channel; /* HT_IE_EXT_CHANNEL_* */ 205 u8 ht40_extension_channel; /* HT_IE_EXT_CHANNEL_* */
248
249 /* Radio/DSP gain settings for each "normal" data Tx rate.
250 * These include, in addition to RF and DSP gain, a few fields for
251 * remembering/modifying gain settings (indexes). */
252 struct iwl3945_channel_power_info power_info[IWL4965_MAX_RATE];
253
254 /* Radio/DSP gain settings for each scan rate, for directed scans. */
255 struct iwl3945_scan_power_info scan_pwr_info[IWL_NUM_SCAN_RATES];
256}; 206};
257 207
258#define IWL_TX_FIFO_BK 0 /* shared */ 208#define IWL_TX_FIFO_BK 0 /* shared */
@@ -309,6 +259,7 @@ enum {
309 CMD_SIZE_HUGE = (1 << 0), 259 CMD_SIZE_HUGE = (1 << 0),
310 CMD_ASYNC = (1 << 1), 260 CMD_ASYNC = (1 << 1),
311 CMD_WANT_SKB = (1 << 2), 261 CMD_WANT_SKB = (1 << 2),
262 CMD_MAPPED = (1 << 3),
312}; 263};
313 264
314#define DEF_CMD_PAYLOAD_SIZE 320 265#define DEF_CMD_PAYLOAD_SIZE 320
@@ -416,6 +367,7 @@ struct iwl_ht_agg {
416#define IWL_EMPTYING_HW_QUEUE_ADDBA 2 367#define IWL_EMPTYING_HW_QUEUE_ADDBA 2
417#define IWL_EMPTYING_HW_QUEUE_DELBA 3 368#define IWL_EMPTYING_HW_QUEUE_DELBA 3
418 u8 state; 369 u8 state;
370 u8 tx_fifo;
419}; 371};
420 372
421 373
@@ -499,9 +451,6 @@ struct iwl_station_priv_common {
499 * When mac80211 creates a station it reserves some space (hw->sta_data_size) 451 * When mac80211 creates a station it reserves some space (hw->sta_data_size)
500 * in the structure for use by driver. This structure is places in that 452 * in the structure for use by driver. This structure is places in that
501 * space. 453 * space.
502 *
503 * The common struct MUST be first because it is shared between
504 * 3945 and agn!
505 */ 454 */
506struct iwl_station_priv { 455struct iwl_station_priv {
507 struct iwl_station_priv_common common; 456 struct iwl_station_priv_common common;
@@ -586,6 +535,21 @@ enum iwl_ucode_tlv_type {
586 IWL_UCODE_TLV_INIT_ERRLOG_PTR = 13, 535 IWL_UCODE_TLV_INIT_ERRLOG_PTR = 13,
587 IWL_UCODE_TLV_ENHANCE_SENS_TBL = 14, 536 IWL_UCODE_TLV_ENHANCE_SENS_TBL = 14,
588 IWL_UCODE_TLV_PHY_CALIBRATION_SIZE = 15, 537 IWL_UCODE_TLV_PHY_CALIBRATION_SIZE = 15,
538 /* 16 and 17 reserved for future use */
539 IWL_UCODE_TLV_FLAGS = 18,
540};
541
542/**
543 * enum iwl_ucode_tlv_flag - ucode API flags
544 * @IWL_UCODE_TLV_FLAGS_PAN: This is PAN capable microcode; this previously
545 * was a separate TLV but moved here to save space.
546 * @IWL_UCODE_TLV_FLAGS_RESERVED_1: reserved
547 * @IWL_UCODE_TLV_FLAGS_MFP: This uCode image supports MFP (802.11w).
548 */
549enum iwl_ucode_tlv_flag {
550 IWL_UCODE_TLV_FLAGS_PAN = BIT(0),
551 IWL_UCODE_TLV_FLAGS_RESERVED_1 = BIT(1),
552 IWL_UCODE_TLV_FLAGS_MFP = BIT(2),
589}; 553};
590 554
591struct iwl_ucode_tlv { 555struct iwl_ucode_tlv {
@@ -619,14 +583,6 @@ struct iwl_tlv_ucode_header {
619 u8 data[0]; 583 u8 data[0];
620}; 584};
621 585
622struct iwl4965_ibss_seq {
623 u8 mac[ETH_ALEN];
624 u16 seq_num;
625 u16 frag_num;
626 unsigned long packet_time;
627 struct list_head list;
628};
629
630struct iwl_sensitivity_ranges { 586struct iwl_sensitivity_ranges {
631 u16 min_nrg_cck; 587 u16 min_nrg_cck;
632 u16 max_nrg_cck; 588 u16 max_nrg_cck;
@@ -700,7 +656,6 @@ struct iwl_hw_params {
700 u8 max_beacon_itrvl; /* in 1024 ms */ 656 u8 max_beacon_itrvl; /* in 1024 ms */
701 u32 max_inst_size; 657 u32 max_inst_size;
702 u32 max_data_size; 658 u32 max_data_size;
703 u32 max_bsm_size;
704 u32 ct_kill_threshold; /* value in hw-dependent units */ 659 u32 ct_kill_threshold; /* value in hw-dependent units */
705 u32 ct_kill_exit_threshold; /* value in hw-dependent units */ 660 u32 ct_kill_exit_threshold; /* value in hw-dependent units */
706 /* for 1000, 6000 series and up */ 661 /* for 1000, 6000 series and up */
@@ -722,8 +677,6 @@ struct iwl_hw_params {
722 * Naming convention -- 677 * Naming convention --
723 * iwl_ <-- Is part of iwlwifi 678 * iwl_ <-- Is part of iwlwifi
724 * iwlXXXX_ <-- Hardware specific (implemented in iwl-XXXX.c for XXXX) 679 * iwlXXXX_ <-- Hardware specific (implemented in iwl-XXXX.c for XXXX)
725 * iwl4965_bg_ <-- Called from work queue context
726 * iwl4965_mac_ <-- mac80211 callback
727 * 680 *
728 ****************************************************************************/ 681 ****************************************************************************/
729extern void iwl_update_chain_flags(struct iwl_priv *priv); 682extern void iwl_update_chain_flags(struct iwl_priv *priv);
@@ -772,7 +725,6 @@ struct iwl_dma_ptr {
772 725
773/* Sensitivity and chain noise calibration */ 726/* Sensitivity and chain noise calibration */
774#define INITIALIZATION_VALUE 0xFFFF 727#define INITIALIZATION_VALUE 0xFFFF
775#define IWL4965_CAL_NUM_BEACONS 20
776#define IWL_CAL_NUM_BEACONS 16 728#define IWL_CAL_NUM_BEACONS 16
777#define MAXIMUM_ALLOWED_PATHLOSS 15 729#define MAXIMUM_ALLOWED_PATHLOSS 15
778 730
@@ -806,24 +758,19 @@ struct iwl_dma_ptr {
806#define NRG_NUM_PREV_STAT_L 20 758#define NRG_NUM_PREV_STAT_L 20
807#define NUM_RX_CHAINS 3 759#define NUM_RX_CHAINS 3
808 760
809enum iwl4965_false_alarm_state { 761enum iwlagn_false_alarm_state {
810 IWL_FA_TOO_MANY = 0, 762 IWL_FA_TOO_MANY = 0,
811 IWL_FA_TOO_FEW = 1, 763 IWL_FA_TOO_FEW = 1,
812 IWL_FA_GOOD_RANGE = 2, 764 IWL_FA_GOOD_RANGE = 2,
813}; 765};
814 766
815enum iwl4965_chain_noise_state { 767enum iwlagn_chain_noise_state {
816 IWL_CHAIN_NOISE_ALIVE = 0, /* must be 0 */ 768 IWL_CHAIN_NOISE_ALIVE = 0, /* must be 0 */
817 IWL_CHAIN_NOISE_ACCUMULATE, 769 IWL_CHAIN_NOISE_ACCUMULATE,
818 IWL_CHAIN_NOISE_CALIBRATED, 770 IWL_CHAIN_NOISE_CALIBRATED,
819 IWL_CHAIN_NOISE_DONE, 771 IWL_CHAIN_NOISE_DONE,
820}; 772};
821 773
822enum iwl4965_calib_enabled_state {
823 IWL_CALIB_DISABLED = 0, /* must be 0 */
824 IWL_CALIB_ENABLED = 1,
825};
826
827 774
828/* 775/*
829 * enum iwl_calib 776 * enum iwl_calib
@@ -1131,12 +1078,6 @@ struct iwl_force_reset {
1131 1078
1132/* extend beacon time format bit shifting */ 1079/* extend beacon time format bit shifting */
1133/* 1080/*
1134 * for _3945 devices
1135 * bits 31:24 - extended
1136 * bits 23:0 - interval
1137 */
1138#define IWL3945_EXT_BEACON_TIME_POS 24
1139/*
1140 * for _agn devices 1081 * for _agn devices
1141 * bits 31:22 - extended 1082 * bits 31:22 - extended
1142 * bits 21:0 - interval 1083 * bits 21:0 - interval
@@ -1228,6 +1169,8 @@ struct iwl_rxon_context {
1228 bool enabled, is_40mhz; 1169 bool enabled, is_40mhz;
1229 u8 extension_chan_offset; 1170 u8 extension_chan_offset;
1230 } ht; 1171 } ht;
1172
1173 bool last_tx_rejected;
1231}; 1174};
1232 1175
1233enum iwl_scan_type { 1176enum iwl_scan_type {
@@ -1249,7 +1192,6 @@ struct iwl_priv {
1249 int frames_count; 1192 int frames_count;
1250 1193
1251 enum ieee80211_band band; 1194 enum ieee80211_band band;
1252 int alloc_rxb_page;
1253 1195
1254 void (*rx_handlers[REPLY_MAX])(struct iwl_priv *priv, 1196 void (*rx_handlers[REPLY_MAX])(struct iwl_priv *priv,
1255 struct iwl_rx_mem_buffer *rxb); 1197 struct iwl_rx_mem_buffer *rxb);
@@ -1305,16 +1247,12 @@ struct iwl_priv {
1305 spinlock_t hcmd_lock; /* protect hcmd */ 1247 spinlock_t hcmd_lock; /* protect hcmd */
1306 spinlock_t reg_lock; /* protect hw register access */ 1248 spinlock_t reg_lock; /* protect hw register access */
1307 struct mutex mutex; 1249 struct mutex mutex;
1308 struct mutex sync_cmd_mutex; /* enable serialization of sync commands */
1309 1250
1310 /* basic pci-network driver stuff */ 1251 /* basic pci-network driver stuff */
1311 struct pci_dev *pci_dev; 1252 struct pci_dev *pci_dev;
1312 1253
1313 /* pci hardware address support */ 1254 /* pci hardware address support */
1314 void __iomem *hw_base; 1255 void __iomem *hw_base;
1315 u32 hw_rev;
1316 u32 hw_wa_rev;
1317 u8 rev_id;
1318 1256
1319 /* microcode/device supports multiple contexts */ 1257 /* microcode/device supports multiple contexts */
1320 u8 valid_contexts; 1258 u8 valid_contexts;
@@ -1334,10 +1272,8 @@ struct iwl_priv {
1334 iwl_ucode.ver */ 1272 iwl_ucode.ver */
1335 struct fw_desc ucode_code; /* runtime inst */ 1273 struct fw_desc ucode_code; /* runtime inst */
1336 struct fw_desc ucode_data; /* runtime data original */ 1274 struct fw_desc ucode_data; /* runtime data original */
1337 struct fw_desc ucode_data_backup; /* runtime data save/restore */
1338 struct fw_desc ucode_init; /* initialization inst */ 1275 struct fw_desc ucode_init; /* initialization inst */
1339 struct fw_desc ucode_init_data; /* initialization data */ 1276 struct fw_desc ucode_init_data; /* initialization data */
1340 struct fw_desc ucode_boot; /* bootstrap inst */
1341 enum ucode_type ucode_type; 1277 enum ucode_type ucode_type;
1342 u8 ucode_write_complete; /* the image write is complete */ 1278 u8 ucode_write_complete; /* the image write is complete */
1343 char firmware_name[25]; 1279 char firmware_name[25];
@@ -1346,10 +1282,10 @@ struct iwl_priv {
1346 1282
1347 struct iwl_switch_rxon switch_rxon; 1283 struct iwl_switch_rxon switch_rxon;
1348 1284
1349 /* 1st responses from initialize and runtime uCode images. 1285 struct {
1350 * _agn's initialize alive response contains some calibration data. */ 1286 u32 error_event_table;
1351 struct iwl_init_alive_resp card_alive_init; 1287 u32 log_event_table;
1352 struct iwl_alive_resp card_alive; 1288 } device_pointers;
1353 1289
1354 u16 active_rate; 1290 u16 active_rate;
1355 1291
@@ -1390,15 +1326,12 @@ struct iwl_priv {
1390 struct iwl_power_mgr power_data; 1326 struct iwl_power_mgr power_data;
1391 struct iwl_tt_mgmt thermal_throttle; 1327 struct iwl_tt_mgmt thermal_throttle;
1392 1328
1393 /* context information */
1394 u8 bssid[ETH_ALEN]; /* used only on 3945 but filled by core */
1395
1396 /* station table variables */ 1329 /* station table variables */
1397 1330
1398 /* Note: if lock and sta_lock are needed, lock must be acquired first */ 1331 /* Note: if lock and sta_lock are needed, lock must be acquired first */
1399 spinlock_t sta_lock; 1332 spinlock_t sta_lock;
1400 int num_stations; 1333 int num_stations;
1401 struct iwl_station_entry stations[IWL_STATION_COUNT]; 1334 struct iwl_station_entry stations[IWLAGN_STATION_COUNT];
1402 unsigned long ucode_key_table; 1335 unsigned long ucode_key_table;
1403 1336
1404 /* queue refcounts */ 1337 /* queue refcounts */
@@ -1422,101 +1355,81 @@ struct iwl_priv {
1422 /* Last Rx'd beacon timestamp */ 1355 /* Last Rx'd beacon timestamp */
1423 u64 timestamp; 1356 u64 timestamp;
1424 1357
1425 union { 1358 struct {
1426#if defined(CONFIG_IWL3945) || defined(CONFIG_IWL3945_MODULE) 1359 __le32 flag;
1427 struct { 1360 struct statistics_general_common common;
1428 void *shared_virt; 1361 struct statistics_rx_non_phy rx_non_phy;
1429 dma_addr_t shared_phys; 1362 struct statistics_rx_phy rx_ofdm;
1430 1363 struct statistics_rx_ht_phy rx_ofdm_ht;
1431 struct delayed_work thermal_periodic; 1364 struct statistics_rx_phy rx_cck;
1432 struct delayed_work rfkill_poll; 1365 struct statistics_tx tx;
1433
1434 struct iwl3945_notif_statistics statistics;
1435#ifdef CONFIG_IWLWIFI_DEBUGFS 1366#ifdef CONFIG_IWLWIFI_DEBUGFS
1436 struct iwl3945_notif_statistics accum_statistics; 1367 struct statistics_bt_activity bt_activity;
1437 struct iwl3945_notif_statistics delta_statistics; 1368 __le32 num_bt_kills, accum_num_bt_kills;
1438 struct iwl3945_notif_statistics max_delta;
1439#endif 1369#endif
1440 1370 } statistics;
1441 u32 sta_supp_rates;
1442 int last_rx_rssi; /* From Rx packet statistics */
1443
1444 /* Rx'd packet timing information */
1445 u32 last_beacon_time;
1446 u64 last_tsf;
1447
1448 /*
1449 * each calibration channel group in the
1450 * EEPROM has a derived clip setting for
1451 * each rate.
1452 */
1453 const struct iwl3945_clip_group clip_groups[5];
1454
1455 } _3945;
1456#endif
1457#if defined(CONFIG_IWLAGN) || defined(CONFIG_IWLAGN_MODULE)
1458 struct {
1459 /* INT ICT Table */
1460 __le32 *ict_tbl;
1461 void *ict_tbl_vir;
1462 dma_addr_t ict_tbl_dma;
1463 dma_addr_t aligned_ict_tbl_dma;
1464 int ict_index;
1465 u32 inta;
1466 bool use_ict;
1467 /*
1468 * reporting the number of tids has AGG on. 0 means
1469 * no AGGREGATION
1470 */
1471 u8 agg_tids_count;
1472
1473 struct iwl_rx_phy_res last_phy_res;
1474 bool last_phy_res_valid;
1475
1476 struct completion firmware_loading_complete;
1477
1478 u32 init_evtlog_ptr, init_evtlog_size, init_errlog_ptr;
1479 u32 inst_evtlog_ptr, inst_evtlog_size, inst_errlog_ptr;
1480
1481 /*
1482 * chain noise reset and gain commands are the
1483 * two extra calibration commands follows the standard
1484 * phy calibration commands
1485 */
1486 u8 phy_calib_chain_noise_reset_cmd;
1487 u8 phy_calib_chain_noise_gain_cmd;
1488
1489 struct iwl_notif_statistics statistics;
1490 struct iwl_bt_notif_statistics statistics_bt;
1491 /* counts reply_tx error */
1492 struct reply_tx_error_statistics reply_tx_stats;
1493 struct reply_agg_tx_error_statistics reply_agg_tx_stats;
1494#ifdef CONFIG_IWLWIFI_DEBUGFS 1371#ifdef CONFIG_IWLWIFI_DEBUGFS
1495 struct iwl_notif_statistics accum_statistics; 1372 struct {
1496 struct iwl_notif_statistics delta_statistics; 1373 struct statistics_general_common common;
1497 struct iwl_notif_statistics max_delta; 1374 struct statistics_rx_non_phy rx_non_phy;
1498 struct iwl_bt_notif_statistics accum_statistics_bt; 1375 struct statistics_rx_phy rx_ofdm;
1499 struct iwl_bt_notif_statistics delta_statistics_bt; 1376 struct statistics_rx_ht_phy rx_ofdm_ht;
1500 struct iwl_bt_notif_statistics max_delta_bt; 1377 struct statistics_rx_phy rx_cck;
1378 struct statistics_tx tx;
1379 struct statistics_bt_activity bt_activity;
1380 } accum_stats, delta_stats, max_delta_stats;
1501#endif 1381#endif
1502 1382
1503 /* notification wait support */ 1383 struct {
1504 struct list_head notif_waits; 1384 /* INT ICT Table */
1505 spinlock_t notif_wait_lock; 1385 __le32 *ict_tbl;
1506 wait_queue_head_t notif_waitq; 1386 void *ict_tbl_vir;
1507 1387 dma_addr_t ict_tbl_dma;
1508 /* remain-on-channel offload support */ 1388 dma_addr_t aligned_ict_tbl_dma;
1509 struct ieee80211_channel *hw_roc_channel; 1389 int ict_index;
1510 struct delayed_work hw_roc_work; 1390 u32 inta;
1511 enum nl80211_channel_type hw_roc_chantype; 1391 bool use_ict;
1512 int hw_roc_duration; 1392 /*
1513 1393 * reporting the number of tids has AGG on. 0 means
1514 struct sk_buff *offchan_tx_skb; 1394 * no AGGREGATION
1515 int offchan_tx_timeout; 1395 */
1516 struct ieee80211_channel *offchan_tx_chan; 1396 u8 agg_tids_count;
1517 } _agn; 1397
1518#endif 1398 struct iwl_rx_phy_res last_phy_res;
1519 }; 1399 bool last_phy_res_valid;
1400
1401 struct completion firmware_loading_complete;
1402
1403 u32 init_evtlog_ptr, init_evtlog_size, init_errlog_ptr;
1404 u32 inst_evtlog_ptr, inst_evtlog_size, inst_errlog_ptr;
1405
1406 /*
1407 * chain noise reset and gain commands are the
1408 * two extra calibration commands follows the standard
1409 * phy calibration commands
1410 */
1411 u8 phy_calib_chain_noise_reset_cmd;
1412 u8 phy_calib_chain_noise_gain_cmd;
1413
1414 /* counts reply_tx error */
1415 struct reply_tx_error_statistics reply_tx_stats;
1416 struct reply_agg_tx_error_statistics reply_agg_tx_stats;
1417 /* notification wait support */
1418 struct list_head notif_waits;
1419 spinlock_t notif_wait_lock;
1420 wait_queue_head_t notif_waitq;
1421
1422 /* remain-on-channel offload support */
1423 struct ieee80211_channel *hw_roc_channel;
1424 struct delayed_work hw_roc_work;
1425 enum nl80211_channel_type hw_roc_chantype;
1426 int hw_roc_duration;
1427 bool hw_roc_setup;
1428
1429 struct sk_buff *offchan_tx_skb;
1430 int offchan_tx_timeout;
1431 struct ieee80211_channel *offchan_tx_chan;
1432 } _agn;
1520 1433
1521 /* bt coex */ 1434 /* bt coex */
1522 u8 bt_enable_flag; 1435 u8 bt_enable_flag;
@@ -1589,7 +1502,6 @@ struct iwl_priv {
1589 struct work_struct txpower_work; 1502 struct work_struct txpower_work;
1590 u32 disable_sens_cal; 1503 u32 disable_sens_cal;
1591 u32 disable_chain_noise_cal; 1504 u32 disable_chain_noise_cal;
1592 u32 disable_tx_power_cal;
1593 struct work_struct run_time_calib_work; 1505 struct work_struct run_time_calib_work;
1594 struct timer_list statistics_periodic; 1506 struct timer_list statistics_periodic;
1595 struct timer_list ucode_trace; 1507 struct timer_list ucode_trace;
@@ -1710,12 +1622,10 @@ static inline int is_channel_ibss(const struct iwl_channel_info *ch)
1710static inline void __iwl_free_pages(struct iwl_priv *priv, struct page *page) 1622static inline void __iwl_free_pages(struct iwl_priv *priv, struct page *page)
1711{ 1623{
1712 __free_pages(page, priv->hw_params.rx_page_order); 1624 __free_pages(page, priv->hw_params.rx_page_order);
1713 priv->alloc_rxb_page--;
1714} 1625}
1715 1626
1716static inline void iwl_free_pages(struct iwl_priv *priv, unsigned long page) 1627static inline void iwl_free_pages(struct iwl_priv *priv, unsigned long page)
1717{ 1628{
1718 free_pages(page, priv->hw_params.rx_page_order); 1629 free_pages(page, priv->hw_params.rx_page_order);
1719 priv->alloc_rxb_page--;
1720} 1630}
1721#endif /* __iwl_dev_h__ */ 1631#endif /* __iwl_dev_h__ */