提交 df36c044 编写于 作者: W Wey-Yi Guy 提交者: John W. Linville

iwlwifi: check IEEE80211_TX_STAT_AMPDU for agg pkt

when perform rate scaling, in tx status function, checking for
IEEE80211_TX_STAT_AMPDU flag instead of IEEE_TX_CTL_AMPDU flag to perform
AMPDU rate scaling operation.

IEEE80211_TX_CTL_AMPDU was set by mac80211 for aggregation pkt. But when
iwlwifi receive the tx status reply, it reset the flag to following
	info->flags = IEEE80211_TX_STAT_ACK;
	info->flags |= IEEE80211_TX_STAT_AMPDU;
it causes the rate-scaling to not work for aggregation pkt if we checking
for IEEE80211_TX_CTL_AMPDU flag.
Signed-off-by: NWey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: NReinette Chatre <reinette.chatre@intel.com>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 8fe72311
...@@ -916,7 +916,7 @@ static void rs_tx_status(void *priv_r, struct ieee80211_supported_band *sband, ...@@ -916,7 +916,7 @@ static void rs_tx_status(void *priv_r, struct ieee80211_supported_band *sband,
tpt = search_tbl->expected_tpt[rs_index]; tpt = search_tbl->expected_tpt[rs_index];
else else
tpt = 0; tpt = 0;
if (info->flags & IEEE80211_TX_CTL_AMPDU) if (info->flags & IEEE80211_TX_STAT_AMPDU)
rs_collect_tx_data(search_win, rs_index, tpt, rs_collect_tx_data(search_win, rs_index, tpt,
info->status.ampdu_ack_len, info->status.ampdu_ack_len,
info->status.ampdu_ack_map); info->status.ampdu_ack_map);
...@@ -932,7 +932,7 @@ static void rs_tx_status(void *priv_r, struct ieee80211_supported_band *sband, ...@@ -932,7 +932,7 @@ static void rs_tx_status(void *priv_r, struct ieee80211_supported_band *sband,
tpt = curr_tbl->expected_tpt[rs_index]; tpt = curr_tbl->expected_tpt[rs_index];
else else
tpt = 0; tpt = 0;
if (info->flags & IEEE80211_TX_CTL_AMPDU) if (info->flags & IEEE80211_TX_STAT_AMPDU)
rs_collect_tx_data(window, rs_index, tpt, rs_collect_tx_data(window, rs_index, tpt,
info->status.ampdu_ack_len, info->status.ampdu_ack_len,
info->status.ampdu_ack_map); info->status.ampdu_ack_map);
...@@ -944,7 +944,7 @@ static void rs_tx_status(void *priv_r, struct ieee80211_supported_band *sband, ...@@ -944,7 +944,7 @@ static void rs_tx_status(void *priv_r, struct ieee80211_supported_band *sband,
/* If not searching for new mode, increment success/failed counter /* If not searching for new mode, increment success/failed counter
* ... these help determine when to start searching again */ * ... these help determine when to start searching again */
if (lq_sta->stay_in_tbl) { if (lq_sta->stay_in_tbl) {
if (info->flags & IEEE80211_TX_CTL_AMPDU) { if (info->flags & IEEE80211_TX_STAT_AMPDU) {
lq_sta->total_success += info->status.ampdu_ack_map; lq_sta->total_success += info->status.ampdu_ack_map;
lq_sta->total_failed += lq_sta->total_failed +=
(info->status.ampdu_ack_len - info->status.ampdu_ack_map); (info->status.ampdu_ack_len - info->status.ampdu_ack_map);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册