iwlagn: don't stop rts/cts until last aggregation queue close
Once enable rts/cts for aggregation queue, do not disable until the last aggregation queue closed. Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
8921d4cab9
commit
ef082cb1e5
|
@ -2418,11 +2418,6 @@ static int iwlagn_mac_ampdu_action(struct ieee80211_hw *hw,
|
||||||
case IEEE80211_AMPDU_TX_START:
|
case IEEE80211_AMPDU_TX_START:
|
||||||
IWL_DEBUG_HT(priv, "start Tx\n");
|
IWL_DEBUG_HT(priv, "start Tx\n");
|
||||||
ret = iwlagn_tx_agg_start(priv, vif, sta, tid, ssn);
|
ret = iwlagn_tx_agg_start(priv, vif, sta, tid, ssn);
|
||||||
if (ret == 0) {
|
|
||||||
priv->agg_tids_count++;
|
|
||||||
IWL_DEBUG_HT(priv, "priv->agg_tids_count = %u\n",
|
|
||||||
priv->agg_tids_count);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case IEEE80211_AMPDU_TX_STOP:
|
case IEEE80211_AMPDU_TX_STOP:
|
||||||
IWL_DEBUG_HT(priv, "stop Tx\n");
|
IWL_DEBUG_HT(priv, "stop Tx\n");
|
||||||
|
@ -2434,7 +2429,7 @@ static int iwlagn_mac_ampdu_action(struct ieee80211_hw *hw,
|
||||||
}
|
}
|
||||||
if (test_bit(STATUS_EXIT_PENDING, &priv->shrd->status))
|
if (test_bit(STATUS_EXIT_PENDING, &priv->shrd->status))
|
||||||
ret = 0;
|
ret = 0;
|
||||||
if (priv->cfg->ht_params &&
|
if (!priv->agg_tids_count && priv->cfg->ht_params &&
|
||||||
priv->cfg->ht_params->use_rts_for_aggregation) {
|
priv->cfg->ht_params->use_rts_for_aggregation) {
|
||||||
/*
|
/*
|
||||||
* switch off RTS/CTS if it was previously enabled
|
* switch off RTS/CTS if it was previously enabled
|
||||||
|
@ -2481,6 +2476,9 @@ static int iwlagn_mac_ampdu_action(struct ieee80211_hw *hw,
|
||||||
sta_priv->lq_sta.lq.general_params.flags |=
|
sta_priv->lq_sta.lq.general_params.flags |=
|
||||||
LINK_QUAL_FLAGS_SET_STA_TLC_RTS_MSK;
|
LINK_QUAL_FLAGS_SET_STA_TLC_RTS_MSK;
|
||||||
}
|
}
|
||||||
|
priv->agg_tids_count++;
|
||||||
|
IWL_DEBUG_HT(priv, "priv->agg_tids_count = %u\n",
|
||||||
|
priv->agg_tids_count);
|
||||||
|
|
||||||
sta_priv->lq_sta.lq.agg_params.agg_frame_cnt_limit =
|
sta_priv->lq_sta.lq.agg_params.agg_frame_cnt_limit =
|
||||||
sta_priv->max_agg_bufsize;
|
sta_priv->max_agg_bufsize;
|
||||||
|
|
Loading…
Reference in a new issue