aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGregory Greenman <gregory.greenman@intel.com>2017-07-05 22:27:55 -0400
committerLuca Coelho <luciano.coelho@intel.com>2017-08-01 04:51:02 -0400
commit87f55616f81bf6c82f0e94cf4661151399d2a7b6 (patch)
tree086cd3fb1c06559588421b1806ab64303af6c751
parent9465c3f8ba67cff697c0529de5a03cc5e1509d41 (diff)
iwlwifi: mvm: rs: fix TLC statistics collection
Statistics should be collected according to the actual rate a frame/aggregation was transmitted and not according to the initial rate from the last LQ command (these rates are different if the frames were retransmitted at a lower rate from the rate scale table). This is needed to remove throughput degradation. Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/rs.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rs.c b/drivers/net/wireless/intel/iwlwifi/mvm/rs.c
index 65beca3a457a..8999a1199d60 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/rs.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/rs.c
@@ -1291,7 +1291,7 @@ void iwl_mvm_rs_tx_status(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
1291 * first index into rate scale table. 1291 * first index into rate scale table.
1292 */ 1292 */
1293 if (info->flags & IEEE80211_TX_STAT_AMPDU) { 1293 if (info->flags & IEEE80211_TX_STAT_AMPDU) {
1294 rs_collect_tpc_data(mvm, lq_sta, curr_tbl, lq_rate.index, 1294 rs_collect_tpc_data(mvm, lq_sta, curr_tbl, tx_resp_rate.index,
1295 info->status.ampdu_len, 1295 info->status.ampdu_len,
1296 info->status.ampdu_ack_len, 1296 info->status.ampdu_ack_len,
1297 reduced_txp); 1297 reduced_txp);
@@ -1312,7 +1312,7 @@ void iwl_mvm_rs_tx_status(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
1312 if (info->status.ampdu_ack_len == 0) 1312 if (info->status.ampdu_ack_len == 0)
1313 info->status.ampdu_len = 1; 1313 info->status.ampdu_len = 1;
1314 1314
1315 rs_collect_tlc_data(mvm, lq_sta, curr_tbl, lq_rate.index, 1315 rs_collect_tlc_data(mvm, lq_sta, curr_tbl, tx_resp_rate.index,
1316 info->status.ampdu_len, 1316 info->status.ampdu_len,
1317 info->status.ampdu_ack_len); 1317 info->status.ampdu_ack_len);
1318 1318
@@ -1348,11 +1348,11 @@ void iwl_mvm_rs_tx_status(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
1348 continue; 1348 continue;
1349 1349
1350 rs_collect_tpc_data(mvm, lq_sta, tmp_tbl, 1350 rs_collect_tpc_data(mvm, lq_sta, tmp_tbl,
1351 lq_rate.index, 1, 1351 tx_resp_rate.index, 1,
1352 i < retries ? 0 : legacy_success, 1352 i < retries ? 0 : legacy_success,
1353 reduced_txp); 1353 reduced_txp);
1354 rs_collect_tlc_data(mvm, lq_sta, tmp_tbl, 1354 rs_collect_tlc_data(mvm, lq_sta, tmp_tbl,
1355 lq_rate.index, 1, 1355 tx_resp_rate.index, 1,
1356 i < retries ? 0 : legacy_success); 1356 i < retries ? 0 : legacy_success);
1357 } 1357 }
1358 1358