aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/ath
diff options
context:
space:
mode:
authorAdrian Chadd <adrian@FreeBSD.org>2016-07-07 17:22:13 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2016-07-07 17:22:13 +0000
commita7038bd16b9938fd30e6826c500139f070cf2be7 (patch)
tree2aa4a6c12fc73808778dcb02087eccfddf315b8a /sys/dev/ath
parentb3ee9ce691eeddf7363cd96e1f9d363fd51fb810 (diff)
downloadsrc-a7038bd16b9938fd30e6826c500139f070cf2be7.tar.gz
src-a7038bd16b9938fd30e6826c500139f070cf2be7.zip
[ath] obey the short-GI vap config flag when transmitting.
This makes 'ifconfig wlanX -shortgi' work correctly. Tested: * AR9380, STA mode Approved by: re (gjb)
Notes
Notes: svn path=/head/; revision=302392
Diffstat (limited to 'sys/dev/ath')
-rw-r--r--sys/dev/ath/if_ath_tx_ht.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/dev/ath/if_ath_tx_ht.c b/sys/dev/ath/if_ath_tx_ht.c
index 75e949afddb5..5a55f60762df 100644
--- a/sys/dev/ath/if_ath_tx_ht.c
+++ b/sys/dev/ath/if_ath_tx_ht.c
@@ -222,6 +222,7 @@ void
ath_tx_rate_fill_rcflags(struct ath_softc *sc, struct ath_buf *bf)
{
struct ieee80211_node *ni = bf->bf_node;
+ struct ieee80211vap *vap = ni->ni_vap;
struct ieee80211com *ic = ni->ni_ic;
const HAL_RATE_TABLE *rt = sc->sc_currates;
struct ath_rc_series *rc = bf->bf_state.bfs_rc;
@@ -280,12 +281,14 @@ ath_tx_rate_fill_rcflags(struct ath_softc *sc, struct ath_buf *bf)
if (ni->ni_chw == 40 &&
ic->ic_htcaps & IEEE80211_HTCAP_SHORTGI40 &&
- ni->ni_htcap & IEEE80211_HTCAP_SHORTGI40)
+ ni->ni_htcap & IEEE80211_HTCAP_SHORTGI40 &&
+ vap->iv_flags_ht & IEEE80211_FHT_SHORTGI40)
rc[i].flags |= ATH_RC_SGI_FLAG;
if (ni->ni_chw == 20 &&
ic->ic_htcaps & IEEE80211_HTCAP_SHORTGI20 &&
- ni->ni_htcap & IEEE80211_HTCAP_SHORTGI20)
+ ni->ni_htcap & IEEE80211_HTCAP_SHORTGI20 &&
+ vap->iv_flags_ht & IEEE80211_FHT_SHORTGI20)
rc[i].flags |= ATH_RC_SGI_FLAG;
/*