aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-4965.h
diff options
context:
space:
mode:
authorRon Rindjunsky <ron.rindjunsky@intel.com>2008-01-28 07:07:24 -0500
committerJohn W. Linville <linville@tuxdriver.com>2008-02-29 15:19:18 -0500
commitfe01b477bbd23e69c3bdc6bce5be510ddad8297d (patch)
tree353471f96adb7580b7940c3b7cf6df4f8f0044a2 /drivers/net/wireless/iwlwifi/iwl-4965.h
parent8114fcf185c58b23dc9fcaf4944b59b4c1407b39 (diff)
iwlwifi: A-MPDU Tx conform flows to mac80211
This patch alters the current iwlwifi behavior to fit the flows introduced by the mac80211, mainly queues handling and start/stop call backs flows Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-4965.h')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965.h20
1 files changed, 12 insertions, 8 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.h b/drivers/net/wireless/iwlwifi/iwl-4965.h
index 4992b8a06367..47c7f3ffe369 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.h
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.h
@@ -433,7 +433,6 @@ struct iwl4965_rx_queue {
433#define IWL_INVALID_VALUE -1 433#define IWL_INVALID_VALUE -1
434 434
435#ifdef CONFIG_IWL4965_HT 435#ifdef CONFIG_IWL4965_HT
436#ifdef CONFIG_IWL4965_HT_AGG
437/** 436/**
438 * struct iwl4965_ht_agg -- aggregation status while waiting for block-ack 437 * struct iwl4965_ht_agg -- aggregation status while waiting for block-ack
439 * @txq_id: Tx queue used for Tx attempt 438 * @txq_id: Tx queue used for Tx attempt
@@ -453,19 +452,22 @@ struct iwl4965_ht_agg {
453 u16 frame_count; 452 u16 frame_count;
454 u16 wait_for_ba; 453 u16 wait_for_ba;
455 u16 start_idx; 454 u16 start_idx;
456 u32 bitmap0; 455 u64 bitmap;
457 u32 bitmap1;
458 u32 rate_n_flags; 456 u32 rate_n_flags;
457#define IWL_AGG_OFF 0
458#define IWL_AGG_ON 1
459#define IWL_EMPTYING_HW_QUEUE_ADDBA 2
460#define IWL_EMPTYING_HW_QUEUE_DELBA 3
461 u8 state;
459}; 462};
460#endif /* CONFIG_IWL4965_HT_AGG */ 463
461#endif /* CONFIG_IWL4965_HT */ 464#endif /* CONFIG_IWL4965_HT */
462 465
463struct iwl4965_tid_data { 466struct iwl4965_tid_data {
464 u16 seq_number; 467 u16 seq_number;
468 u16 tfds_in_queue;
465#ifdef CONFIG_IWL4965_HT 469#ifdef CONFIG_IWL4965_HT
466#ifdef CONFIG_IWL4965_HT_AGG
467 struct iwl4965_ht_agg agg; 470 struct iwl4965_ht_agg agg;
468#endif /* CONFIG_IWL4965_HT_AGG */
469#endif /* CONFIG_IWL4965_HT */ 471#endif /* CONFIG_IWL4965_HT */
470}; 472};
471 473
@@ -743,7 +745,7 @@ extern u8 iwl4965_hw_find_station(struct iwl4965_priv *priv, const u8 *bssid);
743 745
744extern int iwl4965_hw_channel_switch(struct iwl4965_priv *priv, u16 channel); 746extern int iwl4965_hw_channel_switch(struct iwl4965_priv *priv, u16 channel);
745extern int iwl4965_tx_queue_reclaim(struct iwl4965_priv *priv, int txq_id, int index); 747extern int iwl4965_tx_queue_reclaim(struct iwl4965_priv *priv, int txq_id, int index);
746 748extern int iwl4965_queue_space(const struct iwl4965_queue *q);
747struct iwl4965_priv; 749struct iwl4965_priv;
748 750
749/* 751/*
@@ -778,6 +780,8 @@ extern void iwl4965_set_ht_add_station(struct iwl4965_priv *priv, u8 index,
778extern int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw, 780extern int iwl4965_mac_ampdu_action(struct ieee80211_hw *hw,
779 enum ieee80211_ampdu_mlme_action action, 781 enum ieee80211_ampdu_mlme_action action,
780 const u8 *addr, u16 tid, u16 *ssn); 782 const u8 *addr, u16 tid, u16 *ssn);
783extern int iwl4965_check_empty_hw_queue(struct iwl4965_priv *priv, int sta_id,
784 u8 tid, int txq_id);
781#ifdef CONFIG_IWL4965_HT_AGG 785#ifdef CONFIG_IWL4965_HT_AGG
782extern void iwl4965_turn_off_agg(struct iwl4965_priv *priv, u8 tid); 786extern void iwl4965_turn_off_agg(struct iwl4965_priv *priv, u8 tid);
783extern void iwl4965_tl_get_stats(struct iwl4965_priv *priv, 787extern void iwl4965_tl_get_stats(struct iwl4965_priv *priv,
@@ -855,7 +859,7 @@ struct iwl4965_agg_control {
855 u32 ba_timeout; 859 u32 ba_timeout;
856 struct iwl4965_traffic_load traffic_load[TID_MAX_LOAD_COUNT]; 860 struct iwl4965_traffic_load traffic_load[TID_MAX_LOAD_COUNT];
857}; 861};
858#endif /*CONFIG_IWL4965_HT_AGG */ 862#endif /*CONFIG_IWL4965_HT_AGG */
859 863
860struct iwl4965_lq_mngr { 864struct iwl4965_lq_mngr {
861#ifdef CONFIG_IWL4965_HT_AGG 865#ifdef CONFIG_IWL4965_HT_AGG