summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath5k/mac80211-ops.c
diff options
context:
space:
mode:
authorFelix Fietkau2011-04-09 23:10:21 +0200
committerJohn W. Linville2011-04-12 22:59:09 +0200
commitb1ad1b6febb7772583c98d9a879fbbdb82a726a7 (patch)
tree9a6cdf99db5feeed59e9faf458007477552f5817 /drivers/net/wireless/ath/ath5k/mac80211-ops.c
parentath5k: fix SIFS time handling (diff)
downloadkernel-qcow2-linux-b1ad1b6febb7772583c98d9a879fbbdb82a726a7.tar.gz
kernel-qcow2-linux-b1ad1b6febb7772583c98d9a879fbbdb82a726a7.tar.xz
kernel-qcow2-linux-b1ad1b6febb7772583c98d9a879fbbdb82a726a7.zip
ath5k: fix slot time handling
Set the slot time based on the mac80211 short slot vs long slot setting instead of just forcing long slot for all CCK-enabled channels. This slightly improves 802.11g mode performance in in my tests. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath5k/mac80211-ops.c')
-rw-r--r--drivers/net/wireless/ath/ath5k/mac80211-ops.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/wireless/ath/ath5k/mac80211-ops.c b/drivers/net/wireless/ath/ath5k/mac80211-ops.c
index 9be29b728b1c..807bd6440169 100644
--- a/drivers/net/wireless/ath/ath5k/mac80211-ops.c
+++ b/drivers/net/wireless/ath/ath5k/mac80211-ops.c
@@ -282,6 +282,15 @@ ath5k_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
if (changes & BSS_CHANGED_BEACON_INT)
sc->bintval = bss_conf->beacon_int;
+ if (changes & BSS_CHANGED_ERP_SLOT) {
+ int slot_time;
+
+ ah->ah_short_slot = bss_conf->use_short_slot;
+ slot_time = ath5k_hw_get_default_slottime(ah) +
+ 3 * ah->ah_coverage_class;
+ ath5k_hw_set_ifs_intervals(ah, slot_time);
+ }
+
if (changes & BSS_CHANGED_ASSOC) {
avf->assoc = bss_conf->assoc;
if (bss_conf->assoc)