mirror of
git://git.openwrt.org/openwrt/openwrt.git
synced 2025-01-17 12:20:48 +00:00
mac80211: backport upstream HE/VHT capability handling changes
Will be required by an mt76 update at some point Signed-off-by: Felix Fietkau <nbd@nbd.name>
This commit is contained in:
parent
6262d3eb06
commit
ee9d706c20
@ -0,0 +1,68 @@
|
||||
From: Muna Sinada <quic_msinada@quicinc.com>
|
||||
Date: Wed, 5 Oct 2022 14:54:45 -0700
|
||||
Subject: [PATCH] wifi: mac80211: Add VHT MU-MIMO related flags in
|
||||
ieee80211_bss_conf
|
||||
|
||||
Adding flags for SU Beamformer, SU Beamformee, MU Beamformer and
|
||||
MU Beamformee for VHT. This is utilized to pass MU-MIMO
|
||||
configurations from user space to driver in AP mode.
|
||||
|
||||
Signed-off-by: Muna Sinada <quic_msinada@quicinc.com>
|
||||
Link: https://lore.kernel.org/r/1665006886-23874-1-git-send-email-quic_msinada@quicinc.com
|
||||
[fixed indentation, removed redundant !!]
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
---
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -653,6 +653,14 @@ struct ieee80211_fils_discovery {
|
||||
* write-protected by sdata_lock and local->mtx so holding either is fine
|
||||
* for read access.
|
||||
* @color_change_color: the bss color that will be used after the change.
|
||||
+ * @vht_su_beamformer: in AP mode, does this BSS support operation as an VHT SU
|
||||
+ * beamformer
|
||||
+ * @vht_su_beamformee: in AP mode, does this BSS support operation as an VHT SU
|
||||
+ * beamformee
|
||||
+ * @vht_mu_beamformer: in AP mode, does this BSS support operation as an VHT MU
|
||||
+ * beamformer
|
||||
+ * @vht_mu_beamformee: in AP mode, does this BSS support operation as an VHT MU
|
||||
+ * beamformee
|
||||
*/
|
||||
struct ieee80211_bss_conf {
|
||||
const u8 *bssid;
|
||||
@@ -726,6 +734,11 @@ struct ieee80211_bss_conf {
|
||||
|
||||
bool color_change_active;
|
||||
u8 color_change_color;
|
||||
+
|
||||
+ bool vht_su_beamformer;
|
||||
+ bool vht_su_beamformee;
|
||||
+ bool vht_mu_beamformer;
|
||||
+ bool vht_mu_beamformee;
|
||||
};
|
||||
|
||||
/**
|
||||
--- a/net/mac80211/cfg.c
|
||||
+++ b/net/mac80211/cfg.c
|
||||
@@ -1251,6 +1251,21 @@ static int ieee80211_start_ap(struct wip
|
||||
prev_beacon_int = link_conf->beacon_int;
|
||||
link_conf->beacon_int = params->beacon_interval;
|
||||
|
||||
+ if (params->vht_cap) {
|
||||
+ link_conf->vht_su_beamformer =
|
||||
+ params->vht_cap->vht_cap_info &
|
||||
+ cpu_to_le32(IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE);
|
||||
+ link_conf->vht_su_beamformee =
|
||||
+ params->vht_cap->vht_cap_info &
|
||||
+ cpu_to_le32(IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE);
|
||||
+ link_conf->vht_mu_beamformer =
|
||||
+ params->vht_cap->vht_cap_info &
|
||||
+ cpu_to_le32(IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE);
|
||||
+ link_conf->vht_mu_beamformee =
|
||||
+ params->vht_cap->vht_cap_info &
|
||||
+ cpu_to_le32(IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE);
|
||||
+ }
|
||||
+
|
||||
if (params->he_cap && params->he_oper) {
|
||||
link_conf->he_support = true;
|
||||
link_conf->htc_trig_based_pkt_ext =
|
@ -0,0 +1,68 @@
|
||||
From: Muna Sinada <quic_msinada@quicinc.com>
|
||||
Date: Wed, 5 Oct 2022 14:54:46 -0700
|
||||
Subject: [PATCH] wifi: mac80211: Add HE MU-MIMO related flags in
|
||||
ieee80211_bss_conf
|
||||
|
||||
Adding flags for SU Beamformer, SU Beamformee, MU Beamformer and Full
|
||||
Bandwidth UL MU-MIMO for HE. This is utilized to pass MU-MIMO
|
||||
configurations from user space to driver in AP mode.
|
||||
|
||||
Signed-off-by: Muna Sinada <quic_msinada@quicinc.com>
|
||||
Link: https://lore.kernel.org/r/1665006886-23874-2-git-send-email-quic_msinada@quicinc.com
|
||||
[fixed indentation, removed redundant !!]
|
||||
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||
---
|
||||
|
||||
--- a/include/net/mac80211.h
|
||||
+++ b/include/net/mac80211.h
|
||||
@@ -661,6 +661,15 @@ struct ieee80211_fils_discovery {
|
||||
* beamformer
|
||||
* @vht_mu_beamformee: in AP mode, does this BSS support operation as an VHT MU
|
||||
* beamformee
|
||||
+ * @he_su_beamformer: in AP-mode, does this BSS support operation as an HE SU
|
||||
+ * beamformer
|
||||
+ * @he_su_beamformee: in AP-mode, does this BSS support operation as an HE SU
|
||||
+ * beamformee
|
||||
+ * @he_mu_beamformer: in AP-mode, does this BSS support operation as an HE MU
|
||||
+ * beamformer
|
||||
+ * @he_full_ul_mumimo: does this BSS support the reception (AP) or transmission
|
||||
+ * (non-AP STA) of an HE TB PPDU on an RU that spans the entire PPDU
|
||||
+ * bandwidth
|
||||
*/
|
||||
struct ieee80211_bss_conf {
|
||||
const u8 *bssid;
|
||||
@@ -739,6 +748,10 @@ struct ieee80211_bss_conf {
|
||||
bool vht_su_beamformee;
|
||||
bool vht_mu_beamformer;
|
||||
bool vht_mu_beamformee;
|
||||
+ bool he_su_beamformer;
|
||||
+ bool he_su_beamformee;
|
||||
+ bool he_mu_beamformer;
|
||||
+ bool he_full_ul_mumimo;
|
||||
};
|
||||
|
||||
/**
|
||||
--- a/net/mac80211/cfg.c
|
||||
+++ b/net/mac80211/cfg.c
|
||||
@@ -1280,6 +1280,21 @@ static int ieee80211_start_ap(struct wip
|
||||
changed |= BSS_CHANGED_HE_BSS_COLOR;
|
||||
}
|
||||
|
||||
+ if (params->he_cap) {
|
||||
+ link_conf->he_su_beamformer =
|
||||
+ params->he_cap->phy_cap_info[3] &
|
||||
+ IEEE80211_HE_PHY_CAP3_SU_BEAMFORMER;
|
||||
+ link_conf->he_su_beamformee =
|
||||
+ params->he_cap->phy_cap_info[4] &
|
||||
+ IEEE80211_HE_PHY_CAP4_SU_BEAMFORMEE;
|
||||
+ link_conf->he_mu_beamformer =
|
||||
+ params->he_cap->phy_cap_info[4] &
|
||||
+ IEEE80211_HE_PHY_CAP4_MU_BEAMFORMER;
|
||||
+ link_conf->he_full_ul_mumimo =
|
||||
+ params->he_cap->phy_cap_info[2] &
|
||||
+ IEEE80211_HE_PHY_CAP2_UL_MU_FULL_MU_MIMO;
|
||||
+ }
|
||||
+
|
||||
if (sdata->vif.type == NL80211_IFTYPE_AP &&
|
||||
params->mbssid_config.tx_wdev) {
|
||||
err = ieee80211_set_ap_mbssid_options(sdata,
|
Loading…
Reference in New Issue
Block a user