|
@@ -1204,6 +1204,13 @@ void iwl_mvm_rs_tx_status(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
|
|
|
* first index into rate scale table.
|
|
|
*/
|
|
|
if (info->flags & IEEE80211_TX_STAT_AMPDU) {
|
|
|
+ /* ampdu_ack_len = 0 marks no BA was received. In this case
|
|
|
+ * treat it as a single frame loss as we don't want the success
|
|
|
+ * ratio to dip too quickly because a BA wasn't received
|
|
|
+ */
|
|
|
+ if (info->status.ampdu_ack_len == 0)
|
|
|
+ info->status.ampdu_len = 1;
|
|
|
+
|
|
|
ucode_rate = le32_to_cpu(table->rs_table[0]);
|
|
|
rs_rate_from_ucode_rate(ucode_rate, info->band, &rate);
|
|
|
rs_collect_tx_data(lq_sta, curr_tbl, rate.index,
|