aboutsummaryrefslogtreecommitdiff
path: root/sys/net80211/ieee80211_ht.h
diff options
context:
space:
mode:
authorAdrian Chadd <adrian@FreeBSD.org>2012-03-25 03:11:57 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2012-03-25 03:11:57 +0000
commitb94299c4377dee4d13001cb74134b26137c10a7c (patch)
treea5520cea75b7e712fd6a1762e30122d3ff900f60 /sys/net80211/ieee80211_ht.h
parente3a078dfeda7456ced0ae74b9025a06489d7e60c (diff)
downloadsrc-b94299c4377dee4d13001cb74134b26137c10a7c.tar.gz
src-b94299c4377dee4d13001cb74134b26137c10a7c.zip
Create a new task to handle 802.11n channel width changes.
Currently, a channel width change updates the 802.11n HT info data in net80211 but it doesn't trigger any device changes. So the device driver may decide that HT40 frames can be transmitted but the last device channel set only had HT20 set. Now, a task is scheduled so a hardware reset or change isn't done during any active ongoing RX. It also means that it's serialised with the other task operations (eg channel change.) This isn't the final incantation of this work, see below. For now, any unmodified drivers will simply receive a channel change log entry. A subsequent patch to ath(4) will introduce some basic channel change handling (by resetting the NIC.) Other NICs may need to update their rate control information. TODO: * There's still a small window at the present moment where the channel width has been updated but the task hasn't been fired. The final version of this should likely pass in a channel width field to the driver and let the driver atomically do whatever it needs to before changing the channel. PR: kern/166286
Notes
Notes: svn path=/head/; revision=233452
Diffstat (limited to 'sys/net80211/ieee80211_ht.h')
-rw-r--r--sys/net80211/ieee80211_ht.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/net80211/ieee80211_ht.h b/sys/net80211/ieee80211_ht.h
index 249ddd2cc2fa..070fbb243975 100644
--- a/sys/net80211/ieee80211_ht.h
+++ b/sys/net80211/ieee80211_ht.h
@@ -184,7 +184,7 @@ void ieee80211_htprot_update(struct ieee80211com *, int protmode);
void ieee80211_ht_timeout(struct ieee80211com *);
void ieee80211_parse_htcap(struct ieee80211_node *, const uint8_t *);
void ieee80211_parse_htinfo(struct ieee80211_node *, const uint8_t *);
-void ieee80211_ht_updateparams(struct ieee80211_node *, const uint8_t *,
+int ieee80211_ht_updateparams(struct ieee80211_node *, const uint8_t *,
const uint8_t *);
void ieee80211_ht_updatehtcap(struct ieee80211_node *, const uint8_t *);
int ieee80211_ampdu_request(struct ieee80211_node *,