aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorWey-Yi Guy <wey-yi.w.guy@intel.com>2009-03-10 17:35:11 -0400
committerJohn W. Linville <linville@tuxdriver.com>2009-03-16 18:09:44 -0400
commitdf36c044f51ba6889c2d8b0efd285303bf2a0fbe (patch)
treeed0f6971c9bb149698c7419c0e07cb539eb02a3e /drivers
parent8fe723117a8ef543b6e68ba24e50e1c15250f6c5 (diff)
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: Wey-Yi Guy <wey-yi.w.guy@intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-rs.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
index 0929f310b2d4..43c796bb5800 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
@@ -916,7 +916,7 @@ static void rs_tx_status(void *priv_r, struct ieee80211_supported_band *sband,
916 tpt = search_tbl->expected_tpt[rs_index]; 916 tpt = search_tbl->expected_tpt[rs_index];
917 else 917 else
918 tpt = 0; 918 tpt = 0;
919 if (info->flags & IEEE80211_TX_CTL_AMPDU) 919 if (info->flags & IEEE80211_TX_STAT_AMPDU)
920 rs_collect_tx_data(search_win, rs_index, tpt, 920 rs_collect_tx_data(search_win, rs_index, tpt,
921 info->status.ampdu_ack_len, 921 info->status.ampdu_ack_len,
922 info->status.ampdu_ack_map); 922 info->status.ampdu_ack_map);
@@ -932,7 +932,7 @@ static void rs_tx_status(void *priv_r, struct ieee80211_supported_band *sband,
932 tpt = curr_tbl->expected_tpt[rs_index]; 932 tpt = curr_tbl->expected_tpt[rs_index];
933 else 933 else
934 tpt = 0; 934 tpt = 0;
935 if (info->flags & IEEE80211_TX_CTL_AMPDU) 935 if (info->flags & IEEE80211_TX_STAT_AMPDU)
936 rs_collect_tx_data(window, rs_index, tpt, 936 rs_collect_tx_data(window, rs_index, tpt,
937 info->status.ampdu_ack_len, 937 info->status.ampdu_ack_len,
938 info->status.ampdu_ack_map); 938 info->status.ampdu_ack_map);
@@ -944,7 +944,7 @@ static void rs_tx_status(void *priv_r, struct ieee80211_supported_band *sband,
944 /* If not searching for new mode, increment success/failed counter 944 /* If not searching for new mode, increment success/failed counter
945 * ... these help determine when to start searching again */ 945 * ... these help determine when to start searching again */
946 if (lq_sta->stay_in_tbl) { 946 if (lq_sta->stay_in_tbl) {
947 if (info->flags & IEEE80211_TX_CTL_AMPDU) { 947 if (info->flags & IEEE80211_TX_STAT_AMPDU) {
948 lq_sta->total_success += info->status.ampdu_ack_map; 948 lq_sta->total_success += info->status.ampdu_ack_map;
949 lq_sta->total_failed += 949 lq_sta->total_failed +=
950 (info->status.ampdu_ack_len - info->status.ampdu_ack_map); 950 (info->status.ampdu_ack_len - info->status.ampdu_ack_map);