aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-tx.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2009-11-16 06:00:38 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-11-18 17:09:15 -0500
commitc951ad3550ab40071bb0f222ba6125845769c08a (patch)
tree9db1d3c110b359a34a3d706eaf40285cfa01550b /drivers/net/wireless/iwlwifi/iwl-tx.c
parent3b53fde8ac40c4321389def14d7f4a9e14092fd3 (diff)
mac80211: convert aggregation to operate on vifs/stas
The entire aggregation code currently operates on the hw pointer and station addresses, but that needs to change to make stations purely per-vif; As one step preparing for that make the aggregation code callable with the station, or by the combination of virtual interface and station address. Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-tx.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-tx.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-tx.c b/drivers/net/wireless/iwlwifi/iwl-tx.c
index ebfc460115d6..f3dff2ecc406 100644
--- a/drivers/net/wireless/iwlwifi/iwl-tx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-tx.c
@@ -1312,7 +1312,7 @@ int iwl_tx_agg_start(struct iwl_priv *priv, const u8 *ra, u16 tid, u16 *ssn)
1312 if (tid_data->tfds_in_queue == 0) { 1312 if (tid_data->tfds_in_queue == 0) {
1313 IWL_DEBUG_HT(priv, "HW queue is empty\n"); 1313 IWL_DEBUG_HT(priv, "HW queue is empty\n");
1314 tid_data->agg.state = IWL_AGG_ON; 1314 tid_data->agg.state = IWL_AGG_ON;
1315 ieee80211_start_tx_ba_cb_irqsafe(priv->hw, ra, tid); 1315 ieee80211_start_tx_ba_cb_irqsafe(priv->vif, ra, tid);
1316 } else { 1316 } else {
1317 IWL_DEBUG_HT(priv, "HW queue is NOT empty: %d packets in HW queue\n", 1317 IWL_DEBUG_HT(priv, "HW queue is NOT empty: %d packets in HW queue\n",
1318 tid_data->tfds_in_queue); 1318 tid_data->tfds_in_queue);
@@ -1377,7 +1377,7 @@ int iwl_tx_agg_stop(struct iwl_priv *priv , const u8 *ra, u16 tid)
1377 if (ret) 1377 if (ret)
1378 return ret; 1378 return ret;
1379 1379
1380 ieee80211_stop_tx_ba_cb_irqsafe(priv->hw, ra, tid); 1380 ieee80211_stop_tx_ba_cb_irqsafe(priv->vif, ra, tid);
1381 1381
1382 return 0; 1382 return 0;
1383} 1383}
@@ -1401,7 +1401,7 @@ int iwl_txq_check_empty(struct iwl_priv *priv, int sta_id, u8 tid, int txq_id)
1401 priv->cfg->ops->lib->txq_agg_disable(priv, txq_id, 1401 priv->cfg->ops->lib->txq_agg_disable(priv, txq_id,
1402 ssn, tx_fifo); 1402 ssn, tx_fifo);
1403 tid_data->agg.state = IWL_AGG_OFF; 1403 tid_data->agg.state = IWL_AGG_OFF;
1404 ieee80211_stop_tx_ba_cb_irqsafe(priv->hw, addr, tid); 1404 ieee80211_stop_tx_ba_cb_irqsafe(priv->vif, addr, tid);
1405 } 1405 }
1406 break; 1406 break;
1407 case IWL_EMPTYING_HW_QUEUE_ADDBA: 1407 case IWL_EMPTYING_HW_QUEUE_ADDBA:
@@ -1409,7 +1409,7 @@ int iwl_txq_check_empty(struct iwl_priv *priv, int sta_id, u8 tid, int txq_id)
1409 if (tid_data->tfds_in_queue == 0) { 1409 if (tid_data->tfds_in_queue == 0) {
1410 IWL_DEBUG_HT(priv, "HW queue empty: continue ADDBA flow\n"); 1410 IWL_DEBUG_HT(priv, "HW queue empty: continue ADDBA flow\n");
1411 tid_data->agg.state = IWL_AGG_ON; 1411 tid_data->agg.state = IWL_AGG_ON;
1412 ieee80211_start_tx_ba_cb_irqsafe(priv->hw, addr, tid); 1412 ieee80211_start_tx_ba_cb_irqsafe(priv->vif, addr, tid);
1413 } 1413 }
1414 break; 1414 break;
1415 } 1415 }