aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/iwn
diff options
context:
space:
mode:
authorAdrian Chadd <adrian@FreeBSD.org>2018-01-02 00:07:28 +0000
committerAdrian Chadd <adrian@FreeBSD.org>2018-01-02 00:07:28 +0000
commit9fbe631a1ad7f8a1a2f45645d9c8dd50c2a8bb67 (patch)
treea5d7faed2a65fbf7d4faeb3ab70921425993d533 /sys/dev/iwn
parentcb1101afd7dcab548680a142d4a4b375a5a39b08 (diff)
downloadsrc-9fbe631a1ad7f8a1a2f45645d9c8dd50c2a8bb67.tar.gz
src-9fbe631a1ad7f8a1a2f45645d9c8dd50c2a8bb67.zip
[net80211] convert all of the WME use over to a temporary copy of WME info.
This removes the direct WME info access in the ieee80211com struct and instead provides a method of fetching the data. Right now it's a no-op but eventually it'll turn into a per-VAP method for drivers that support it (eg iwn, iwm, upcoming ath10k work) as things like p2p support require this kind of behaviour. Tested: * ath(4), STA and AP mode TODO: * yes, this is slightly stack size-y, but it is an important first step to get drivers migrated over to a sensible WME API. A lot of per-phy things need to be converted to per-VAP before P2P, 11ac firmware, etc stuff shows up.
Notes
Notes: svn path=/head/; revision=327479
Diffstat (limited to 'sys/dev/iwn')
-rw-r--r--sys/dev/iwn/if_iwn.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/dev/iwn/if_iwn.c b/sys/dev/iwn/if_iwn.c
index 65f1fa449e52..738ebb31a60a 100644
--- a/sys/dev/iwn/if_iwn.c
+++ b/sys/dev/iwn/if_iwn.c
@@ -5301,17 +5301,19 @@ iwn_updateedca(struct ieee80211com *ic)
#define IWN_EXP2(x) ((1 << (x)) - 1) /* CWmin = 2^ECWmin - 1 */
struct iwn_softc *sc = ic->ic_softc;
struct iwn_edca_params cmd;
+ struct chanAccParams chp;
int aci;
DPRINTF(sc, IWN_DEBUG_TRACE, "->%s begin\n", __func__);
+ ieee80211_wme_ic_getparams(ic, &chp);
+
memset(&cmd, 0, sizeof cmd);
cmd.flags = htole32(IWN_EDCA_UPDATE);
IEEE80211_LOCK(ic);
for (aci = 0; aci < WME_NUM_AC; aci++) {
- const struct wmeParams *ac =
- &ic->ic_wme.wme_chanParams.cap_wmeParams[aci];
+ const struct wmeParams *ac = &chp.cap_wmeParams[aci];
cmd.ac[aci].aifsn = ac->wmep_aifsn;
cmd.ac[aci].cwmin = htole16(IWN_EXP2(ac->wmep_logcwmin));
cmd.ac[aci].cwmax = htole16(IWN_EXP2(ac->wmep_logcwmax));