Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F143349509
D42421.id.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
6 KB
Referenced Files
None
Subscribers
None
D42421.id.diff
View Options
diff --git a/sys/compat/linuxkpi/common/src/linux_80211.c b/sys/compat/linuxkpi/common/src/linux_80211.c
--- a/sys/compat/linuxkpi/common/src/linux_80211.c
+++ b/sys/compat/linuxkpi/common/src/linux_80211.c
@@ -3556,16 +3556,16 @@
if (hw->wiphy->bands[NL80211_BAND_5GHZ]->vht_cap.vht_supported){
ic->ic_flags_ext |= IEEE80211_FEXT_VHT;
- ic->ic_vhtcaps =
+ ic->ic_vht_cap.vht_cap_info =
hw->wiphy->bands[NL80211_BAND_5GHZ]->vht_cap.cap;
setbit(bands, IEEE80211_MODE_VHT_5GHZ);
chan_flags |= NET80211_CBW_FLAG_VHT80;
if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160MHZ(
- ic->ic_vhtcaps))
+ ic->ic_vht_cap.vht_cap_info))
chan_flags |= NET80211_CBW_FLAG_VHT160;
if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160_80P80MHZ(
- ic->ic_vhtcaps))
+ ic->ic_vht_cap.vht_cap_info))
chan_flags |= NET80211_CBW_FLAG_VHT80P80;
}
#endif
diff --git a/sys/net80211/ieee80211.c b/sys/net80211/ieee80211.c
--- a/sys/net80211/ieee80211.c
+++ b/sys/net80211/ieee80211.c
@@ -553,7 +553,7 @@
vap->iv_htextcaps = ic->ic_htextcaps;
/* 11ac capabilities - XXX methodize */
- vap->iv_vht_cap.vht_cap_info = ic->ic_vhtcaps;
+ vap->iv_vht_cap.vht_cap_info = ic->ic_vht_cap.vht_cap_info;
vap->iv_vhtextcaps = ic->ic_vhtextcaps;
vap->iv_opmode = opmode;
@@ -944,9 +944,9 @@
break;
}
if (bit)
- ic->ic_flags_vht |= flag;
+ ic->ic_vht_flags |= flag;
else
- ic->ic_flags_vht &= ~flag;
+ ic->ic_vht_flags &= ~flag;
}
void
diff --git a/sys/net80211/ieee80211_ddb.c b/sys/net80211/ieee80211_ddb.c
--- a/sys/net80211/ieee80211_ddb.c
+++ b/sys/net80211/ieee80211_ddb.c
@@ -672,7 +672,7 @@
db_printf("\tcryptocaps=%b\n",
ic->ic_cryptocaps, IEEE80211_CRYPTO_BITS);
db_printf("\thtcaps=%b\n", ic->ic_htcaps, IEEE80211_HTCAP_BITS);
- db_printf("\tvhtcaps=%b\n", ic->ic_vhtcaps, IEEE80211_VHTCAP_BITS);
+ db_printf("\tvhtcaps=%b\n", ic->ic_vht_cap.vht_cap_info, IEEE80211_VHTCAP_BITS);
#if 0
uint8_t ic_modecaps[2]; /* set of mode capabilities */
diff --git a/sys/net80211/ieee80211_ioctl.c b/sys/net80211/ieee80211_ioctl.c
--- a/sys/net80211/ieee80211_ioctl.c
+++ b/sys/net80211/ieee80211_ioctl.c
@@ -711,7 +711,7 @@
dc->dc_drivercaps = ic->ic_caps;
dc->dc_cryptocaps = ic->ic_cryptocaps;
dc->dc_htcaps = ic->ic_htcaps;
- dc->dc_vhtcaps = ic->ic_vhtcaps;
+ dc->dc_vhtcaps = ic->ic_vht_cap.vht_cap_info;
ci = &dc->dc_chaninfo;
ic->ic_getradiocaps(ic, maxchans, &ci->ic_nchans, ci->ic_chans);
KASSERT(ci->ic_nchans <= maxchans,
diff --git a/sys/net80211/ieee80211_node.c b/sys/net80211/ieee80211_node.c
--- a/sys/net80211/ieee80211_node.c
+++ b/sys/net80211/ieee80211_node.c
@@ -809,7 +809,7 @@
* based on what HT has done; it may further promote the
* channel to VHT80 or above.
*/
- if (ic->ic_vhtcaps != 0) {
+ if (ic->ic_vht_cap.vht_cap_info != 0) {
int flags = getvhtadjustflags(ic);
if (flags > ieee80211_vhtchanflags(c))
c = ieee80211_vht_adjust_channel(ic, c, flags);
diff --git a/sys/net80211/ieee80211_regdomain.c b/sys/net80211/ieee80211_regdomain.c
--- a/sys/net80211/ieee80211_regdomain.c
+++ b/sys/net80211/ieee80211_regdomain.c
@@ -149,10 +149,10 @@
if (isset(bands, IEEE80211_MODE_VHT_5GHZ)) {
cbw_flags |= NET80211_CBW_FLAG_HT40; /* Make sure this is set; or assert? */
cbw_flags |= NET80211_CBW_FLAG_VHT80;
- if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160MHZ(ic->ic_vhtcaps))
+ if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160MHZ(ic->ic_vht_cap.vht_cap_info))
cbw_flags |= NET80211_CBW_FLAG_VHT160;
if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160_80P80MHZ(
- ic->ic_vhtcaps))
+ ic->ic_vht_cap.vht_cap_info))
cbw_flags |= NET80211_CBW_FLAG_VHT80P80;
ieee80211_add_channel_list_5ghz(chans, IEEE80211_CHAN_MAX,
nchans, def_chan_5ghz_band1, nitems(def_chan_5ghz_band1),
diff --git a/sys/net80211/ieee80211_var.h b/sys/net80211/ieee80211_var.h
--- a/sys/net80211/ieee80211_var.h
+++ b/sys/net80211/ieee80211_var.h
@@ -240,10 +240,9 @@
uint8_t ic_txstream; /* # TX streams */
/* VHT information */
- uint32_t ic_vhtcaps; /* VHT capabilities */
+ uint32_t ic_vht_flags; /* VHT state flags */
+ struct ieee80211_vht_cap ic_vht_cap; /* VHT capabilities + MCS info */
uint32_t ic_vhtextcaps; /* VHT extended capabilities (TODO) */
- struct ieee80211_vht_mcs_info ic_vht_mcsinfo; /* Support TX/RX VHT MCS */
- uint32_t ic_flags_vht; /* VHT state flags */
uint32_t ic_vht_spare[3];
/* optional state for Atheros SuperG protocol extensions */
diff --git a/sys/net80211/ieee80211_vht.c b/sys/net80211/ieee80211_vht.c
--- a/sys/net80211/ieee80211_vht.c
+++ b/sys/net80211/ieee80211_vht.c
@@ -144,7 +144,7 @@
if (! IEEE80211_CONF_VHT(ic))
return;
- vap->iv_vht_cap.vht_cap_info = ic->ic_vhtcaps;
+ vap->iv_vht_cap.vht_cap_info = ic->ic_vht_cap.vht_cap_info;
vap->iv_vhtextcaps = ic->ic_vhtextcaps;
/* XXX assume VHT80 support; should really check vhtcaps */
@@ -157,7 +157,7 @@
if (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160_80P80MHZ(vap->iv_vht_cap.vht_cap_info))
vap->iv_vht_flags |= IEEE80211_FVHT_USEVHT80P80;
- memcpy(&vap->iv_vht_cap.supp_mcs, &ic->ic_vht_mcsinfo,
+ memcpy(&vap->iv_vht_cap.supp_mcs, &ic->ic_vht_cap.supp_mcs,
sizeof(struct ieee80211_vht_mcs_info));
}
@@ -199,19 +199,19 @@
/* Channel width */
ic_printf(ic, "[VHT] Channel Widths: 20MHz, 40MHz, 80MHz%s%s\n",
- (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160MHZ(ic->ic_vhtcaps)) ?
+ (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160MHZ(ic->ic_vht_cap.vht_cap_info)) ?
", 160MHz" : "",
- (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160_80P80MHZ(ic->ic_vhtcaps)) ?
+ (IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160_80P80MHZ(ic->ic_vht_cap.vht_cap_info)) ?
", 80+80MHz" : "");
/* Features */
- ic_printf(ic, "[VHT] Features: %b\n", ic->ic_vhtcaps,
+ ic_printf(ic, "[VHT] Features: %b\n", ic->ic_vht_cap.vht_cap_info,
IEEE80211_VHTCAP_BITS);
/* For now, just 5GHz VHT. Worry about 2GHz VHT later */
for (i = 0; i < 8; i++) {
/* Each stream is 2 bits */
- tx = (ic->ic_vht_mcsinfo.tx_mcs_map >> (2*i)) & 0x3;
- rx = (ic->ic_vht_mcsinfo.rx_mcs_map >> (2*i)) & 0x3;
+ tx = (ic->ic_vht_cap.supp_mcs.tx_mcs_map >> (2*i)) & 0x3;
+ rx = (ic->ic_vht_cap.supp_mcs.rx_mcs_map >> (2*i)) & 0x3;
if (tx == 3 && rx == 3)
continue;
ic_printf(ic, "[VHT] NSS %d: TX MCS 0..%d, RX MCS 0..%d\n",
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Jan 30, 6:27 AM (6 h, 41 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28095859
Default Alt Text
D42421.id.diff (6 KB)
Attached To
Mode
D42421: net80211: migrate ic_vhtcaps, ic_vht_mcsinfo, ic_flags_vht
Attached
Detach File
Event Timeline
Log In to Comment