aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Chadd <adrian@FreeBSD.org>2024-11-25 23:13:32 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2024-12-03 05:31:39 +0000
commit3f62f8ef5e4001ba7a2a9324e10a508eea15b68c (patch)
tree1f02fc351ab188ad480d6c14bbcd52518dbcf9d5
parent3d54d9e364f88117fa9f7126ef0184c6da5069fc (diff)
-rw-r--r--sys/dev/iwn/if_iwn.c15
1 files changed, 5 insertions, 10 deletions
diff --git a/sys/dev/iwn/if_iwn.c b/sys/dev/iwn/if_iwn.c
index 50d50fdc473c..db3eb37ced9e 100644
--- a/sys/dev/iwn/if_iwn.c
+++ b/sys/dev/iwn/if_iwn.c
@@ -2813,22 +2813,17 @@ iwn_rate_to_plcp(struct iwn_softc *sc, struct ieee80211_node *ni,
plcp = IEEE80211_RV(rate) | IWN_RFLAG_MCS;
/*
- * XXX the following should only occur if both
- * the local configuration _and_ the remote node
- * advertise these capabilities. Thus this code
- * may need fixing!
- */
-
- /*
* Set the channel width and guard interval.
+ *
+ * Take into account the local configuration and
+ * the node/peer advertised abilities.
*/
if (IEEE80211_IS_CHAN_HT40(ni->ni_chan)) {
plcp |= IWN_RFLAG_HT40;
- if (ni->ni_htcap & IEEE80211_HTCAP_SHORTGI40)
+ if (ieee80211_ht_check_tx_shortgi_40(ni))
plcp |= IWN_RFLAG_SGI;
- } else if (ni->ni_htcap & IEEE80211_HTCAP_SHORTGI20) {
+ } else if (ieee80211_ht_check_tx_shortgi_20(ni))
plcp |= IWN_RFLAG_SGI;
- }
/*
* Ensure the selected rate matches the link quality