diff options
author | Johannes Berg <johannes.berg@intel.com> | 2010-04-29 07:43:07 -0400 |
---|---|---|
committer | Reinette Chatre <reinette.chatre@intel.com> | 2010-05-10 18:08:59 -0400 |
commit | 832f47e333c7d0db632b57e9f07956ae40dd481d (patch) | |
tree | c1415c848a916e4a5b5e104d821152e4b22881ec /drivers/net/wireless/iwlwifi/iwl-agn-tx.c | |
parent | 1dda6d28377bec52f96767e8d4a59aa95102b9dd (diff) |
iwlagn: use virtual interface in TX aggregation handling
Most of the TX aggregation handling can be passed
the virtual interface directly instead of having
to rely on priv->vif.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-agn-tx.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-tx.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c index c2a5c85542bf..6a306e849584 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c | |||
@@ -961,7 +961,8 @@ static int iwlagn_txq_ctx_activate_free(struct iwl_priv *priv) | |||
961 | return -1; | 961 | return -1; |
962 | } | 962 | } |
963 | 963 | ||
964 | int iwlagn_tx_agg_start(struct iwl_priv *priv, const u8 *ra, u16 tid, u16 *ssn) | 964 | int iwlagn_tx_agg_start(struct iwl_priv *priv, struct ieee80211_vif *vif, |
965 | const u8 *ra, u16 tid, u16 *ssn) | ||
965 | { | 966 | { |
966 | int sta_id; | 967 | int sta_id; |
967 | int tx_fifo; | 968 | int tx_fifo; |
@@ -1011,7 +1012,7 @@ int iwlagn_tx_agg_start(struct iwl_priv *priv, const u8 *ra, u16 tid, u16 *ssn) | |||
1011 | if (tid_data->tfds_in_queue == 0) { | 1012 | if (tid_data->tfds_in_queue == 0) { |
1012 | IWL_DEBUG_HT(priv, "HW queue is empty\n"); | 1013 | IWL_DEBUG_HT(priv, "HW queue is empty\n"); |
1013 | tid_data->agg.state = IWL_AGG_ON; | 1014 | tid_data->agg.state = IWL_AGG_ON; |
1014 | ieee80211_start_tx_ba_cb_irqsafe(priv->vif, ra, tid); | 1015 | ieee80211_start_tx_ba_cb_irqsafe(vif, ra, tid); |
1015 | } else { | 1016 | } else { |
1016 | IWL_DEBUG_HT(priv, "HW queue is NOT empty: %d packets in HW queue\n", | 1017 | IWL_DEBUG_HT(priv, "HW queue is NOT empty: %d packets in HW queue\n", |
1017 | tid_data->tfds_in_queue); | 1018 | tid_data->tfds_in_queue); |
@@ -1020,7 +1021,8 @@ int iwlagn_tx_agg_start(struct iwl_priv *priv, const u8 *ra, u16 tid, u16 *ssn) | |||
1020 | return ret; | 1021 | return ret; |
1021 | } | 1022 | } |
1022 | 1023 | ||
1023 | int iwlagn_tx_agg_stop(struct iwl_priv *priv , const u8 *ra, u16 tid) | 1024 | int iwlagn_tx_agg_stop(struct iwl_priv *priv, struct ieee80211_vif *vif, |
1025 | const u8 *ra, u16 tid) | ||
1024 | { | 1026 | { |
1025 | int tx_fifo_id, txq_id, sta_id, ssn = -1; | 1027 | int tx_fifo_id, txq_id, sta_id, ssn = -1; |
1026 | struct iwl_tid_data *tid_data; | 1028 | struct iwl_tid_data *tid_data; |
@@ -1046,7 +1048,7 @@ int iwlagn_tx_agg_stop(struct iwl_priv *priv , const u8 *ra, u16 tid) | |||
1046 | if (priv->stations[sta_id].tid[tid].agg.state == | 1048 | if (priv->stations[sta_id].tid[tid].agg.state == |
1047 | IWL_EMPTYING_HW_QUEUE_ADDBA) { | 1049 | IWL_EMPTYING_HW_QUEUE_ADDBA) { |
1048 | IWL_DEBUG_HT(priv, "AGG stop before setup done\n"); | 1050 | IWL_DEBUG_HT(priv, "AGG stop before setup done\n"); |
1049 | ieee80211_stop_tx_ba_cb_irqsafe(priv->vif, ra, tid); | 1051 | ieee80211_stop_tx_ba_cb_irqsafe(vif, ra, tid); |
1050 | priv->stations[sta_id].tid[tid].agg.state = IWL_AGG_OFF; | 1052 | priv->stations[sta_id].tid[tid].agg.state = IWL_AGG_OFF; |
1051 | return 0; | 1053 | return 0; |
1052 | } | 1054 | } |
@@ -1083,7 +1085,7 @@ int iwlagn_tx_agg_stop(struct iwl_priv *priv , const u8 *ra, u16 tid) | |||
1083 | tx_fifo_id); | 1085 | tx_fifo_id); |
1084 | spin_unlock_irqrestore(&priv->lock, flags); | 1086 | spin_unlock_irqrestore(&priv->lock, flags); |
1085 | 1087 | ||
1086 | ieee80211_stop_tx_ba_cb_irqsafe(priv->vif, ra, tid); | 1088 | ieee80211_stop_tx_ba_cb_irqsafe(vif, ra, tid); |
1087 | 1089 | ||
1088 | return 0; | 1090 | return 0; |
1089 | } | 1091 | } |