diff options
author | Felix Fietkau <nbd@openwrt.org> | 2011-04-09 21:11:06 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2011-04-09 21:11:06 +0000 |
commit | f9be6569c8ca72e766fb575e967b0cc3612cb942 (patch) | |
tree | 57ae3d5ff4602288d9febe387a996081899907e0 /package/mac80211/patches/463-ath9k_fix_slottime.patch | |
parent | 3ce630447abc39f597c3e4ebba650a38d950fc35 (diff) | |
download | upstream-f9be6569c8ca72e766fb575e967b0cc3612cb942.tar.gz upstream-f9be6569c8ca72e766fb575e967b0cc3612cb942.tar.bz2 upstream-f9be6569c8ca72e766fb575e967b0cc3612cb942.zip |
ath5k: add a few fixes that improve performance
SVN-Revision: 26564
Diffstat (limited to 'package/mac80211/patches/463-ath9k_fix_slottime.patch')
-rw-r--r-- | package/mac80211/patches/463-ath9k_fix_slottime.patch | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/package/mac80211/patches/463-ath9k_fix_slottime.patch b/package/mac80211/patches/463-ath9k_fix_slottime.patch new file mode 100644 index 0000000000..01e55d35d4 --- /dev/null +++ b/package/mac80211/patches/463-ath9k_fix_slottime.patch @@ -0,0 +1,42 @@ +--- a/drivers/net/wireless/ath/ath5k/ath5k.h ++++ b/drivers/net/wireless/ath/ath5k/ath5k.h +@@ -1057,6 +1057,7 @@ struct ath5k_hw { + u8 ah_coverage_class; + bool ah_ack_bitrate_high; + u8 ah_bwmode; ++ bool ah_short_slot; + + /* Antenna Control */ + u32 ah_ant_ctl[AR5K_EEPROM_N_MODES][AR5K_ANT_MAX]; +--- 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_ + 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) +--- a/drivers/net/wireless/ath/ath5k/pcu.c ++++ b/drivers/net/wireless/ath/ath5k/pcu.c +@@ -151,9 +151,9 @@ unsigned int ath5k_hw_get_default_slotti + slot_time = AR5K_INIT_SLOT_TIME_QUARTER_RATE; + break; + case AR5K_BWMODE_DEFAULT: +- slot_time = AR5K_INIT_SLOT_TIME_DEFAULT; + default: +- if (channel->hw_value & CHANNEL_CCK) ++ slot_time = AR5K_INIT_SLOT_TIME_DEFAULT; ++ if ((channel->hw_value & CHANNEL_CCK) && !ah->ah_short_slot) + slot_time = AR5K_INIT_SLOT_TIME_B; + break; + } |