]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: mac80211: Update MCS15 support in link_conf
authorMohan Kumar G <quic_mkumarg@quicinc.com>
Mon, 5 May 2025 15:28:36 +0000 (20:58 +0530)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 8 May 2025 22:05:11 +0000 (00:05 +0200)
As per IEEE 802.11be-2024 - 9.4.2.321, EHT operation element
contains MCS15 Disable subfield as the sixth bit, which is set when
MCS15 support is not enabled.

Get MCS15 support from EHT operation params and add it in link_conf
so that driver can use this value to know if EHT-MCS 15 reception
is enabled.

Co-developed-by: Dhanavandhana Kannan <quic_dhanavan1@quicinc.com>
Signed-off-by: Dhanavandhana Kannan <quic_dhanavan1@quicinc.com>
Signed-off-by: Mohan Kumar G <quic_mkumarg@quicinc.com>
Link: https://patch.msgid.link/20250505152836.3266829-1-quic_mkumarg@quicinc.com
[remove pointless !! for bool assignment]
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/linux/ieee80211.h
include/net/mac80211.h
net/mac80211/cfg.c

index 17f917cb4540f29dac7658022cea3c8ef85f1698..420c7f9aa6eea5940785418a5558f74c1b51fb8d 100644 (file)
@@ -2325,6 +2325,7 @@ struct ieee80211_eht_cap_elem {
 #define IEEE80211_EHT_OPER_EHT_DEF_PE_DURATION                 0x04
 #define IEEE80211_EHT_OPER_GROUP_ADDRESSED_BU_IND_LIMIT         0x08
 #define IEEE80211_EHT_OPER_GROUP_ADDRESSED_BU_IND_EXP_MASK      0x30
+#define IEEE80211_EHT_OPER_MCS15_DISABLE                        0x40
 
 /**
  * struct ieee80211_eht_operation - eht operation element
index fdafc37d17cc3edf2ffbdfd6fac8fc19ff14ed1b..82617579d91065cb04289ca2dfd631a11123c7ca 100644 (file)
@@ -744,6 +744,7 @@ struct ieee80211_parsed_tpe {
  * @eht_80mhz_full_bw_ul_mumimo: in AP-mode, does this BSS support the
  *     reception of an EHT TB PPDU on an RU that spans the entire PPDU
  *     bandwidth
+ * @eht_disable_mcs15: disable EHT-MCS 15 reception capability.
  * @bss_param_ch_cnt: in BSS-mode, the BSS params change count. This
  *     information is the latest known value. It can come from this link's
  *     beacon or from a beacon sent by another link.
@@ -852,6 +853,8 @@ struct ieee80211_bss_conf {
        bool eht_su_beamformee;
        bool eht_mu_beamformer;
        bool eht_80mhz_full_bw_ul_mumimo;
+       bool eht_disable_mcs15;
+
        u8 bss_param_ch_cnt;
        u8 bss_param_ch_cnt_link_id;
 };
index 9017b98fea0482146870de27cb3858557cfa3792..2cd8731d8275b2f67c1b1305ec0bafc368a4498a 100644 (file)
@@ -1421,6 +1421,9 @@ static int ieee80211_start_ap(struct wiphy *wiphy, struct net_device *dev,
                                (IEEE80211_EHT_PHY_CAP7_NON_OFDMA_UL_MU_MIMO_80MHZ |
                                 IEEE80211_EHT_PHY_CAP7_NON_OFDMA_UL_MU_MIMO_160MHZ |
                                 IEEE80211_EHT_PHY_CAP7_NON_OFDMA_UL_MU_MIMO_320MHZ);
+               link_conf->eht_disable_mcs15 =
+                       u8_get_bits(params->eht_oper->params,
+                                   IEEE80211_EHT_OPER_MCS15_DISABLE);
        } else {
                link_conf->eht_su_beamformer = false;
                link_conf->eht_su_beamformee = false;