diff options
author | Felix Fietkau <nbd@openwrt.org> | 2010-03-01 07:32:11 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-03-10 17:44:45 -0500 |
commit | d969847c2202f82b3f6755d16909925e64e354e5 (patch) | |
tree | 108eec6c1cccb07497c2831618ba1a0ac5bb420c /drivers/net/wireless/ath/ath9k/xmit.c | |
parent | 7c3c76a82f3a6d52bbeabf48dd32109cc951a7cf (diff) |
ath9k: fix rate control tx status handling for A-MPDU
Currently the rate control tx status update gets called for every
subframe of an A-MPDU, and ath9k marks the frame with the relevant
status update with an internal flag. This not suitable for rate control
algorithms using the standard mac80211 rate control API, so fix this by
using IEEE80211_TX_STAT_AMPDU for marking the correct frames that
should be processed.
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/xmit.c')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/xmit.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c index b2c8207f7bc1..8359362fc51c 100644 --- a/drivers/net/wireless/ath/ath9k/xmit.c +++ b/drivers/net/wireless/ath/ath9k/xmit.c | |||
@@ -1947,10 +1947,10 @@ static void ath_tx_rc_status(struct ath_buf *bf, struct ath_desc *ds, | |||
1947 | tx_rateindex = ds->ds_txstat.ts_rateindex; | 1947 | tx_rateindex = ds->ds_txstat.ts_rateindex; |
1948 | WARN_ON(tx_rateindex >= hw->max_rates); | 1948 | WARN_ON(tx_rateindex >= hw->max_rates); |
1949 | 1949 | ||
1950 | if (update_rc) | ||
1951 | tx_info->pad[0] |= ATH_TX_INFO_UPDATE_RC; | ||
1952 | if (ds->ds_txstat.ts_status & ATH9K_TXERR_FILT) | 1950 | if (ds->ds_txstat.ts_status & ATH9K_TXERR_FILT) |
1953 | tx_info->flags |= IEEE80211_TX_STAT_TX_FILTERED; | 1951 | tx_info->flags |= IEEE80211_TX_STAT_TX_FILTERED; |
1952 | if ((tx_info->flags & IEEE80211_TX_CTL_AMPDU) && update_rc) | ||
1953 | tx_info->flags |= IEEE80211_TX_STAT_AMPDU; | ||
1954 | 1954 | ||
1955 | if ((ds->ds_txstat.ts_status & ATH9K_TXERR_FILT) == 0 && | 1955 | if ((ds->ds_txstat.ts_status & ATH9K_TXERR_FILT) == 0 && |
1956 | (bf->bf_flags & ATH9K_TXDESC_NOACK) == 0 && update_rc) { | 1956 | (bf->bf_flags & ATH9K_TXDESC_NOACK) == 0 && update_rc) { |