diff options
author | Sujith Manoharan <Sujith.Manoharan@atheros.com> | 2011-04-20 05:31:00 (GMT) |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-04-25 18:50:14 (GMT) |
commit | f0dd49803b0c0f3a002f073ec1a82cac5795af2d (patch) | |
tree | 69d7f430cef63ed9e16b9fc1fd01d72ebae330d4 | |
parent | 3a0593efd191c7eb13c79179c4c5ddbc519b2510 (diff) | |
download | linux-f0dd49803b0c0f3a002f073ec1a82cac5795af2d.tar.xz |
ath9k_htc: Fix max A-MPDU size handling
Set the maximum ampdu size of a station correctly
in the target by using the ampdu_factor.
Signed-off-by: Sujith Manoharan <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/ath/ath9k/htc_drv_main.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_main.c b/drivers/net/wireless/ath/ath9k/htc_drv_main.c index a640268..fbc238a 100644 --- a/drivers/net/wireless/ath/ath9k/htc_drv_main.c +++ b/drivers/net/wireless/ath/ath9k/htc_drv_main.c @@ -467,6 +467,7 @@ static int ath9k_htc_add_station(struct ath9k_htc_priv *priv, struct ath9k_htc_sta *ista; int ret, sta_idx; u8 cmd_rsp; + u16 maxampdu; if (priv->nstations >= ATH9K_HTC_MAX_STA) return -ENOBUFS; @@ -490,7 +491,15 @@ static int ath9k_htc_add_station(struct ath9k_htc_priv *priv, tsta.sta_index = sta_idx; tsta.vif_index = avp->index; - tsta.maxampdu = cpu_to_be16(0xffff); + + if (!sta) { + tsta.maxampdu = cpu_to_be16(0xffff); + } else { + maxampdu = 1 << (IEEE80211_HT_MAX_AMPDU_FACTOR + + sta->ht_cap.ampdu_factor); + tsta.maxampdu = cpu_to_be16(maxampdu); + } + if (sta && sta->ht_cap.ht_supported) tsta.flags = cpu_to_be16(ATH_HTC_STA_HT); |