aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorEyal Shapira <eyal@wizery.com>2014-11-12 06:30:20 -0500
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>2014-11-23 13:05:32 -0500
commitd6bda6671f8fda961f6cce95e644f6a14fe5bd2a (patch)
treea21c442bd1cf9b66fecb9ce4d822f70a1f1c3478 /drivers
parent123f515635b12f100ba550b668203159dfb83c82 (diff)
iwlwifi: mvm: rs: consider a missing BA as a single tx failure
The fw now indicates missing BA with ampdu_ack_len=0. This will make the whole aggregation being marked as failed, although it's most likely not the case (and only the BA itself was failed). Consider this case as a single tx failure. Signed-off-by: Eyal Shapira <eyalx.shapira@intel.com> Signed-off-by: Eliad Peller <eliadx.peller@intel.com> Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/rs.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/rs.c b/drivers/net/wireless/iwlwifi/mvm/rs.c
index c05f5a509a5d..30ceb67ed7a7 100644
--- a/drivers/net/wireless/iwlwifi/mvm/rs.c
+++ b/drivers/net/wireless/iwlwifi/mvm/rs.c
@@ -1204,6 +1204,13 @@ void iwl_mvm_rs_tx_status(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
1204 * first index into rate scale table. 1204 * first index into rate scale table.
1205 */ 1205 */
1206 if (info->flags & IEEE80211_TX_STAT_AMPDU) { 1206 if (info->flags & IEEE80211_TX_STAT_AMPDU) {
1207 /* ampdu_ack_len = 0 marks no BA was received. In this case
1208 * treat it as a single frame loss as we don't want the success
1209 * ratio to dip too quickly because a BA wasn't received
1210 */
1211 if (info->status.ampdu_ack_len == 0)
1212 info->status.ampdu_len = 1;
1213
1207 ucode_rate = le32_to_cpu(table->rs_table[0]); 1214 ucode_rate = le32_to_cpu(table->rs_table[0]);
1208 rs_rate_from_ucode_rate(ucode_rate, info->band, &rate); 1215 rs_rate_from_ucode_rate(ucode_rate, info->band, &rate);
1209 rs_collect_tx_data(lq_sta, curr_tbl, rate.index, 1216 rs_collect_tx_data(lq_sta, curr_tbl, rate.index,