diff options
author | Gregory Greenman <gregory.greenman@intel.com> | 2017-07-05 22:27:55 -0400 |
---|---|---|
committer | Luca Coelho <luciano.coelho@intel.com> | 2017-08-01 04:51:02 -0400 |
commit | 87f55616f81bf6c82f0e94cf4661151399d2a7b6 (patch) | |
tree | 086cd3fb1c06559588421b1806ab64303af6c751 | |
parent | 9465c3f8ba67cff697c0529de5a03cc5e1509d41 (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.c | 8 |
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 | ||