diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2009-11-16 06:00:38 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-11-18 17:09:15 -0500 |
commit | c951ad3550ab40071bb0f222ba6125845769c08a (patch) | |
tree | 9db1d3c110b359a34a3d706eaf40285cfa01550b /drivers/net/wireless/iwlwifi/iwl-tx.c | |
parent | 3b53fde8ac40c4321389def14d7f4a9e14092fd3 (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.c | 8 |
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 | } |