linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/15] cfg80211/mac80211 patches from our internal tree 2021-04-09
@ 2021-04-09  9:40 Luca Coelho
  2021-04-09  9:40 ` [PATCH 01/15] mac80211: drop the connection if firmware crashed while in CSA Luca Coelho
                   ` (14 more replies)
  0 siblings, 15 replies; 23+ messages in thread
From: Luca Coelho @ 2021-04-09  9:40 UTC (permalink / raw)
  To: johannes; +Cc: linux-wireless

From: Luca Coelho <luciano.coelho@intel.com>

Hi,

A bunch of patches with mac80211 and cfg80211 changes from our
internal tree.

As we discussed, a couple of these break ath11k compilation, but since
you're the original author, it's easier (at least for me :P) if you
fix them before applying.

Please review, though you have already reviewed (or even written!)
most if not all of them. ;)

Thanks!

Cheers,
Luca.


Avraham Stern (2):
  nl80211/cfg80211: add a flag to negotiate for LMR feedback in NDP
    ranging
  ieee80211: add the values of ranging parameters max LTF total field

Emmanuel Grumbach (5):
  mac80211: properly drop the connection in case of invalid CSA IE
  cfg80211: don't WARN if a self-managed device doesn't have a regdom
  mac80211: make ieee80211_vif_to_wdev work when the vif isn't in the
    driver
  cfg80211: allow to specifying a reason for hw_rfkill
  mac80211: clear the beacon's CRC after channel switch

Ilan Peer (2):
  nl80211: Add new RSNXE related nl80211 extended features
  cfg80211: Remove wrong RNR IE validation check

Johannes Berg (5):
  wireless: align some HE capabilities with the spec
  wireless: align HE capabilities A-MPDU Length Exponent Extension
  mac80211: bail out if cipher schemes are invalid
  wireless: fix spelling of A-MSDU in HE capabilities
  mac80211: aes_cmac: check crypto_shash_setkey() return value

Naftali Goldstein (1):
  mac80211: drop the connection if firmware crashed while in CSA

 backport-include/net/cfg80211.h               | 17 +++++++++
 .../wireless/intel/iwlwifi/iwl-nvm-parse.c    | 12 +++---
 drivers/net/wireless/mac80211_hwsim.c         | 16 ++++----
 include/linux/ieee80211.h                     | 33 ++++++++++-------
 include/net/cfg80211.h                        | 16 +++++++-
 include/net/mac80211.h                        |  5 +--
 include/uapi/linux/nl80211.h                  | 17 +++++++++
 net/mac80211/aes_cmac.c                       | 11 +++++-
 net/mac80211/debugfs_sta.c                    | 37 ++++++++++---------
 net/mac80211/ieee80211_i.h                    |  2 +
 net/mac80211/main.c                           | 16 ++++++--
 net/mac80211/mlme.c                           | 16 ++++----
 net/mac80211/util.c                           | 10 +----
 net/wireless/core.c                           |  7 ++--
 net/wireless/nl80211.c                        |  5 ++-
 net/wireless/pmsr.c                           | 12 +++++-
 net/wireless/scan.c                           |  2 +-
 17 files changed, 154 insertions(+), 80 deletions(-)
 create mode 100644 backport-include/net/cfg80211.h

-- 
2.31.0


^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 01/15] mac80211: drop the connection if firmware crashed while in CSA
  2021-04-09  9:40 [PATCH 00/15] cfg80211/mac80211 patches from our internal tree 2021-04-09 Luca Coelho
@ 2021-04-09  9:40 ` Luca Coelho
  2021-04-09  9:40 ` [PATCH 02/15] nl80211: Add new RSNXE related nl80211 extended features Luca Coelho
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Luca Coelho @ 2021-04-09  9:40 UTC (permalink / raw)
  To: johannes; +Cc: linux-wireless

From: Naftali Goldstein <naftali.goldstein@intel.com>

Don't bother keeping the link in that case. It is way
too complicated to keep the connection.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Naftali Goldstein <naftali.goldstein@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 net/mac80211/ieee80211_i.h | 2 ++
 net/mac80211/main.c        | 9 ++++++++-
 net/mac80211/mlme.c        | 4 ++--
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index ecda126a7026..8fcbaa1eedf3 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -1660,6 +1660,8 @@ void ieee80211_mgd_conn_tx_status(struct ieee80211_sub_if_data *sdata,
 void ieee80211_mgd_quiesce(struct ieee80211_sub_if_data *sdata);
 void ieee80211_sta_restart(struct ieee80211_sub_if_data *sdata);
 void ieee80211_sta_handle_tspec_ac_params(struct ieee80211_sub_if_data *sdata);
+void ieee80211_sta_connection_lost(struct ieee80211_sub_if_data *sdata,
+				   u8 *bssid, u8 reason, bool tx);
 
 /* IBSS code */
 void ieee80211_ibss_notify_scan_completed(struct ieee80211_local *local);
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 4f3f8bb58e76..f27aed37ed2b 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -5,7 +5,7 @@
  * Copyright 2006-2007	Jiri Benc <jbenc@suse.cz>
  * Copyright 2013-2014  Intel Mobile Communications GmbH
  * Copyright (C) 2017     Intel Deutschland GmbH
- * Copyright (C) 2018 - 2019 Intel Corporation
+ * Copyright (C) 2018-2021 Intel Corporation
  */
 
 #include <net/mac80211.h>
@@ -282,6 +282,13 @@ static void ieee80211_restart_work(struct work_struct *work)
 			 * Then we can have a race...
 			 */
 			cancel_work_sync(&sdata->u.mgd.csa_connection_drop_work);
+			if (sdata->vif.csa_active) {
+				sdata_lock(sdata);
+				ieee80211_sta_connection_lost(sdata,
+							      sdata->u.mgd.associated->bssid,
+							      WLAN_REASON_UNSPECIFIED, false);
+				sdata_unlock(sdata);
+			}
 		}
 		flush_delayed_work(&sdata->dec_tailroom_needed_wk);
 	}
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 2e33a1263518..c569a10a1bbb 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -4382,8 +4382,8 @@ static void ieee80211_sta_timer(struct timer_list *t)
 	ieee80211_queue_work(&sdata->local->hw, &sdata->work);
 }
 
-static void ieee80211_sta_connection_lost(struct ieee80211_sub_if_data *sdata,
-					  u8 *bssid, u8 reason, bool tx)
+void ieee80211_sta_connection_lost(struct ieee80211_sub_if_data *sdata,
+				   u8 *bssid, u8 reason, bool tx)
 {
 	u8 frame_buf[IEEE80211_DEAUTH_FRAME_LEN];
 
-- 
2.31.0


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 02/15] nl80211: Add new RSNXE related nl80211 extended features
  2021-04-09  9:40 [PATCH 00/15] cfg80211/mac80211 patches from our internal tree 2021-04-09 Luca Coelho
  2021-04-09  9:40 ` [PATCH 01/15] mac80211: drop the connection if firmware crashed while in CSA Luca Coelho
@ 2021-04-09  9:40 ` Luca Coelho
  2021-04-09  9:40 ` [PATCH 03/15] mac80211: properly drop the connection in case of invalid CSA IE Luca Coelho
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Luca Coelho @ 2021-04-09  9:40 UTC (permalink / raw)
  To: johannes; +Cc: linux-wireless

From: Ilan Peer <ilan.peer@intel.com>

Draft P802.11ax_D2.5 defines the following capabilities that
can be negotiated using RSNXE capabilities:

- Secure LTF measurement exchange protocol.
- Secure RTT measurement exchange protocol.
- Management frame protection for all management frames exchanged
  during the negotiation and range measurement procedure.

Extend the nl80211 API to allow drivers to declare support for
these new capabilities as part of extended feature.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 include/uapi/linux/nl80211.h | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index ac78da99fccd..325f2c621840 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -5937,6 +5937,16 @@ enum nl80211_feature_flags {
  * @NL80211_EXT_FEATURE_BEACON_RATE_HE: Driver supports beacon rate
  *	configuration (AP/mesh) with HE rates.
  *
+ * @NL80211_EXT_FEATURE_SECURE_LTF: Device supports secure LTF measurement
+ *      exchange protocol.
+ *
+ * @NL80211_EXT_FEATURE_SECURE_RTT: Device supports secure RTT measurement
+ *      exchange protocol.
+ *
+ * @NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE: Device supports management
+ *      frame protection for all management frames exchanged during the
+ *      negotiation and range measurement procedure.
+ *
  * @NUM_NL80211_EXT_FEATURES: number of extended features.
  * @MAX_NL80211_EXT_FEATURES: highest extended feature index.
  */
@@ -5998,6 +6008,9 @@ enum nl80211_ext_feature_index {
 	NL80211_EXT_FEATURE_FILS_DISCOVERY,
 	NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP,
 	NL80211_EXT_FEATURE_BEACON_RATE_HE,
+	NL80211_EXT_FEATURE_SECURE_LTF,
+	NL80211_EXT_FEATURE_SECURE_RTT,
+	NL80211_EXT_FEATURE_PROT_RANGE_NEGO_AND_MEASURE,
 
 	/* add new features before the definition below */
 	NUM_NL80211_EXT_FEATURES,
-- 
2.31.0


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 03/15] mac80211: properly drop the connection in case of invalid CSA IE
  2021-04-09  9:40 [PATCH 00/15] cfg80211/mac80211 patches from our internal tree 2021-04-09 Luca Coelho
  2021-04-09  9:40 ` [PATCH 01/15] mac80211: drop the connection if firmware crashed while in CSA Luca Coelho
  2021-04-09  9:40 ` [PATCH 02/15] nl80211: Add new RSNXE related nl80211 extended features Luca Coelho
@ 2021-04-09  9:40 ` Luca Coelho
  2021-04-09  9:40 ` [PATCH 04/15] wireless: align some HE capabilities with the spec Luca Coelho
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Luca Coelho @ 2021-04-09  9:40 UTC (permalink / raw)
  To: johannes; +Cc: linux-wireless

From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>

In case the frequency is invalid, ieee80211_parse_ch_switch_ie
will fail and we may not even reach the check in
ieee80211_sta_process_chanswitch. Drop the connection
in case ieee80211_parse_ch_switch_ie failed, but still
take into account the CSA mode to remember not to send
a deauth frame in case if it is forbidden to.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 net/mac80211/mlme.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index c569a10a1bbb..9b85adbf2cc2 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1400,11 +1400,8 @@ ieee80211_sta_process_chanswitch(struct ieee80211_sub_if_data *sdata,
 		ch_switch.delay = csa_ie.max_switch_time;
 	}
 
-	if (res < 0) {
-		ieee80211_queue_work(&local->hw,
-				     &ifmgd->csa_connection_drop_work);
-		return;
-	}
+	if (res < 0)
+		goto lock_and_drop_connection;
 
 	if (beacon && sdata->vif.csa_active && !ifmgd->csa_waiting_bcn) {
 		if (res)
-- 
2.31.0


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 04/15] wireless: align some HE capabilities with the spec
  2021-04-09  9:40 [PATCH 00/15] cfg80211/mac80211 patches from our internal tree 2021-04-09 Luca Coelho
                   ` (2 preceding siblings ...)
  2021-04-09  9:40 ` [PATCH 03/15] mac80211: properly drop the connection in case of invalid CSA IE Luca Coelho
@ 2021-04-09  9:40 ` Luca Coelho
  2021-04-09 12:24   ` kernel test robot
  2021-04-09 23:31   ` kernel test robot
  2021-04-09  9:40 ` [PATCH 05/15] cfg80211: don't WARN if a self-managed device doesn't have a regdom Luca Coelho
                   ` (10 subsequent siblings)
  14 siblings, 2 replies; 23+ messages in thread
From: Luca Coelho @ 2021-04-09  9:40 UTC (permalink / raw)
  To: johannes; +Cc: linux-wireless

From: Johannes Berg <johannes.berg@intel.com>

Some names were changed, align that with the spec as of
802.11ax-D6.1.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 .../wireless/intel/iwlwifi/iwl-nvm-parse.c    |  6 +++---
 include/linux/ieee80211.h                     | 14 +++++++-------
 net/mac80211/debugfs_sta.c                    | 19 ++++++++++---------
 3 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
index af684f80b0cc..632f20d4027d 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
@@ -583,11 +583,11 @@ static const struct ieee80211_sband_iftype_data iwl_he_capa[] = {
 					IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_2 |
 					IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_ABOVE_80MHZ_2,
 				.phy_cap_info[6] =
-					IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB |
-					IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB |
+					IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB |
+					IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB |
 					IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT,
 				.phy_cap_info[7] =
-					IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR |
+					IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_SUPP |
 					IEEE80211_HE_PHY_CAP7_HE_SU_MU_PPDU_4XLTF_AND_08_US_GI |
 					IEEE80211_HE_PHY_CAP7_MAX_NC_1,
 				.phy_cap_info[8] =
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 72ff75fb1971..0c15fb64e7c2 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -2020,7 +2020,7 @@ int ieee80211_get_vht_max_nss(struct ieee80211_vht_cap *cap,
 #define IEEE80211_HE_MAC_CAP4_BSRP_BQRP_A_MPDU_AGG		0x01
 #define IEEE80211_HE_MAC_CAP4_QTP				0x02
 #define IEEE80211_HE_MAC_CAP4_BQR				0x04
-#define IEEE80211_HE_MAC_CAP4_SRP_RESP				0x08
+#define IEEE80211_HE_MAC_CAP4_PSR_RESP				0x08
 #define IEEE80211_HE_MAC_CAP4_NDP_FB_REP			0x10
 #define IEEE80211_HE_MAC_CAP4_OPS				0x20
 #define IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU			0x40
@@ -2031,7 +2031,7 @@ int ieee80211_get_vht_max_nss(struct ieee80211_vht_cap *cap,
 
 #define IEEE80211_HE_MAC_CAP5_MULTI_TID_AGG_TX_QOS_B40		0x01
 #define IEEE80211_HE_MAC_CAP5_MULTI_TID_AGG_TX_QOS_B41		0x02
-#define IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECVITE_TRANSMISSION	0x04
+#define IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECTIVE_TRANSMISSION	0x04
 #define IEEE80211_HE_MAC_CAP5_UL_2x996_TONE_RU			0x08
 #define IEEE80211_HE_MAC_CAP5_OM_CTRL_UL_MU_DATA_DIS_RX		0x10
 #define IEEE80211_HE_MAC_CAP5_HE_DYNAMIC_SM_PS			0x20
@@ -2089,7 +2089,7 @@ int ieee80211_get_vht_max_nss(struct ieee80211_vht_cap *cap,
 #define IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_MASK			0x18
 #define IEEE80211_HE_PHY_CAP3_DCM_MAX_RX_NSS_1				0x00
 #define IEEE80211_HE_PHY_CAP3_DCM_MAX_RX_NSS_2				0x20
-#define IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA		0x40
+#define IEEE80211_HE_PHY_CAP3_RX_PARTIAL_BW_SU_IN_20MHZ_MU		0x40
 #define IEEE80211_HE_PHY_CAP3_SU_BEAMFORMER				0x80
 
 #define IEEE80211_HE_PHY_CAP4_SU_BEAMFORMEE				0x01
@@ -2136,15 +2136,15 @@ int ieee80211_get_vht_max_nss(struct ieee80211_vht_cap *cap,
 
 #define IEEE80211_HE_PHY_CAP6_CODEBOOK_SIZE_42_SU			0x01
 #define IEEE80211_HE_PHY_CAP6_CODEBOOK_SIZE_75_MU			0x02
-#define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMER_FB			0x04
-#define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB			0x08
+#define IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB			0x04
+#define IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB		0x08
 #define IEEE80211_HE_PHY_CAP6_TRIG_CQI_FB				0x10
 #define IEEE80211_HE_PHY_CAP6_PARTIAL_BW_EXT_RANGE			0x20
 #define IEEE80211_HE_PHY_CAP6_PARTIAL_BANDWIDTH_DL_MUMIMO		0x40
 #define IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT			0x80
 
-#define IEEE80211_HE_PHY_CAP7_SRP_BASED_SR				0x01
-#define IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR			0x02
+#define IEEE80211_HE_PHY_CAP7_PSR_BASED_SR				0x01
+#define IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_SUPP			0x02
 #define IEEE80211_HE_PHY_CAP7_HE_SU_MU_PPDU_4XLTF_AND_08_US_GI		0x04
 #define IEEE80211_HE_PHY_CAP7_MAX_NC_1					0x08
 #define IEEE80211_HE_PHY_CAP7_MAX_NC_2					0x10
diff --git a/net/mac80211/debugfs_sta.c b/net/mac80211/debugfs_sta.c
index 5a27c61a7b38..d350224d45e8 100644
--- a/net/mac80211/debugfs_sta.c
+++ b/net/mac80211/debugfs_sta.c
@@ -732,15 +732,15 @@ static ssize_t sta_he_capa_read(struct file *file, char __user *userbuf,
 	PFLAG(MAC, 4, BSRP_BQRP_A_MPDU_AGG, "BSRP-BQRP-A-MPDU-AGG");
 	PFLAG(MAC, 4, QTP, "QTP");
 	PFLAG(MAC, 4, BQR, "BQR");
-	PFLAG(MAC, 4, SRP_RESP, "SRP-RESP");
+	PFLAG(MAC, 4, PSR_RESP, "PSR-RESP");
 	PFLAG(MAC, 4, NDP_FB_REP, "NDP-FB-REP");
 	PFLAG(MAC, 4, OPS, "OPS");
 	PFLAG(MAC, 4, AMDSU_IN_AMPDU, "AMSDU-IN-AMPDU");
 
 	PRINT("MULTI-TID-AGG-TX-QOS-%d", ((cap[5] << 1) | (cap[4] >> 7)) & 0x7);
 
-	PFLAG(MAC, 5, SUBCHAN_SELECVITE_TRANSMISSION,
-	      "SUBCHAN-SELECVITE-TRANSMISSION");
+	PFLAG(MAC, 5, SUBCHAN_SELECTIVE_TRANSMISSION,
+	      "SUBCHAN-SELECTIVE-TRANSMISSION");
 	PFLAG(MAC, 5, UL_2x996_TONE_RU, "UL-2x996-TONE-RU");
 	PFLAG(MAC, 5, OM_CTRL_UL_MU_DATA_DIS_RX, "OM-CTRL-UL-MU-DATA-DIS-RX");
 	PFLAG(MAC, 5, HE_DYNAMIC_SM_PS, "HE-DYNAMIC-SM-PS");
@@ -832,8 +832,8 @@ static ssize_t sta_he_capa_read(struct file *file, char __user *userbuf,
 
 	PFLAG(PHY, 3, DCM_MAX_RX_NSS_1, "DCM-MAX-RX-NSS-1");
 	PFLAG(PHY, 3, DCM_MAX_RX_NSS_2, "DCM-MAX-RX-NSS-2");
-	PFLAG(PHY, 3, RX_HE_MU_PPDU_FROM_NON_AP_STA,
-	      "RX-HE-MU-PPDU-FROM-NON-AP-STA");
+	PFLAG(PHY, 3, RX_PARTIAL_BW_SU_IN_20MHZ_MU,
+	      "RX-PARTIAL-BW-SU-IN-20MHZ-MU");
 	PFLAG(PHY, 3, SU_BEAMFORMER, "SU-BEAMFORMER");
 
 	PFLAG(PHY, 4, SU_BEAMFORMEE, "SU-BEAMFORMEE");
@@ -853,16 +853,17 @@ static ssize_t sta_he_capa_read(struct file *file, char __user *userbuf,
 
 	PFLAG(PHY, 6, CODEBOOK_SIZE_42_SU, "CODEBOOK-SIZE-42-SU");
 	PFLAG(PHY, 6, CODEBOOK_SIZE_75_MU, "CODEBOOK-SIZE-75-MU");
-	PFLAG(PHY, 6, TRIG_SU_BEAMFORMER_FB, "TRIG-SU-BEAMFORMER-FB");
-	PFLAG(PHY, 6, TRIG_MU_BEAMFORMER_FB, "TRIG-MU-BEAMFORMER-FB");
+	PFLAG(PHY, 6, TRIG_SU_BEAMFORMING_FB, "TRIG-SU-BEAMFORMING-FB");
+	PFLAG(PHY, 6, TRIG_MU_BEAMFORMING_PARTIAL_BW_FB,
+	      "MU-BEAMFORMING-PARTIAL-BW-FB");
 	PFLAG(PHY, 6, TRIG_CQI_FB, "TRIG-CQI-FB");
 	PFLAG(PHY, 6, PARTIAL_BW_EXT_RANGE, "PARTIAL-BW-EXT-RANGE");
 	PFLAG(PHY, 6, PARTIAL_BANDWIDTH_DL_MUMIMO,
 	      "PARTIAL-BANDWIDTH-DL-MUMIMO");
 	PFLAG(PHY, 6, PPE_THRESHOLD_PRESENT, "PPE-THRESHOLD-PRESENT");
 
-	PFLAG(PHY, 7, SRP_BASED_SR, "SRP-BASED-SR");
-	PFLAG(PHY, 7, POWER_BOOST_FACTOR_AR, "POWER-BOOST-FACTOR-AR");
+	PFLAG(PHY, 7, PSR_BASED_SR, "PSR-BASED-SR");
+	PFLAG(PHY, 7, POWER_BOOST_FACTOR_SUPP, "POWER-BOOST-FACTOR-SUPP");
 	PFLAG(PHY, 7, HE_SU_MU_PPDU_4XLTF_AND_08_US_GI,
 	      "HE-SU-MU-PPDU-4XLTF-AND-08-US-GI");
 	PFLAG_RANGE(PHY, 7, MAX_NC, 0, 1, 1, "MAX-NC-%d");
-- 
2.31.0


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 05/15] cfg80211: don't WARN if a self-managed device doesn't have a regdom
  2021-04-09  9:40 [PATCH 00/15] cfg80211/mac80211 patches from our internal tree 2021-04-09 Luca Coelho
                   ` (3 preceding siblings ...)
  2021-04-09  9:40 ` [PATCH 04/15] wireless: align some HE capabilities with the spec Luca Coelho
@ 2021-04-09  9:40 ` Luca Coelho
  2021-04-09  9:40 ` [PATCH 06/15] mac80211: make ieee80211_vif_to_wdev work when the vif isn't in the driver Luca Coelho
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Luca Coelho @ 2021-04-09  9:40 UTC (permalink / raw)
  To: johannes; +Cc: linux-wireless

From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>

This can happen if it booted in RF-Kill and didn't have a
chance to get its regulatory domain yet.
This can happen for example if hostapd is started on a device
that is blocked by RF-Kill.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 net/wireless/nl80211.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 521d36bb0803..f56307185b8a 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -7742,8 +7742,8 @@ static int nl80211_get_reg_do(struct sk_buff *skb, struct genl_info *info)
 			       REGULATORY_WIPHY_SELF_MANAGED;
 		regdom = get_wiphy_regdom(wiphy);
 
-		/* a self-managed-reg device must have a private regdom */
-		if (WARN_ON(!regdom && self_managed)) {
+		/* a self-managed-reg device should have a private regdom */
+		if (!regdom && self_managed) {
 			nlmsg_free(msg);
 			rtnl_unlock();
 			return -EINVAL;
-- 
2.31.0


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 06/15] mac80211: make ieee80211_vif_to_wdev work when the vif isn't in the driver
  2021-04-09  9:40 [PATCH 00/15] cfg80211/mac80211 patches from our internal tree 2021-04-09 Luca Coelho
                   ` (4 preceding siblings ...)
  2021-04-09  9:40 ` [PATCH 05/15] cfg80211: don't WARN if a self-managed device doesn't have a regdom Luca Coelho
@ 2021-04-09  9:40 ` Luca Coelho
  2021-04-09  9:40 ` [PATCH 07/15] wireless: align HE capabilities A-MPDU Length Exponent Extension Luca Coelho
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Luca Coelho @ 2021-04-09  9:40 UTC (permalink / raw)
  To: johannes; +Cc: linux-wireless

From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>

This will allow the low level driver to get the wdev during
the add_interface flow.
In order to do that, remove a few checks from there and do
not return NULL for vifs that were not yet added to the
driver. Note that all the current callers of this helper
function assume that the vif already exists:
 - The callers from the drivers already have a vif pointer.
 Before this change, ieee80211_vif_to_wdev would return NULL
 in some cases, but those callers don't even check they
 get a non-NULL pointer from ieee80211_vif_to_wdev.
 - The callers from net/mac80211/cfg.c assume the vif is
 already added to the driver as well.

So, this change has no impact on existing callers of this
helper function.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 include/net/mac80211.h |  5 +----
 net/mac80211/util.c    | 10 +---------
 2 files changed, 2 insertions(+), 13 deletions(-)

diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 2d1d629e5d14..d28f5087c8fa 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -1768,10 +1768,7 @@ struct ieee80211_vif *wdev_to_ieee80211_vif(struct wireless_dev *wdev);
  *
  * This can be used by mac80211 drivers with direct cfg80211 APIs
  * (like the vendor commands) that needs to get the wdev for a vif.
- *
- * Note that this function may return %NULL if the given wdev isn't
- * associated with a vif that the driver knows about (e.g. monitor
- * or AP_VLAN interfaces.)
+ * This can also be useful to get the netdev associated to a vif.
  */
 struct wireless_dev *ieee80211_vif_to_wdev(struct ieee80211_vif *vif);
 
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index f080fcf60e45..7e36b7363564 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -888,18 +888,10 @@ EXPORT_SYMBOL_GPL(wdev_to_ieee80211_vif);
 
 struct wireless_dev *ieee80211_vif_to_wdev(struct ieee80211_vif *vif)
 {
-	struct ieee80211_sub_if_data *sdata;
-
 	if (!vif)
 		return NULL;
 
-	sdata = vif_to_sdata(vif);
-
-	if (!ieee80211_sdata_running(sdata) ||
-	    !(sdata->flags & IEEE80211_SDATA_IN_DRIVER))
-		return NULL;
-
-	return &sdata->wdev;
+	return &vif_to_sdata(vif)->wdev;
 }
 EXPORT_SYMBOL_GPL(ieee80211_vif_to_wdev);
 
-- 
2.31.0


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 07/15] wireless: align HE capabilities A-MPDU Length Exponent Extension
  2021-04-09  9:40 [PATCH 00/15] cfg80211/mac80211 patches from our internal tree 2021-04-09 Luca Coelho
                   ` (5 preceding siblings ...)
  2021-04-09  9:40 ` [PATCH 06/15] mac80211: make ieee80211_vif_to_wdev work when the vif isn't in the driver Luca Coelho
@ 2021-04-09  9:40 ` Luca Coelho
  2021-04-09 13:39   ` kernel test robot
  2021-04-10  9:20   ` kernel test robot
  2021-04-09  9:40 ` [PATCH 08/15] cfg80211: allow to specifying a reason for hw_rfkill Luca Coelho
                   ` (7 subsequent siblings)
  14 siblings, 2 replies; 23+ messages in thread
From: Luca Coelho @ 2021-04-09  9:40 UTC (permalink / raw)
  To: johannes; +Cc: linux-wireless

From: Johannes Berg <johannes.berg@intel.com>

The A-MPDU length exponent extension is defined differently in
802.11ax D6.1, align with that.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 .../net/wireless/intel/iwlwifi/iwl-nvm-parse.c   |  4 ++--
 drivers/net/wireless/mac80211_hwsim.c            |  8 ++++----
 include/linux/ieee80211.h                        | 10 ++++------
 net/mac80211/debugfs_sta.c                       | 16 ++++++++--------
 4 files changed, 18 insertions(+), 20 deletions(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
index 632f20d4027d..d2058cdcb0d8 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
@@ -550,7 +550,7 @@ static const struct ieee80211_sband_iftype_data iwl_he_capa[] = {
 					IEEE80211_HE_MAC_CAP2_32BIT_BA_BITMAP,
 				.mac_cap_info[3] =
 					IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
-					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
+					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_2,
 				.mac_cap_info[4] =
 					IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU |
 					IEEE80211_HE_MAC_CAP4_MULTI_TID_AGG_TX_QOS_B39,
@@ -636,7 +636,7 @@ static const struct ieee80211_sband_iftype_data iwl_he_capa[] = {
 					IEEE80211_HE_MAC_CAP2_BSR,
 				.mac_cap_info[3] =
 					IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
-					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
+					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_2,
 				.mac_cap_info[4] =
 					IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU,
 				.mac_cap_info[5] =
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
index fa7d4c20dc13..3039baa43f4c 100644
--- a/drivers/net/wireless/mac80211_hwsim.c
+++ b/drivers/net/wireless/mac80211_hwsim.c
@@ -2795,7 +2795,7 @@ static const struct ieee80211_sband_iftype_data he_capa_2ghz[] = {
 					IEEE80211_HE_MAC_CAP2_ACK_EN,
 				.mac_cap_info[3] =
 					IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
-					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
+					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3,
 				.mac_cap_info[4] = IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU,
 				.phy_cap_info[1] =
 					IEEE80211_HE_PHY_CAP1_PREAMBLE_PUNC_RX_MASK |
@@ -2839,7 +2839,7 @@ static const struct ieee80211_sband_iftype_data he_capa_2ghz[] = {
 					IEEE80211_HE_MAC_CAP2_ACK_EN,
 				.mac_cap_info[3] =
 					IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
-					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
+					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3,
 				.mac_cap_info[4] = IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU,
 				.phy_cap_info[1] =
 					IEEE80211_HE_PHY_CAP1_PREAMBLE_PUNC_RX_MASK |
@@ -2885,7 +2885,7 @@ static const struct ieee80211_sband_iftype_data he_capa_5ghz[] = {
 					IEEE80211_HE_MAC_CAP2_ACK_EN,
 				.mac_cap_info[3] =
 					IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
-					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
+					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3,
 				.mac_cap_info[4] = IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU,
 				.phy_cap_info[0] =
 					IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G |
@@ -2933,7 +2933,7 @@ static const struct ieee80211_sband_iftype_data he_capa_5ghz[] = {
 					IEEE80211_HE_MAC_CAP2_ACK_EN,
 				.mac_cap_info[3] =
 					IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
-					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2,
+					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3,
 				.mac_cap_info[4] = IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU,
 				.phy_cap_info[0] =
 					IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G |
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 0c15fb64e7c2..9aa6a6c02100 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -2006,17 +2006,15 @@ int ieee80211_get_vht_max_nss(struct ieee80211_vht_cap *cap,
  * A-MDPU Length Exponent field in the HT capabilities, VHT capabilities and the
  * same field in the HE capabilities.
  */
-#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_USE_VHT	0x00
-#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_1		0x08
-#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2		0x10
-#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_RESERVED	0x18
+#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_0		0x00
+#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_1		0x08
+#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_2		0x10
+#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3		0x18
 #define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_MASK		0x18
 #define IEEE80211_HE_MAC_CAP3_AMSDU_FRAG			0x20
 #define IEEE80211_HE_MAC_CAP3_FLEX_TWT_SCHED			0x40
 #define IEEE80211_HE_MAC_CAP3_RX_CTRL_FRAME_TO_MULTIBSS		0x80
 
-#define IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT		3
-
 #define IEEE80211_HE_MAC_CAP4_BSRP_BQRP_A_MPDU_AGG		0x01
 #define IEEE80211_HE_MAC_CAP4_QTP				0x02
 #define IEEE80211_HE_MAC_CAP4_BQR				0x04
diff --git a/net/mac80211/debugfs_sta.c b/net/mac80211/debugfs_sta.c
index d350224d45e8..25b3d4822aed 100644
--- a/net/mac80211/debugfs_sta.c
+++ b/net/mac80211/debugfs_sta.c
@@ -711,17 +711,17 @@ static ssize_t sta_he_capa_read(struct file *file, char __user *userbuf,
 	PFLAG(MAC, 3, OFDMA_RA, "OFDMA-RA");
 
 	switch (cap[3] & IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_MASK) {
-	case IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_USE_VHT:
-		PRINT("MAX-AMPDU-LEN-EXP-USE-VHT");
+	case IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_0:
+		PRINT("MAX-AMPDU-LEN-EXP-USE-EXT-0");
 		break;
-	case IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_1:
-		PRINT("MAX-AMPDU-LEN-EXP-VHT-1");
+	case IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_1:
+		PRINT("MAX-AMPDU-LEN-EXP-VHT-EXT-1");
 		break;
-	case IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_VHT_2:
-		PRINT("MAX-AMPDU-LEN-EXP-VHT-2");
+	case IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_2:
+		PRINT("MAX-AMPDU-LEN-EXP-VHT-EXT-2");
 		break;
-	case IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_RESERVED:
-		PRINT("MAX-AMPDU-LEN-EXP-RESERVED");
+	case IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3:
+		PRINT("MAX-AMPDU-LEN-EXP-VHT-EXT-3");
 		break;
 	}
 
-- 
2.31.0


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 08/15] cfg80211: allow to specifying a reason for hw_rfkill
  2021-04-09  9:40 [PATCH 00/15] cfg80211/mac80211 patches from our internal tree 2021-04-09 Luca Coelho
                   ` (6 preceding siblings ...)
  2021-04-09  9:40 ` [PATCH 07/15] wireless: align HE capabilities A-MPDU Length Exponent Extension Luca Coelho
@ 2021-04-09  9:40 ` Luca Coelho
  2021-04-09  9:47   ` Johannes Berg
  2021-04-09  9:40 ` [PATCH 09/15] cfg80211: Remove wrong RNR IE validation check Luca Coelho
                   ` (6 subsequent siblings)
  14 siblings, 1 reply; 23+ messages in thread
From: Luca Coelho @ 2021-04-09  9:40 UTC (permalink / raw)
  To: johannes; +Cc: linux-wireless

From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>

rfkill now allows to report a reason for the hw_rfkill state.
Allow cfg80211 drivers to specify this reason.
Keep the current API to use the default reason
(RFKILL_HARD_BLOCK_SIGNAL).

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 backport-include/net/cfg80211.h | 17 +++++++++++++++++
 include/net/cfg80211.h          | 11 ++++++++++-
 net/wireless/core.c             |  7 ++++---
 3 files changed, 31 insertions(+), 4 deletions(-)
 create mode 100644 backport-include/net/cfg80211.h

diff --git a/backport-include/net/cfg80211.h b/backport-include/net/cfg80211.h
new file mode 100644
index 000000000000..9c55ba7feb4b
--- /dev/null
+++ b/backport-include/net/cfg80211.h
@@ -0,0 +1,17 @@
+#ifndef __BACKPORT_CFG80211_
+#define __BACKPORT_CFG80211_
+
+#if LINUX_VERSION_IS_LESS(5,11,0)
+/* This is really really awkward but we need to include include/linux/rkfill.h
+ * here only for backport purposes. There is content in
+ * backport-include/linux/rfkill.h that should have gone
+ * to uapi/linux/rfkill.h but we couldn't put it there because
+ * include_next gets totally confused and can't include the right
+ * file. So we had to put that content in linux/rfkill.h. In a real
+ * kernel we wouldn't need to include this from cfg80211.h.
+ */
+#include <linux/rfkill.h>
+#endif
+#include_next <net/cfg80211.h>
+
+#endif /* __BACKPORT_CFG80211 */
diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 911fae42b0c0..955a4f711fdd 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -10,6 +10,7 @@
  * Copyright (C) 2018-2020 Intel Corporation
  */
 
+#include <uapi/linux/rfkill.h>
 #include <linux/ethtool.h>
 #include <linux/netdevice.h>
 #include <linux/debugfs.h>
@@ -6636,8 +6637,16 @@ void cfg80211_notify_new_peer_candidate(struct net_device *dev,
  * wiphy_rfkill_set_hw_state - notify cfg80211 about hw block state
  * @wiphy: the wiphy
  * @blocked: block status
+ * @reason: one of reasons in &enum rfkill_hard_block_reasons
  */
-void wiphy_rfkill_set_hw_state(struct wiphy *wiphy, bool blocked);
+void wiphy_rfkill_set_hw_state_reason(struct wiphy *wiphy, bool blocked,
+				      enum rfkill_hard_block_reasons reason);
+
+static inline void wiphy_rfkill_set_hw_state(struct wiphy *wiphy, bool blocked)
+{
+	wiphy_rfkill_set_hw_state_reason(wiphy, blocked,
+					 RFKILL_HARD_BLOCK_SIGNAL);
+}
 
 /**
  * wiphy_rfkill_start_polling - start polling rfkill
diff --git a/net/wireless/core.c b/net/wireless/core.c
index a2785379df6e..adfbcb33fb8f 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -1092,14 +1092,15 @@ void wiphy_free(struct wiphy *wiphy)
 }
 EXPORT_SYMBOL(wiphy_free);
 
-void wiphy_rfkill_set_hw_state(struct wiphy *wiphy, bool blocked)
+void wiphy_rfkill_set_hw_state_reason(struct wiphy *wiphy, bool blocked,
+				      enum rfkill_hard_block_reasons reason)
 {
 	struct cfg80211_registered_device *rdev = wiphy_to_rdev(wiphy);
 
-	if (rfkill_set_hw_state(rdev->rfkill, blocked))
+	if (rfkill_set_hw_state_reason(rdev->rfkill, blocked, reason))
 		schedule_work(&rdev->rfkill_block);
 }
-EXPORT_SYMBOL(wiphy_rfkill_set_hw_state);
+EXPORT_SYMBOL(wiphy_rfkill_set_hw_state_reason);
 
 void cfg80211_cqm_config_free(struct wireless_dev *wdev)
 {
-- 
2.31.0


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 09/15] cfg80211: Remove wrong RNR IE validation check
  2021-04-09  9:40 [PATCH 00/15] cfg80211/mac80211 patches from our internal tree 2021-04-09 Luca Coelho
                   ` (7 preceding siblings ...)
  2021-04-09  9:40 ` [PATCH 08/15] cfg80211: allow to specifying a reason for hw_rfkill Luca Coelho
@ 2021-04-09  9:40 ` Luca Coelho
  2021-04-09  9:40 ` [PATCH 10/15] mac80211: bail out if cipher schemes are invalid Luca Coelho
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Luca Coelho @ 2021-04-09  9:40 UTC (permalink / raw)
  To: johannes; +Cc: linux-wireless

From: Ilan Peer <ilan.peer@intel.com>

Remove a wrong length check for RNR information element as it
can have arbitrary length.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 net/wireless/scan.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/wireless/scan.c b/net/wireless/scan.c
index 019952d4fc7d..c3b51efff5c6 100644
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
@@ -589,7 +589,7 @@ static int cfg80211_parse_colocated_ap(const struct cfg80211_bss_ies *ies,
 
 	elem = cfg80211_find_elem(WLAN_EID_REDUCED_NEIGHBOR_REPORT, ies->data,
 				  ies->len);
-	if (!elem || elem->datalen > IEEE80211_MAX_SSID_LEN)
+	if (!elem)
 		return 0;
 
 	pos = elem->data;
-- 
2.31.0


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 10/15] mac80211: bail out if cipher schemes are invalid
  2021-04-09  9:40 [PATCH 00/15] cfg80211/mac80211 patches from our internal tree 2021-04-09 Luca Coelho
                   ` (8 preceding siblings ...)
  2021-04-09  9:40 ` [PATCH 09/15] cfg80211: Remove wrong RNR IE validation check Luca Coelho
@ 2021-04-09  9:40 ` Luca Coelho
  2021-04-09  9:40 ` [PATCH 11/15] wireless: fix spelling of A-MSDU in HE capabilities Luca Coelho
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Luca Coelho @ 2021-04-09  9:40 UTC (permalink / raw)
  To: johannes; +Cc: linux-wireless

From: Johannes Berg <johannes.berg@intel.com>

If any of the cipher schemes specified by the driver are invalid, bail
out and fail the registration rather than just warning.  Otherwise, we
might later crash when we try to use the invalid cipher scheme, e.g.
if the hdr_len is (significantly) less than the pn_offs + pn_len, we'd
have an out-of-bounds access in RX validation.

Fixes: 2475b1cc0d52 ("mac80211: add generic cipher scheme support")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 net/mac80211/main.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index f27aed37ed2b..ba624cb250b3 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -1137,8 +1137,11 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
 	if (local->hw.wiphy->max_scan_ie_len)
 		local->hw.wiphy->max_scan_ie_len -= local->scan_ies_len;
 
-	WARN_ON(!ieee80211_cs_list_valid(local->hw.cipher_schemes,
-					 local->hw.n_cipher_schemes));
+	if (WARN_ON(!ieee80211_cs_list_valid(local->hw.cipher_schemes,
+					     local->hw.n_cipher_schemes))) {
+		result = -EINVAL;
+		goto fail_workqueue;
+	}
 
 	result = ieee80211_init_cipher_suites(local);
 	if (result < 0)
-- 
2.31.0


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 11/15] wireless: fix spelling of A-MSDU in HE capabilities
  2021-04-09  9:40 [PATCH 00/15] cfg80211/mac80211 patches from our internal tree 2021-04-09 Luca Coelho
                   ` (9 preceding siblings ...)
  2021-04-09  9:40 ` [PATCH 10/15] mac80211: bail out if cipher schemes are invalid Luca Coelho
@ 2021-04-09  9:40 ` Luca Coelho
  2021-04-09 19:02   ` kernel test robot
  2021-04-09  9:40 ` [PATCH 12/15] nl80211/cfg80211: add a flag to negotiate for LMR feedback in NDP ranging Luca Coelho
                   ` (3 subsequent siblings)
  14 siblings, 1 reply; 23+ messages in thread
From: Luca Coelho @ 2021-04-09  9:40 UTC (permalink / raw)
  To: johannes; +Cc: linux-wireless

From: Johannes Berg <johannes.berg@intel.com>

In the HE capabilities, spell A-MSDU correctly, not "A-MDSU".

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c | 2 +-
 drivers/net/wireless/mac80211_hwsim.c              | 8 ++++----
 include/linux/ieee80211.h                          | 2 +-
 net/mac80211/debugfs_sta.c                         | 2 +-
 4 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
index d2058cdcb0d8..c7ea5b35f9f9 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c
@@ -552,7 +552,7 @@ static const struct ieee80211_sband_iftype_data iwl_he_capa[] = {
 					IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
 					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_2,
 				.mac_cap_info[4] =
-					IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU |
+					IEEE80211_HE_MAC_CAP4_AMSDU_IN_AMPDU |
 					IEEE80211_HE_MAC_CAP4_MULTI_TID_AGG_TX_QOS_B39,
 				.mac_cap_info[5] =
 					IEEE80211_HE_MAC_CAP5_MULTI_TID_AGG_TX_QOS_B40 |
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
index 3039baa43f4c..f85a879d738b 100644
--- a/drivers/net/wireless/mac80211_hwsim.c
+++ b/drivers/net/wireless/mac80211_hwsim.c
@@ -2796,7 +2796,7 @@ static const struct ieee80211_sband_iftype_data he_capa_2ghz[] = {
 				.mac_cap_info[3] =
 					IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
 					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3,
-				.mac_cap_info[4] = IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU,
+				.mac_cap_info[4] = IEEE80211_HE_MAC_CAP4_AMSDU_IN_AMPDU,
 				.phy_cap_info[1] =
 					IEEE80211_HE_PHY_CAP1_PREAMBLE_PUNC_RX_MASK |
 					IEEE80211_HE_PHY_CAP1_DEVICE_CLASS_A |
@@ -2840,7 +2840,7 @@ static const struct ieee80211_sband_iftype_data he_capa_2ghz[] = {
 				.mac_cap_info[3] =
 					IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
 					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3,
-				.mac_cap_info[4] = IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU,
+				.mac_cap_info[4] = IEEE80211_HE_MAC_CAP4_AMSDU_IN_AMPDU,
 				.phy_cap_info[1] =
 					IEEE80211_HE_PHY_CAP1_PREAMBLE_PUNC_RX_MASK |
 					IEEE80211_HE_PHY_CAP1_DEVICE_CLASS_A |
@@ -2886,7 +2886,7 @@ static const struct ieee80211_sband_iftype_data he_capa_5ghz[] = {
 				.mac_cap_info[3] =
 					IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
 					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3,
-				.mac_cap_info[4] = IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU,
+				.mac_cap_info[4] = IEEE80211_HE_MAC_CAP4_AMSDU_IN_AMPDU,
 				.phy_cap_info[0] =
 					IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G |
 					IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G |
@@ -2934,7 +2934,7 @@ static const struct ieee80211_sband_iftype_data he_capa_5ghz[] = {
 				.mac_cap_info[3] =
 					IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
 					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3,
-				.mac_cap_info[4] = IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU,
+				.mac_cap_info[4] = IEEE80211_HE_MAC_CAP4_AMSDU_IN_AMPDU,
 				.phy_cap_info[0] =
 					IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G |
 					IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G |
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 9aa6a6c02100..63252fba3f90 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -2021,7 +2021,7 @@ int ieee80211_get_vht_max_nss(struct ieee80211_vht_cap *cap,
 #define IEEE80211_HE_MAC_CAP4_PSR_RESP				0x08
 #define IEEE80211_HE_MAC_CAP4_NDP_FB_REP			0x10
 #define IEEE80211_HE_MAC_CAP4_OPS				0x20
-#define IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU			0x40
+#define IEEE80211_HE_MAC_CAP4_AMSDU_IN_AMPDU			0x40
 /* Multi TID agg TX is split between byte #4 and #5
  * The value is a combination of B39,B40,B41
  */
diff --git a/net/mac80211/debugfs_sta.c b/net/mac80211/debugfs_sta.c
index 25b3d4822aed..936c9dfa86c8 100644
--- a/net/mac80211/debugfs_sta.c
+++ b/net/mac80211/debugfs_sta.c
@@ -735,7 +735,7 @@ static ssize_t sta_he_capa_read(struct file *file, char __user *userbuf,
 	PFLAG(MAC, 4, PSR_RESP, "PSR-RESP");
 	PFLAG(MAC, 4, NDP_FB_REP, "NDP-FB-REP");
 	PFLAG(MAC, 4, OPS, "OPS");
-	PFLAG(MAC, 4, AMDSU_IN_AMPDU, "AMSDU-IN-AMPDU");
+	PFLAG(MAC, 4, AMSDU_IN_AMPDU, "AMSDU-IN-AMPDU");
 
 	PRINT("MULTI-TID-AGG-TX-QOS-%d", ((cap[5] << 1) | (cap[4] >> 7)) & 0x7);
 
-- 
2.31.0


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 12/15] nl80211/cfg80211: add a flag to negotiate for LMR feedback in NDP ranging
  2021-04-09  9:40 [PATCH 00/15] cfg80211/mac80211 patches from our internal tree 2021-04-09 Luca Coelho
                   ` (10 preceding siblings ...)
  2021-04-09  9:40 ` [PATCH 11/15] wireless: fix spelling of A-MSDU in HE capabilities Luca Coelho
@ 2021-04-09  9:40 ` Luca Coelho
  2021-04-09  9:40 ` [PATCH 13/15] ieee80211: add the values of ranging parameters max LTF total field Luca Coelho
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 23+ messages in thread
From: Luca Coelho @ 2021-04-09  9:40 UTC (permalink / raw)
  To: johannes; +Cc: linux-wireless

From: Avraham Stern <avraham.stern@intel.com>

Add a flag that indicates that the ISTA shall indicate support for
LMR feedback in NDP ranging negotiation.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 include/net/cfg80211.h       |  5 ++++-
 include/uapi/linux/nl80211.h |  4 ++++
 net/wireless/nl80211.c       |  1 +
 net/wireless/pmsr.c          | 12 +++++++++++-
 4 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h
index 955a4f711fdd..78aeeefe77b6 100644
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
@@ -3521,6 +3521,8 @@ struct cfg80211_pmsr_result {
  * @non_trigger_based: use non trigger based ranging for the measurement
  *		 If neither @trigger_based nor @non_trigger_based is set,
  *		 EDCA based ranging will be used.
+ * @lmr_feedback: negotiate for I2R LMR feedback. Only valid if either
+ *		 @trigger_based or @non_trigger_based is set.
  *
  * See also nl80211 for the respective attribute documentation.
  */
@@ -3532,7 +3534,8 @@ struct cfg80211_pmsr_ftm_request_peer {
 	   request_lci:1,
 	   request_civicloc:1,
 	   trigger_based:1,
-	   non_trigger_based:1;
+	   non_trigger_based:1,
+	   lmr_feedback:1;
 	u8 num_bursts_exp;
 	u8 burst_duration;
 	u8 ftms_per_burst;
diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index 325f2c621840..bc41cea9f2fa 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -6904,6 +6904,9 @@ enum nl80211_peer_measurement_ftm_capa {
  *      if neither %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED nor
  *	%NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set, EDCA based
  *	ranging will be used.
+ * @NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK: negotiate for LMR feedback. Only
+ *	valid if either %NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED or
+ *	%NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED is set.
  *
  * @NUM_NL80211_PMSR_FTM_REQ_ATTR: internal
  * @NL80211_PMSR_FTM_REQ_ATTR_MAX: highest attribute number
@@ -6922,6 +6925,7 @@ enum nl80211_peer_measurement_ftm_req {
 	NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC,
 	NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED,
 	NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED,
+	NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK,
 
 	/* keep last */
 	NUM_NL80211_PMSR_FTM_REQ_ATTR,
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index f56307185b8a..c5d1c93ddfae 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -309,6 +309,7 @@ nl80211_pmsr_ftm_req_attr_policy[NL80211_PMSR_FTM_REQ_ATTR_MAX + 1] = {
 	[NL80211_PMSR_FTM_REQ_ATTR_REQUEST_CIVICLOC] = { .type = NLA_FLAG },
 	[NL80211_PMSR_FTM_REQ_ATTR_TRIGGER_BASED] = { .type = NLA_FLAG },
 	[NL80211_PMSR_FTM_REQ_ATTR_NON_TRIGGER_BASED] = { .type = NLA_FLAG },
+	[NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK] = { .type = NLA_FLAG },
 };
 
 static const struct nla_policy
diff --git a/net/wireless/pmsr.c b/net/wireless/pmsr.c
index a95c79d18349..d570453b6dad 100644
--- a/net/wireless/pmsr.c
+++ b/net/wireless/pmsr.c
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 */
 /*
- * Copyright (C) 2018 - 2019 Intel Corporation
+ * Copyright (C) 2018 - 2020 Intel Corporation
  */
 #ifndef __PMSR_H
 #define __PMSR_H
@@ -158,6 +158,16 @@ static int pmsr_parse_ftm(struct cfg80211_registered_device *rdev,
 		return -EINVAL;
 	}
 
+	out->ftm.lmr_feedback =
+		!!tb[NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK];
+	if (!out->ftm.trigger_based && !out->ftm.non_trigger_based &&
+	    out->ftm.lmr_feedback) {
+		NL_SET_ERR_MSG_ATTR(info->extack,
+				    tb[NL80211_PMSR_FTM_REQ_ATTR_LMR_FEEDBACK],
+				    "FTM: LMR feedback set for EDCA based ranging");
+		return -EINVAL;
+	}
+
 	return 0;
 }
 
-- 
2.31.0


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 13/15] ieee80211: add the values of ranging parameters max LTF total field
  2021-04-09  9:40 [PATCH 00/15] cfg80211/mac80211 patches from our internal tree 2021-04-09 Luca Coelho
                   ` (11 preceding siblings ...)
  2021-04-09  9:40 ` [PATCH 12/15] nl80211/cfg80211: add a flag to negotiate for LMR feedback in NDP ranging Luca Coelho
@ 2021-04-09  9:40 ` Luca Coelho
  2021-04-09  9:40 ` [PATCH 14/15] mac80211: clear the beacon's CRC after channel switch Luca Coelho
  2021-04-09  9:40 ` [PATCH 15/15] mac80211: aes_cmac: check crypto_shash_setkey() return value Luca Coelho
  14 siblings, 0 replies; 23+ messages in thread
From: Luca Coelho @ 2021-04-09  9:40 UTC (permalink / raw)
  To: johannes; +Cc: linux-wireless

From: Avraham Stern <avraham.stern@intel.com>

Add an enum with the values of the ranging parameters max LTF total
field, as defined in IEEE802.11az_D2.6, table Table 9-322h23fc.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 include/linux/ieee80211.h | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 63252fba3f90..2967437f1b11 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -3859,4 +3859,11 @@ struct ieee80211_neighbor_ap_info {
        u8 channel;
 } __packed;
 
+enum ieee80211_range_params_max_total_ltf {
+	IEEE80211_RANGE_PARAMS_MAX_TOTAL_LTF_4 = 0,
+	IEEE80211_RANGE_PARAMS_MAX_TOTAL_LTF_8,
+	IEEE80211_RANGE_PARAMS_MAX_TOTAL_LTF_16,
+	IEEE80211_RANGE_PARAMS_MAX_TOTAL_LTF_UNSPECIFIED,
+};
+
 #endif /* LINUX_IEEE80211_H */
-- 
2.31.0


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 14/15] mac80211: clear the beacon's CRC after channel switch
  2021-04-09  9:40 [PATCH 00/15] cfg80211/mac80211 patches from our internal tree 2021-04-09 Luca Coelho
                   ` (12 preceding siblings ...)
  2021-04-09  9:40 ` [PATCH 13/15] ieee80211: add the values of ranging parameters max LTF total field Luca Coelho
@ 2021-04-09  9:40 ` Luca Coelho
  2021-04-09  9:40 ` [PATCH 15/15] mac80211: aes_cmac: check crypto_shash_setkey() return value Luca Coelho
  14 siblings, 0 replies; 23+ messages in thread
From: Luca Coelho @ 2021-04-09  9:40 UTC (permalink / raw)
  To: johannes; +Cc: linux-wireless

From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>

After channel switch, we should consider any beacon with a
CSA IE as a new switch. If the CSA IE is a leftover from
before the switch that the AP forgot to remove, we'll get
a CSA-to-Self.

This caused issues in iwlwifi where the firmware saw a beacon
with a CSA-to-Self with mode = 1 on the new channel after a
switch. The firmware considered this a new switch and closed
its queues. Since the beacon didn't change between before and
after the switch, we wouldn't handle it (the CRC is the same)
and we wouldn't let the firmware open its queues again or
disconnect if the CSA IE stays for too long.

Clear the CRC valid state after we switch to make sure that
we handle the beacon and handle the CSA IE as required.

Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 net/mac80211/mlme.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 9b85adbf2cc2..792a92feeaeb 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1295,6 +1295,11 @@ static void ieee80211_chswitch_post_beacon(struct ieee80211_sub_if_data *sdata)
 
 	sdata->vif.csa_active = false;
 	ifmgd->csa_waiting_bcn = false;
+	/*
+	 * If the CSA IE is still present on the beacon after the switch,
+	 * we need to consider it as a new CSA (possibly to self).
+	 */
+	ifmgd->beacon_crc_valid = false;
 
 	ret = drv_post_channel_switch(sdata);
 	if (ret) {
-- 
2.31.0


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 15/15] mac80211: aes_cmac: check crypto_shash_setkey() return value
  2021-04-09  9:40 [PATCH 00/15] cfg80211/mac80211 patches from our internal tree 2021-04-09 Luca Coelho
                   ` (13 preceding siblings ...)
  2021-04-09  9:40 ` [PATCH 14/15] mac80211: clear the beacon's CRC after channel switch Luca Coelho
@ 2021-04-09  9:40 ` Luca Coelho
  14 siblings, 0 replies; 23+ messages in thread
From: Luca Coelho @ 2021-04-09  9:40 UTC (permalink / raw)
  To: johannes; +Cc: linux-wireless

From: Johannes Berg <johannes.berg@intel.com>

As crypto_shash_setkey() can fail, we should check the return value.

Addresses-Coverity-ID: 1401813 ("Unchecked return value")
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 net/mac80211/aes_cmac.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/net/mac80211/aes_cmac.c b/net/mac80211/aes_cmac.c
index b31f1021ad9c..48c04f89de20 100644
--- a/net/mac80211/aes_cmac.c
+++ b/net/mac80211/aes_cmac.c
@@ -2,6 +2,7 @@
 /*
  * AES-128-CMAC with TLen 16 for IEEE 802.11w BIP
  * Copyright 2008, Jouni Malinen <j@w1.fi>
+ * Copyright (C) 2020 Intel Corporation
  */
 
 #include <linux/kernel.h>
@@ -73,8 +74,14 @@ struct crypto_shash *ieee80211_aes_cmac_key_setup(const u8 key[],
 	struct crypto_shash *tfm;
 
 	tfm = crypto_alloc_shash("cmac(aes)", 0, 0);
-	if (!IS_ERR(tfm))
-		crypto_shash_setkey(tfm, key, key_len);
+	if (!IS_ERR(tfm)) {
+		int err = crypto_shash_setkey(tfm, key, key_len);
+
+		if (err) {
+			crypto_free_shash(tfm);
+			return ERR_PTR(err);
+		}
+	}
 
 	return tfm;
 }
-- 
2.31.0


^ permalink raw reply related	[flat|nested] 23+ messages in thread

* Re: [PATCH 08/15] cfg80211: allow to specifying a reason for hw_rfkill
  2021-04-09  9:40 ` [PATCH 08/15] cfg80211: allow to specifying a reason for hw_rfkill Luca Coelho
@ 2021-04-09  9:47   ` Johannes Berg
  2021-04-09  9:55     ` Luca Coelho
  0 siblings, 1 reply; 23+ messages in thread
From: Johannes Berg @ 2021-04-09  9:47 UTC (permalink / raw)
  To: Luca Coelho; +Cc: linux-wireless

On Fri, 2021-04-09 at 12:40 +0300, Luca Coelho wrote:
> 
> ---
>  backport-include/net/cfg80211.h | 17 +++++++++++++++++

Umm :)

johannes


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 08/15] cfg80211: allow to specifying a reason for hw_rfkill
  2021-04-09  9:47   ` Johannes Berg
@ 2021-04-09  9:55     ` Luca Coelho
  0 siblings, 0 replies; 23+ messages in thread
From: Luca Coelho @ 2021-04-09  9:55 UTC (permalink / raw)
  To: Johannes Berg; +Cc: linux-wireless

On Fri, 2021-04-09 at 11:47 +0200, Johannes Berg wrote:
> On Fri, 2021-04-09 at 12:40 +0300, Luca Coelho wrote:
> > 
> > ---
> >  backport-include/net/cfg80211.h | 17 +++++++++++++++++
> 
> Umm :)

Ooops, sorry.  I usually cut them off, but since this was a new file, I
missed it.  Wonder what people would say if they suddenly saw a new
directory at the root of the tree! 8-|

--
Luca.


^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 04/15] wireless: align some HE capabilities with the spec
  2021-04-09  9:40 ` [PATCH 04/15] wireless: align some HE capabilities with the spec Luca Coelho
@ 2021-04-09 12:24   ` kernel test robot
  2021-04-09 23:31   ` kernel test robot
  1 sibling, 0 replies; 23+ messages in thread
From: kernel test robot @ 2021-04-09 12:24 UTC (permalink / raw)
  To: Luca Coelho, johannes; +Cc: kbuild-all, linux-wireless

[-- Attachment #1: Type: text/plain, Size: 9731 bytes --]

Hi Luca,

I love your patch! Yet something to improve:

[auto build test ERROR on mac80211-next/master]
[also build test ERROR on mac80211/master wireless-drivers-next/master wireless-drivers/master v5.12-rc6 next-20210408]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Luca-Coelho/cfg80211-mac80211-patches-from-our-internal-tree-2021-04-09/20210409-181210
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git master
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/13582e33bee8630eb3f2d4299b14e989bc06d297
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Luca-Coelho/cfg80211-mac80211-patches-from-our-internal-tree-2021-04-09/20210409-181210
        git checkout 13582e33bee8630eb3f2d4299b14e989bc06d297
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/net/wireless/ath/ath11k/mac.c: In function 'ath11k_mac_filter_he_cap_mesh':
>> drivers/net/wireless/ath/ath11k/mac.c:3810:6: error: 'IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECVITE_TRANSMISSION' undeclared (first use in this function); did you mean 'IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECTIVE_TRANSMISSION'?
    3810 |  m = IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECVITE_TRANSMISSION |
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |      IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECTIVE_TRANSMISSION
   drivers/net/wireless/ath/ath11k/mac.c:3810:6: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/net/wireless/ath/ath11k/mac.c:3820:6: error: 'IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA' undeclared (first use in this function)
    3820 |  m = IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA |
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/wireless/ath/ath11k/mac.c:3832:6: error: 'IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB' undeclared (first use in this function); did you mean 'IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB'?
    3832 |      IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB |
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |      IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB
>> drivers/net/wireless/ath/ath11k/mac.c:3837:6: error: 'IEEE80211_HE_PHY_CAP7_SRP_BASED_SR' undeclared (first use in this function); did you mean 'IEEE80211_HE_PHY_CAP7_PSR_BASED_SR'?
    3837 |  m = IEEE80211_HE_PHY_CAP7_SRP_BASED_SR |
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |      IEEE80211_HE_PHY_CAP7_PSR_BASED_SR
>> drivers/net/wireless/ath/ath11k/mac.c:3838:6: error: 'IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR' undeclared (first use in this function); did you mean 'IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_SUPP'?
    3838 |      IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR |
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |      IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_SUPP


vim +3810 drivers/net/wireless/ath/ath11k/mac.c

9f056ed8ee01ad John Crispin   2019-11-25  3786  
13591a1c3899cf Sven Eckelmann 2019-12-10  3787  static void
13591a1c3899cf Sven Eckelmann 2019-12-10  3788  ath11k_mac_filter_he_cap_mesh(struct ieee80211_he_cap_elem *he_cap_elem)
13591a1c3899cf Sven Eckelmann 2019-12-10  3789  {
13591a1c3899cf Sven Eckelmann 2019-12-10  3790  	u8 m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3791  
13591a1c3899cf Sven Eckelmann 2019-12-10  3792  	m = IEEE80211_HE_MAC_CAP0_TWT_RES |
13591a1c3899cf Sven Eckelmann 2019-12-10  3793  	    IEEE80211_HE_MAC_CAP0_TWT_REQ;
13591a1c3899cf Sven Eckelmann 2019-12-10  3794  	he_cap_elem->mac_cap_info[0] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3795  
13591a1c3899cf Sven Eckelmann 2019-12-10  3796  	m = IEEE80211_HE_MAC_CAP2_TRS |
13591a1c3899cf Sven Eckelmann 2019-12-10  3797  	    IEEE80211_HE_MAC_CAP2_BCAST_TWT |
13591a1c3899cf Sven Eckelmann 2019-12-10  3798  	    IEEE80211_HE_MAC_CAP2_MU_CASCADING;
13591a1c3899cf Sven Eckelmann 2019-12-10  3799  	he_cap_elem->mac_cap_info[2] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3800  
13591a1c3899cf Sven Eckelmann 2019-12-10  3801  	m = IEEE80211_HE_MAC_CAP3_FLEX_TWT_SCHED |
13591a1c3899cf Sven Eckelmann 2019-12-10  3802  	    IEEE80211_HE_MAC_CAP2_BCAST_TWT |
13591a1c3899cf Sven Eckelmann 2019-12-10  3803  	    IEEE80211_HE_MAC_CAP2_MU_CASCADING;
13591a1c3899cf Sven Eckelmann 2019-12-10  3804  	he_cap_elem->mac_cap_info[3] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3805  
13591a1c3899cf Sven Eckelmann 2019-12-10  3806  	m = IEEE80211_HE_MAC_CAP4_BSRP_BQRP_A_MPDU_AGG |
13591a1c3899cf Sven Eckelmann 2019-12-10  3807  	    IEEE80211_HE_MAC_CAP4_BQR;
13591a1c3899cf Sven Eckelmann 2019-12-10  3808  	he_cap_elem->mac_cap_info[4] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3809  
13591a1c3899cf Sven Eckelmann 2019-12-10 @3810  	m = IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECVITE_TRANSMISSION |
13591a1c3899cf Sven Eckelmann 2019-12-10  3811  	    IEEE80211_HE_MAC_CAP5_UL_2x996_TONE_RU |
13591a1c3899cf Sven Eckelmann 2019-12-10  3812  	    IEEE80211_HE_MAC_CAP5_PUNCTURED_SOUNDING |
13591a1c3899cf Sven Eckelmann 2019-12-10  3813  	    IEEE80211_HE_MAC_CAP5_HT_VHT_TRIG_FRAME_RX;
13591a1c3899cf Sven Eckelmann 2019-12-10  3814  	he_cap_elem->mac_cap_info[5] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3815  
13591a1c3899cf Sven Eckelmann 2019-12-10  3816  	m = IEEE80211_HE_PHY_CAP2_UL_MU_FULL_MU_MIMO |
13591a1c3899cf Sven Eckelmann 2019-12-10  3817  	    IEEE80211_HE_PHY_CAP2_UL_MU_PARTIAL_MU_MIMO;
13591a1c3899cf Sven Eckelmann 2019-12-10  3818  	he_cap_elem->phy_cap_info[2] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3819  
13591a1c3899cf Sven Eckelmann 2019-12-10 @3820  	m = IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA |
13591a1c3899cf Sven Eckelmann 2019-12-10  3821  	    IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_TX_MASK |
13591a1c3899cf Sven Eckelmann 2019-12-10  3822  	    IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_MASK;
13591a1c3899cf Sven Eckelmann 2019-12-10  3823  	he_cap_elem->phy_cap_info[3] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3824  
13591a1c3899cf Sven Eckelmann 2019-12-10  3825  	m = IEEE80211_HE_PHY_CAP4_MU_BEAMFORMER;
13591a1c3899cf Sven Eckelmann 2019-12-10  3826  	he_cap_elem->phy_cap_info[4] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3827  
13591a1c3899cf Sven Eckelmann 2019-12-10  3828  	m = IEEE80211_HE_PHY_CAP5_NG16_MU_FEEDBACK;
13591a1c3899cf Sven Eckelmann 2019-12-10  3829  	he_cap_elem->phy_cap_info[5] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3830  
13591a1c3899cf Sven Eckelmann 2019-12-10  3831  	m = IEEE80211_HE_PHY_CAP6_CODEBOOK_SIZE_75_MU |
13591a1c3899cf Sven Eckelmann 2019-12-10 @3832  	    IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB |
13591a1c3899cf Sven Eckelmann 2019-12-10  3833  	    IEEE80211_HE_PHY_CAP6_TRIG_CQI_FB |
13591a1c3899cf Sven Eckelmann 2019-12-10  3834  	    IEEE80211_HE_PHY_CAP6_PARTIAL_BANDWIDTH_DL_MUMIMO;
13591a1c3899cf Sven Eckelmann 2019-12-10  3835  	he_cap_elem->phy_cap_info[6] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3836  
13591a1c3899cf Sven Eckelmann 2019-12-10 @3837  	m = IEEE80211_HE_PHY_CAP7_SRP_BASED_SR |
13591a1c3899cf Sven Eckelmann 2019-12-10 @3838  	    IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR |
13591a1c3899cf Sven Eckelmann 2019-12-10  3839  	    IEEE80211_HE_PHY_CAP7_STBC_TX_ABOVE_80MHZ |
13591a1c3899cf Sven Eckelmann 2019-12-10  3840  	    IEEE80211_HE_PHY_CAP7_STBC_RX_ABOVE_80MHZ;
13591a1c3899cf Sven Eckelmann 2019-12-10  3841  	he_cap_elem->phy_cap_info[7] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3842  
13591a1c3899cf Sven Eckelmann 2019-12-10  3843  	m = IEEE80211_HE_PHY_CAP8_HE_ER_SU_PPDU_4XLTF_AND_08_US_GI |
13591a1c3899cf Sven Eckelmann 2019-12-10  3844  	    IEEE80211_HE_PHY_CAP8_20MHZ_IN_40MHZ_HE_PPDU_IN_2G |
13591a1c3899cf Sven Eckelmann 2019-12-10  3845  	    IEEE80211_HE_PHY_CAP8_20MHZ_IN_160MHZ_HE_PPDU |
13591a1c3899cf Sven Eckelmann 2019-12-10  3846  	    IEEE80211_HE_PHY_CAP8_80MHZ_IN_160MHZ_HE_PPDU;
13591a1c3899cf Sven Eckelmann 2019-12-10  3847  	he_cap_elem->phy_cap_info[8] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3848  
13591a1c3899cf Sven Eckelmann 2019-12-10  3849  	m = IEEE80211_HE_PHY_CAP9_LONGER_THAN_16_SIGB_OFDM_SYM |
13591a1c3899cf Sven Eckelmann 2019-12-10  3850  	    IEEE80211_HE_PHY_CAP9_NON_TRIGGERED_CQI_FEEDBACK |
13591a1c3899cf Sven Eckelmann 2019-12-10  3851  	    IEEE80211_HE_PHY_CAP9_RX_1024_QAM_LESS_THAN_242_TONE_RU |
13591a1c3899cf Sven Eckelmann 2019-12-10  3852  	    IEEE80211_HE_PHY_CAP9_TX_1024_QAM_LESS_THAN_242_TONE_RU |
13591a1c3899cf Sven Eckelmann 2019-12-10  3853  	    IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_COMP_SIGB |
13591a1c3899cf Sven Eckelmann 2019-12-10  3854  	    IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_NON_COMP_SIGB;
13591a1c3899cf Sven Eckelmann 2019-12-10  3855  	he_cap_elem->phy_cap_info[9] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3856  }
13591a1c3899cf Sven Eckelmann 2019-12-10  3857  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 59898 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 07/15] wireless: align HE capabilities A-MPDU Length Exponent Extension
  2021-04-09  9:40 ` [PATCH 07/15] wireless: align HE capabilities A-MPDU Length Exponent Extension Luca Coelho
@ 2021-04-09 13:39   ` kernel test robot
  2021-04-10  9:20   ` kernel test robot
  1 sibling, 0 replies; 23+ messages in thread
From: kernel test robot @ 2021-04-09 13:39 UTC (permalink / raw)
  To: Luca Coelho, johannes; +Cc: kbuild-all, linux-wireless

[-- Attachment #1: Type: text/plain, Size: 14152 bytes --]

Hi Luca,

I love your patch! Yet something to improve:

[auto build test ERROR on mac80211-next/master]
[also build test ERROR on mac80211/master wireless-drivers-next/master wireless-drivers/master v5.12-rc6 next-20210408]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Luca-Coelho/cfg80211-mac80211-patches-from-our-internal-tree-2021-04-09/20210409-181210
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git master
config: m68k-allmodconfig (attached as .config)
compiler: m68k-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/14d0d9bb385498f53ad9d73ebac33c6ef919be7c
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Luca-Coelho/cfg80211-mac80211-patches-from-our-internal-tree-2021-04-09/20210409-181210
        git checkout 14d0d9bb385498f53ad9d73ebac33c6ef919be7c
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=m68k 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

   drivers/net/wireless/ath/ath11k/mac.c: In function 'ath11k_peer_assoc_h_he':
>> drivers/net/wireless/ath/ath11k/mac.c:1270:4: error: 'IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT' undeclared (first use in this function); did you mean 'IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3'?
    1270 |    IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT;
         |    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |    IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_3
   drivers/net/wireless/ath/ath11k/mac.c:1270:4: note: each undeclared identifier is reported only once for each function it appears in
   drivers/net/wireless/ath/ath11k/mac.c: In function 'ath11k_mac_filter_he_cap_mesh':
   drivers/net/wireless/ath/ath11k/mac.c:3810:6: error: 'IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECVITE_TRANSMISSION' undeclared (first use in this function); did you mean 'IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECTIVE_TRANSMISSION'?
    3810 |  m = IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECVITE_TRANSMISSION |
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |      IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECTIVE_TRANSMISSION
   drivers/net/wireless/ath/ath11k/mac.c:3820:6: error: 'IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA' undeclared (first use in this function)
    3820 |  m = IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA |
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/wireless/ath/ath11k/mac.c:3832:6: error: 'IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB' undeclared (first use in this function); did you mean 'IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB'?
    3832 |      IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB |
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |      IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB
   drivers/net/wireless/ath/ath11k/mac.c:3837:6: error: 'IEEE80211_HE_PHY_CAP7_SRP_BASED_SR' undeclared (first use in this function); did you mean 'IEEE80211_HE_PHY_CAP7_PSR_BASED_SR'?
    3837 |  m = IEEE80211_HE_PHY_CAP7_SRP_BASED_SR |
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |      IEEE80211_HE_PHY_CAP7_PSR_BASED_SR
   drivers/net/wireless/ath/ath11k/mac.c:3838:6: error: 'IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR' undeclared (first use in this function); did you mean 'IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_SUPP'?
    3838 |      IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR |
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |      IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_SUPP


vim +1270 drivers/net/wireless/ath/ath11k/mac.c

d5c65159f28953 Kalle Valo          2019-11-23  1233  
d5c65159f28953 Kalle Valo          2019-11-23  1234  static void ath11k_peer_assoc_h_he(struct ath11k *ar,
d5c65159f28953 Kalle Valo          2019-11-23  1235  				   struct ieee80211_vif *vif,
d5c65159f28953 Kalle Valo          2019-11-23  1236  				   struct ieee80211_sta *sta,
d5c65159f28953 Kalle Valo          2019-11-23  1237  				   struct peer_assoc_params *arg)
d5c65159f28953 Kalle Valo          2019-11-23  1238  {
9f056ed8ee01ad John Crispin        2019-11-25  1239  	const struct ieee80211_sta_he_cap *he_cap = &sta->he_cap;
af6d39db1b046a Tamizh Chelvam      2020-09-08  1240  	u8 ampdu_factor;
9f056ed8ee01ad John Crispin        2019-11-25  1241  	u16 v;
9f056ed8ee01ad John Crispin        2019-11-25  1242  
9f056ed8ee01ad John Crispin        2019-11-25  1243  	if (!he_cap->has_he)
9f056ed8ee01ad John Crispin        2019-11-25  1244  		return;
9f056ed8ee01ad John Crispin        2019-11-25  1245  
9f056ed8ee01ad John Crispin        2019-11-25  1246  	arg->he_flag = true;
9f056ed8ee01ad John Crispin        2019-11-25  1247  
9f056ed8ee01ad John Crispin        2019-11-25  1248  	memcpy(&arg->peer_he_cap_macinfo, he_cap->he_cap_elem.mac_cap_info,
9f056ed8ee01ad John Crispin        2019-11-25  1249  	       sizeof(arg->peer_he_cap_macinfo));
9f056ed8ee01ad John Crispin        2019-11-25  1250  	memcpy(&arg->peer_he_cap_phyinfo, he_cap->he_cap_elem.phy_cap_info,
9f056ed8ee01ad John Crispin        2019-11-25  1251  	       sizeof(arg->peer_he_cap_phyinfo));
60689de46c7f6a Rajkumar Manoharan  2020-04-24  1252  	arg->peer_he_ops = vif->bss_conf.he_oper.params;
9f056ed8ee01ad John Crispin        2019-11-25  1253  
9f056ed8ee01ad John Crispin        2019-11-25  1254  	/* the top most byte is used to indicate BSS color info */
9f056ed8ee01ad John Crispin        2019-11-25  1255  	arg->peer_he_ops &= 0xffffff;
9f056ed8ee01ad John Crispin        2019-11-25  1256  
af6d39db1b046a Tamizh Chelvam      2020-09-08  1257  	/* As per section 26.6.1 11ax Draft5.0, if the Max AMPDU Exponent Extension
af6d39db1b046a Tamizh Chelvam      2020-09-08  1258  	 * in HE cap is zero, use the arg->peer_max_mpdu as calculated while parsing
af6d39db1b046a Tamizh Chelvam      2020-09-08  1259  	 * VHT caps(if VHT caps is present) or HT caps (if VHT caps is not present).
af6d39db1b046a Tamizh Chelvam      2020-09-08  1260  	 *
af6d39db1b046a Tamizh Chelvam      2020-09-08  1261  	 * For non-zero value of Max AMPDU Extponent Extension in HE MAC caps,
af6d39db1b046a Tamizh Chelvam      2020-09-08  1262  	 * if a HE STA sends VHT cap and HE cap IE in assoc request then, use
af6d39db1b046a Tamizh Chelvam      2020-09-08  1263  	 * MAX_AMPDU_LEN_FACTOR as 20 to calculate max_ampdu length.
af6d39db1b046a Tamizh Chelvam      2020-09-08  1264  	 * If a HE STA that does not send VHT cap, but HE and HT cap in assoc
af6d39db1b046a Tamizh Chelvam      2020-09-08  1265  	 * request, then use MAX_AMPDU_LEN_FACTOR as 16 to calculate max_ampdu
af6d39db1b046a Tamizh Chelvam      2020-09-08  1266  	 * length.
af6d39db1b046a Tamizh Chelvam      2020-09-08  1267  	 */
af6d39db1b046a Tamizh Chelvam      2020-09-08  1268  	ampdu_factor = (he_cap->he_cap_elem.mac_cap_info[3] &
af6d39db1b046a Tamizh Chelvam      2020-09-08  1269  			IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_MASK) >>
af6d39db1b046a Tamizh Chelvam      2020-09-08 @1270  			IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT;
af6d39db1b046a Tamizh Chelvam      2020-09-08  1271  
af6d39db1b046a Tamizh Chelvam      2020-09-08  1272  	if (ampdu_factor) {
af6d39db1b046a Tamizh Chelvam      2020-09-08  1273  		if (sta->vht_cap.vht_supported)
af6d39db1b046a Tamizh Chelvam      2020-09-08  1274  			arg->peer_max_mpdu = (1 << (IEEE80211_HE_VHT_MAX_AMPDU_FACTOR +
af6d39db1b046a Tamizh Chelvam      2020-09-08  1275  						    ampdu_factor)) - 1;
af6d39db1b046a Tamizh Chelvam      2020-09-08  1276  		else if (sta->ht_cap.ht_supported)
af6d39db1b046a Tamizh Chelvam      2020-09-08  1277  			arg->peer_max_mpdu = (1 << (IEEE80211_HE_HT_MAX_AMPDU_FACTOR +
af6d39db1b046a Tamizh Chelvam      2020-09-08  1278  						    ampdu_factor)) - 1;
af6d39db1b046a Tamizh Chelvam      2020-09-08  1279  	}
af6d39db1b046a Tamizh Chelvam      2020-09-08  1280  
9f056ed8ee01ad John Crispin        2019-11-25  1281  	if (he_cap->he_cap_elem.phy_cap_info[6] &
9f056ed8ee01ad John Crispin        2019-11-25  1282  	    IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT) {
9f056ed8ee01ad John Crispin        2019-11-25  1283  		int bit = 7;
9f056ed8ee01ad John Crispin        2019-11-25  1284  		int nss, ru;
9f056ed8ee01ad John Crispin        2019-11-25  1285  
9f056ed8ee01ad John Crispin        2019-11-25  1286  		arg->peer_ppet.numss_m1 = he_cap->ppe_thres[0] &
9f056ed8ee01ad John Crispin        2019-11-25  1287  					  IEEE80211_PPE_THRES_NSS_MASK;
9f056ed8ee01ad John Crispin        2019-11-25  1288  		arg->peer_ppet.ru_bit_mask =
9f056ed8ee01ad John Crispin        2019-11-25  1289  			(he_cap->ppe_thres[0] &
9f056ed8ee01ad John Crispin        2019-11-25  1290  			 IEEE80211_PPE_THRES_RU_INDEX_BITMASK_MASK) >>
9f056ed8ee01ad John Crispin        2019-11-25  1291  			IEEE80211_PPE_THRES_RU_INDEX_BITMASK_POS;
9f056ed8ee01ad John Crispin        2019-11-25  1292  
9f056ed8ee01ad John Crispin        2019-11-25  1293  		for (nss = 0; nss <= arg->peer_ppet.numss_m1; nss++) {
9f056ed8ee01ad John Crispin        2019-11-25  1294  			for (ru = 0; ru < 4; ru++) {
9f056ed8ee01ad John Crispin        2019-11-25  1295  				u32 val = 0;
9f056ed8ee01ad John Crispin        2019-11-25  1296  				int i;
9f056ed8ee01ad John Crispin        2019-11-25  1297  
9f056ed8ee01ad John Crispin        2019-11-25  1298  				if ((arg->peer_ppet.ru_bit_mask & BIT(ru)) == 0)
9f056ed8ee01ad John Crispin        2019-11-25  1299  					continue;
9f056ed8ee01ad John Crispin        2019-11-25  1300  				for (i = 0; i < 6; i++) {
9f056ed8ee01ad John Crispin        2019-11-25  1301  					val >>= 1;
9f056ed8ee01ad John Crispin        2019-11-25  1302  					val |= ((he_cap->ppe_thres[bit / 8] >>
9f056ed8ee01ad John Crispin        2019-11-25  1303  						 (bit % 8)) & 0x1) << 5;
9f056ed8ee01ad John Crispin        2019-11-25  1304  					bit++;
9f056ed8ee01ad John Crispin        2019-11-25  1305  				}
9f056ed8ee01ad John Crispin        2019-11-25  1306  				arg->peer_ppet.ppet16_ppet8_ru3_ru0[nss] |=
9f056ed8ee01ad John Crispin        2019-11-25  1307  								val << (ru * 6);
9f056ed8ee01ad John Crispin        2019-11-25  1308  			}
9f056ed8ee01ad John Crispin        2019-11-25  1309  		}
9f056ed8ee01ad John Crispin        2019-11-25  1310  	}
9f056ed8ee01ad John Crispin        2019-11-25  1311  
6d293d447670da John Crispin        2019-11-25  1312  	if (he_cap->he_cap_elem.mac_cap_info[0] & IEEE80211_HE_MAC_CAP0_TWT_RES)
6d293d447670da John Crispin        2019-11-25  1313  		arg->twt_responder = true;
6d293d447670da John Crispin        2019-11-25  1314  	if (he_cap->he_cap_elem.mac_cap_info[0] & IEEE80211_HE_MAC_CAP0_TWT_REQ)
6d293d447670da John Crispin        2019-11-25  1315  		arg->twt_requester = true;
6d293d447670da John Crispin        2019-11-25  1316  
9f056ed8ee01ad John Crispin        2019-11-25  1317  	switch (sta->bandwidth) {
9f056ed8ee01ad John Crispin        2019-11-25  1318  	case IEEE80211_STA_RX_BW_160:
9f056ed8ee01ad John Crispin        2019-11-25  1319  		if (he_cap->he_cap_elem.phy_cap_info[0] &
9f056ed8ee01ad John Crispin        2019-11-25  1320  		    IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G) {
9f056ed8ee01ad John Crispin        2019-11-25  1321  			v = le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_80p80);
9f056ed8ee01ad John Crispin        2019-11-25  1322  			arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80_80] = v;
9f056ed8ee01ad John Crispin        2019-11-25  1323  
9f056ed8ee01ad John Crispin        2019-11-25  1324  			v = le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_80p80);
9f056ed8ee01ad John Crispin        2019-11-25  1325  			arg->peer_he_tx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80_80] = v;
9f056ed8ee01ad John Crispin        2019-11-25  1326  
9f056ed8ee01ad John Crispin        2019-11-25  1327  			arg->peer_he_mcs_count++;
9f056ed8ee01ad John Crispin        2019-11-25  1328  		}
9f056ed8ee01ad John Crispin        2019-11-25  1329  		v = le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_160);
9f056ed8ee01ad John Crispin        2019-11-25  1330  		arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_160] = v;
9f056ed8ee01ad John Crispin        2019-11-25  1331  
9f056ed8ee01ad John Crispin        2019-11-25  1332  		v = le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_160);
9f056ed8ee01ad John Crispin        2019-11-25  1333  		arg->peer_he_tx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_160] = v;
9f056ed8ee01ad John Crispin        2019-11-25  1334  
9f056ed8ee01ad John Crispin        2019-11-25  1335  		arg->peer_he_mcs_count++;
0b294aebb6a00b Gustavo A. R. Silva 2020-07-27  1336  		fallthrough;
9f056ed8ee01ad John Crispin        2019-11-25  1337  
9f056ed8ee01ad John Crispin        2019-11-25  1338  	default:
9f056ed8ee01ad John Crispin        2019-11-25  1339  		v = le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_80);
9f056ed8ee01ad John Crispin        2019-11-25  1340  		arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80] = v;
9f056ed8ee01ad John Crispin        2019-11-25  1341  
9f056ed8ee01ad John Crispin        2019-11-25  1342  		v = le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_80);
9f056ed8ee01ad John Crispin        2019-11-25  1343  		arg->peer_he_tx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80] = v;
9f056ed8ee01ad John Crispin        2019-11-25  1344  
9f056ed8ee01ad John Crispin        2019-11-25  1345  		arg->peer_he_mcs_count++;
9f056ed8ee01ad John Crispin        2019-11-25  1346  		break;
9f056ed8ee01ad John Crispin        2019-11-25  1347  	}
d5c65159f28953 Kalle Valo          2019-11-23  1348  }
d5c65159f28953 Kalle Valo          2019-11-23  1349  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 59898 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 11/15] wireless: fix spelling of A-MSDU in HE capabilities
  2021-04-09  9:40 ` [PATCH 11/15] wireless: fix spelling of A-MSDU in HE capabilities Luca Coelho
@ 2021-04-09 19:02   ` kernel test robot
  0 siblings, 0 replies; 23+ messages in thread
From: kernel test robot @ 2021-04-09 19:02 UTC (permalink / raw)
  To: Luca Coelho, johannes; +Cc: kbuild-all, clang-built-linux, linux-wireless

[-- Attachment #1: Type: text/plain, Size: 41230 bytes --]

Hi Luca,

I love your patch! Yet something to improve:

[auto build test ERROR on mac80211-next/master]
[also build test ERROR on mac80211/master wireless-drivers-next/master wireless-drivers/master v5.12-rc6 next-20210409]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Luca-Coelho/cfg80211-mac80211-patches-from-our-internal-tree-2021-04-09/20210409-181210
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git master
config: x86_64-randconfig-a005-20210409 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project dd453a1389b6a7e6d9214b449d3c54981b1a89b6)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # https://github.com/0day-ci/linux/commit/ab7f3700d2d0fefb429cfbb3763930761035754c
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Luca-Coelho/cfg80211-mac80211-patches-from-our-internal-tree-2021-04-09/20210409-181210
        git checkout ab7f3700d2d0fefb429cfbb3763930761035754c
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c:641:6: error: use of undeclared identifier 'IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU'
                                           IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU,
                                           ^
>> drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c:759:47: error: invalid application of 'sizeof' to an incomplete type 'const struct ieee80211_sband_iftype_data []'
           BUILD_BUG_ON(sizeof(data->iftd.low) != sizeof(iwl_he_capa));
                                                        ^~~~~~~~~~~~~
   include/linux/build_bug.h:50:19: note: expanded from macro 'BUILD_BUG_ON'
           BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
                            ^~~~~~~~~
   include/linux/build_bug.h:39:58: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                                            ^~~~
   include/linux/compiler_types.h:320:22: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
                               ^~~~~~~~~
   include/linux/compiler_types.h:308:23: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
                                ^~~~~~~~~
   include/linux/compiler_types.h:300:9: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                         ^~~~~~~~~
   drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c:760:48: error: invalid application of 'sizeof' to an incomplete type 'const struct ieee80211_sband_iftype_data []'
           BUILD_BUG_ON(sizeof(data->iftd.high) != sizeof(iwl_he_capa));
                                                         ^~~~~~~~~~~~~
   include/linux/build_bug.h:50:19: note: expanded from macro 'BUILD_BUG_ON'
           BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
                            ^~~~~~~~~
   include/linux/build_bug.h:39:58: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                                            ^~~~
   include/linux/compiler_types.h:320:22: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
                               ^~~~~~~~~
   include/linux/compiler_types.h:308:23: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
                                ^~~~~~~~~
   include/linux/compiler_types.h:300:9: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                         ^~~~~~~~~
   drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c:775:41: error: invalid application of 'sizeof' to an incomplete type 'const struct ieee80211_sband_iftype_data []'
           memcpy(iftype_data, iwl_he_capa, sizeof(iwl_he_capa));
                                                  ^~~~~~~~~~~~~
   drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c:778:25: error: invalid application of 'sizeof' to an incomplete type 'const struct ieee80211_sband_iftype_data []'
           sband->n_iftype_data = ARRAY_SIZE(iwl_he_capa);
                                  ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/kernel.h:49:32: note: expanded from macro 'ARRAY_SIZE'
   #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
                                  ^~~~~
   5 errors generated.


vim +/IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU +641 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c

33158fefc88e58 drivers/net/wireless/iwlwifi/iwl-nvm-parse.c       Eytan Lifshitz    2013-02-20  536  
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  537  static const struct ieee80211_sband_iftype_data iwl_he_capa[] = {
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  538  	{
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  539  		.types_mask = BIT(NL80211_IFTYPE_STATION),
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  540  		.he_cap = {
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  541  			.has_he = true,
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  542  			.he_cap_elem = {
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  543  				.mac_cap_info[0] =
add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-09-05  544  					IEEE80211_HE_MAC_CAP0_HTC_HE |
add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-09-05  545  					IEEE80211_HE_MAC_CAP0_TWT_REQ,
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  546  				.mac_cap_info[1] =
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  547  					IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_16US |
add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-09-05  548  					IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_8,
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  549  				.mac_cap_info[2] =
38af8d5a90a8c3 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Ilan Peer         2020-04-17  550  					IEEE80211_HE_MAC_CAP2_32BIT_BA_BITMAP,
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  551  				.mac_cap_info[3] =
add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-09-05  552  					IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
14d0d9bb385498 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2021-04-09  553  					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_2,
add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-09-05  554  				.mac_cap_info[4] =
ab7f3700d2d0fe drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2021-04-09  555  					IEEE80211_HE_MAC_CAP4_AMSDU_IN_AMPDU |
add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-09-05  556  					IEEE80211_HE_MAC_CAP4_MULTI_TID_AGG_TX_QOS_B39,
add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-09-05  557  				.mac_cap_info[5] =
add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-09-05  558  					IEEE80211_HE_MAC_CAP5_MULTI_TID_AGG_TX_QOS_B40 |
add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-09-05  559  					IEEE80211_HE_MAC_CAP5_MULTI_TID_AGG_TX_QOS_B41 |
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  560  					IEEE80211_HE_MAC_CAP5_UL_2x996_TONE_RU |
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  561  					IEEE80211_HE_MAC_CAP5_HE_DYNAMIC_SM_PS |
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  562  					IEEE80211_HE_MAC_CAP5_HT_VHT_TRIG_FRAME_RX,
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  563  				.phy_cap_info[0] =
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  564  					IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G |
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  565  					IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G |
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  566  					IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G,
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  567  				.phy_cap_info[1] =
add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-09-05  568  					IEEE80211_HE_PHY_CAP1_PREAMBLE_PUNC_RX_MASK |
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  569  					IEEE80211_HE_PHY_CAP1_DEVICE_CLASS_A |
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  570  					IEEE80211_HE_PHY_CAP1_LDPC_CODING_IN_PAYLOAD,
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  571  				.phy_cap_info[2] =
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  572  					IEEE80211_HE_PHY_CAP2_NDP_4x_LTF_AND_3_2US,
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  573  				.phy_cap_info[3] =
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  574  					IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_TX_NO_DCM |
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  575  					IEEE80211_HE_PHY_CAP3_DCM_MAX_TX_NSS_1 |
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  576  					IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_NO_DCM |
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  577  					IEEE80211_HE_PHY_CAP3_DCM_MAX_RX_NSS_1,
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  578  				.phy_cap_info[4] =
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  579  					IEEE80211_HE_PHY_CAP4_SU_BEAMFORMEE |
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  580  					IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_ABOVE_80MHZ_8 |
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  581  					IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_UNDER_80MHZ_8,
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  582  				.phy_cap_info[5] =
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  583  					IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_2 |
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  584  					IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_ABOVE_80MHZ_2,
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  585  				.phy_cap_info[6] =
13582e33bee863 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2021-04-09  586  					IEEE80211_HE_PHY_CAP6_TRIG_SU_BEAMFORMING_FB |
13582e33bee863 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2021-04-09  587  					IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMING_PARTIAL_BW_FB |
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  588  					IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT,
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  589  				.phy_cap_info[7] =
13582e33bee863 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2021-04-09  590  					IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_SUPP |
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  591  					IEEE80211_HE_PHY_CAP7_HE_SU_MU_PPDU_4XLTF_AND_08_US_GI |
add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-09-05  592  					IEEE80211_HE_PHY_CAP7_MAX_NC_1,
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  593  				.phy_cap_info[8] =
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  594  					IEEE80211_HE_PHY_CAP8_HE_ER_SU_PPDU_4XLTF_AND_08_US_GI |
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  595  					IEEE80211_HE_PHY_CAP8_20MHZ_IN_40MHZ_HE_PPDU_IN_2G |
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  596  					IEEE80211_HE_PHY_CAP8_20MHZ_IN_160MHZ_HE_PPDU |
add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-09-05  597  					IEEE80211_HE_PHY_CAP8_80MHZ_IN_160MHZ_HE_PPDU |
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  598  					IEEE80211_HE_PHY_CAP8_DCM_MAX_RU_2x996,
add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-09-05  599  				.phy_cap_info[9] =
add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-09-05  600  					IEEE80211_HE_PHY_CAP9_NON_TRIGGERED_CQI_FEEDBACK |
add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-09-05  601  					IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_COMP_SIGB |
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  602  					IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_NON_COMP_SIGB |
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  603  					IEEE80211_HE_PHY_CAP9_NOMIMAL_PKT_PADDING_RESERVED,
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  604  			},
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  605  			/*
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  606  			 * Set default Tx/Rx HE MCS NSS Support field.
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  607  			 * Indicate support for up to 2 spatial streams and all
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  608  			 * MCS, without any special cases
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  609  			 */
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  610  			.he_mcs_nss_supp = {
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  611  				.rx_mcs_80 = cpu_to_le16(0xfffa),
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  612  				.tx_mcs_80 = cpu_to_le16(0xfffa),
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  613  				.rx_mcs_160 = cpu_to_le16(0xfffa),
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  614  				.tx_mcs_160 = cpu_to_le16(0xfffa),
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  615  				.rx_mcs_80p80 = cpu_to_le16(0xffff),
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  616  				.tx_mcs_80p80 = cpu_to_le16(0xffff),
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  617  			},
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  618  			/*
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  619  			 * Set default PPE thresholds, with PPET16 set to 0,
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  620  			 * PPET8 set to 7
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  621  			 */
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  622  			.ppe_thres = {0x61, 0x1c, 0xc7, 0x71},
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  623  		},
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  624  	},
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  625  	{
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  626  		.types_mask = BIT(NL80211_IFTYPE_AP),
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  627  		.he_cap = {
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  628  			.has_he = true,
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  629  			.he_cap_elem = {
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  630  				.mac_cap_info[0] =
7360f99e0b99e3 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Emmanuel Grumbach 2018-09-12  631  					IEEE80211_HE_MAC_CAP0_HTC_HE,
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  632  				.mac_cap_info[1] =
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  633  					IEEE80211_HE_MAC_CAP1_TF_MAC_PAD_DUR_16US |
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  634  					IEEE80211_HE_MAC_CAP1_MULTI_TID_AGG_RX_QOS_8,
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  635  				.mac_cap_info[2] =
38af8d5a90a8c3 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Ilan Peer         2020-04-17  636  					IEEE80211_HE_MAC_CAP2_BSR,
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  637  				.mac_cap_info[3] =
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  638  					IEEE80211_HE_MAC_CAP3_OMI_CONTROL |
14d0d9bb385498 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2021-04-09  639  					IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_EXT_2,
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  640  				.mac_cap_info[4] =
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20 @641  					IEEE80211_HE_MAC_CAP4_AMDSU_IN_AMPDU,
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  642  				.mac_cap_info[5] =
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  643  					IEEE80211_HE_MAC_CAP5_UL_2x996_TONE_RU,
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  644  				.phy_cap_info[0] =
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  645  					IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_IN_2G |
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  646  					IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_40MHZ_80MHZ_IN_5G |
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  647  					IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G,
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  648  				.phy_cap_info[1] =
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  649  					IEEE80211_HE_PHY_CAP1_LDPC_CODING_IN_PAYLOAD,
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  650  				.phy_cap_info[2] =
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  651  					IEEE80211_HE_PHY_CAP2_NDP_4x_LTF_AND_3_2US,
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  652  				.phy_cap_info[3] =
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  653  					IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_TX_NO_DCM |
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  654  					IEEE80211_HE_PHY_CAP3_DCM_MAX_TX_NSS_1 |
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  655  					IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_NO_DCM |
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  656  					IEEE80211_HE_PHY_CAP3_DCM_MAX_RX_NSS_1,
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  657  				.phy_cap_info[4] =
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  658  					IEEE80211_HE_PHY_CAP4_SU_BEAMFORMEE |
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  659  					IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_ABOVE_80MHZ_8 |
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  660  					IEEE80211_HE_PHY_CAP4_BEAMFORMEE_MAX_STS_UNDER_80MHZ_8,
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  661  				.phy_cap_info[5] =
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  662  					IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_UNDER_80MHZ_2 |
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  663  					IEEE80211_HE_PHY_CAP5_BEAMFORMEE_NUM_SND_DIM_ABOVE_80MHZ_2,
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  664  				.phy_cap_info[6] =
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  665  					IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT,
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  666  				.phy_cap_info[7] =
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  667  					IEEE80211_HE_PHY_CAP7_HE_SU_MU_PPDU_4XLTF_AND_08_US_GI |
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  668  					IEEE80211_HE_PHY_CAP7_MAX_NC_1,
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  669  				.phy_cap_info[8] =
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  670  					IEEE80211_HE_PHY_CAP8_HE_ER_SU_PPDU_4XLTF_AND_08_US_GI |
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  671  					IEEE80211_HE_PHY_CAP8_20MHZ_IN_40MHZ_HE_PPDU_IN_2G |
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  672  					IEEE80211_HE_PHY_CAP8_20MHZ_IN_160MHZ_HE_PPDU |
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  673  					IEEE80211_HE_PHY_CAP8_80MHZ_IN_160MHZ_HE_PPDU |
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  674  					IEEE80211_HE_PHY_CAP8_DCM_MAX_RU_2x996,
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  675  				.phy_cap_info[9] =
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  676  					IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_COMP_SIGB |
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  677  					IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_NON_COMP_SIGB |
77ff2c6b49843b drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Liad Kaufman      2019-02-06  678  					IEEE80211_HE_PHY_CAP9_NOMIMAL_PKT_PADDING_RESERVED,
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  679  			},
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  680  			/*
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  681  			 * Set default Tx/Rx HE MCS NSS Support field.
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  682  			 * Indicate support for up to 2 spatial streams and all
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  683  			 * MCS, without any special cases
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  684  			 */
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  685  			.he_mcs_nss_supp = {
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  686  				.rx_mcs_80 = cpu_to_le16(0xfffa),
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  687  				.tx_mcs_80 = cpu_to_le16(0xfffa),
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  688  				.rx_mcs_160 = cpu_to_le16(0xfffa),
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  689  				.tx_mcs_160 = cpu_to_le16(0xfffa),
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  690  				.rx_mcs_80p80 = cpu_to_le16(0xffff),
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  691  				.tx_mcs_80p80 = cpu_to_le16(0xffff),
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  692  			},
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  693  			/*
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  694  			 * Set default PPE thresholds, with PPET16 set to 0,
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  695  			 * PPET8 set to 7
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  696  			 */
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  697  			.ppe_thres = {0x61, 0x1c, 0xc7, 0x71},
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  698  		},
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  699  	},
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  700  };
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  701  
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  702  static void iwl_init_he_6ghz_capa(struct iwl_trans *trans,
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  703  				  struct iwl_nvm_data *data,
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  704  				  struct ieee80211_supported_band *sband,
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  705  				  u8 tx_chains, u8 rx_chains)
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  706  {
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  707  	struct ieee80211_sta_ht_cap ht_cap;
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  708  	struct ieee80211_sta_vht_cap vht_cap = {};
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  709  	struct ieee80211_sband_iftype_data *iftype_data;
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  710  	u16 he_6ghz_capa = 0;
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  711  	u32 exp;
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  712  	int i;
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  713  
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  714  	if (sband->band != NL80211_BAND_6GHZ)
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  715  		return;
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  716  
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  717  	/* grab HT/VHT capabilities and calculate HE 6 GHz capabilities */
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  718  	iwl_init_ht_hw_capab(trans, data, &ht_cap, NL80211_BAND_5GHZ,
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  719  			     tx_chains, rx_chains);
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  720  	WARN_ON(!ht_cap.ht_supported);
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  721  	iwl_init_vht_hw_capab(trans, data, &vht_cap, tx_chains, rx_chains);
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  722  	WARN_ON(!vht_cap.vht_supported);
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  723  
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  724  	he_6ghz_capa |=
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  725  		u16_encode_bits(ht_cap.ampdu_density,
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  726  				IEEE80211_HE_6GHZ_CAP_MIN_MPDU_START);
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  727  	exp = u32_get_bits(vht_cap.cap,
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  728  			   IEEE80211_VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MASK);
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  729  	he_6ghz_capa |=
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  730  		u16_encode_bits(exp, IEEE80211_HE_6GHZ_CAP_MAX_AMPDU_LEN_EXP);
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  731  	exp = u32_get_bits(vht_cap.cap, IEEE80211_VHT_CAP_MAX_MPDU_MASK);
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  732  	he_6ghz_capa |=
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  733  		u16_encode_bits(exp, IEEE80211_HE_6GHZ_CAP_MAX_MPDU_LEN);
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  734  	/* we don't support extended_ht_cap_info anywhere, so no RD_RESPONDER */
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  735  	if (vht_cap.cap & IEEE80211_VHT_CAP_TX_ANTENNA_PATTERN)
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  736  		he_6ghz_capa |= IEEE80211_HE_6GHZ_CAP_TX_ANTPAT_CONS;
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  737  	if (vht_cap.cap & IEEE80211_VHT_CAP_RX_ANTENNA_PATTERN)
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  738  		he_6ghz_capa |= IEEE80211_HE_6GHZ_CAP_RX_ANTPAT_CONS;
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  739  
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  740  	IWL_DEBUG_EEPROM(trans->dev, "he_6ghz_capa=0x%x\n", he_6ghz_capa);
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  741  
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  742  	/* we know it's writable - we set it before ourselves */
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  743  	iftype_data = (void *)sband->iftype_data;
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  744  	for (i = 0; i < sband->n_iftype_data; i++)
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  745  		iftype_data[i].he_6ghz_capa.capa = cpu_to_le16(he_6ghz_capa);
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  746  }
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  747  
df658908566455 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2019-11-05  748  static void iwl_init_he_hw_capab(struct iwl_trans *trans,
df658908566455 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2019-11-05  749  				 struct iwl_nvm_data *data,
df658908566455 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2019-11-05  750  				 struct ieee80211_supported_band *sband,
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  751  				 u8 tx_chains, u8 rx_chains)
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  752  {
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  753  	struct ieee80211_sband_iftype_data *iftype_data;
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  754  
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  755  	/* should only initialize once */
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  756  	if (WARN_ON(sband->iftype_data))
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  757  		return;
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  758  
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09 @759  	BUILD_BUG_ON(sizeof(data->iftd.low) != sizeof(iwl_he_capa));
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  760  	BUILD_BUG_ON(sizeof(data->iftd.high) != sizeof(iwl_he_capa));
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  761  
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  762  	switch (sband->band) {
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  763  	case NL80211_BAND_2GHZ:
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  764  		iftype_data = data->iftd.low;
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  765  		break;
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  766  	case NL80211_BAND_5GHZ:
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  767  	case NL80211_BAND_6GHZ:
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  768  		iftype_data = data->iftd.high;
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  769  		break;
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  770  	default:
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  771  		WARN_ON(1);
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  772  		return;
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  773  	}
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  774  
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  775  	memcpy(iftype_data, iwl_he_capa, sizeof(iwl_he_capa));
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  776  
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  777  	sband->iftype_data = iftype_data;
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  778  	sband->n_iftype_data = ARRAY_SIZE(iwl_he_capa);
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  779  
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  780  	/* If not 2x2, we need to indicate 1x1 in the Midamble RX Max NSTS */
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  781  	if ((tx_chains & rx_chains) != ANT_AB) {
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  782  		int i;
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  783  
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  784  		for (i = 0; i < sband->n_iftype_data; i++) {
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  785  			iftype_data[i].he_cap.he_cap_elem.phy_cap_info[1] &=
add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-09-05  786  				~IEEE80211_HE_PHY_CAP1_MIDAMBLE_RX_TX_MAX_NSTS;
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  787  			iftype_data[i].he_cap.he_cap_elem.phy_cap_info[2] &=
add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-09-05  788  				~IEEE80211_HE_PHY_CAP2_MIDAMBLE_RX_TX_MAX_NSTS;
d43ab298efc639 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Johannes Berg     2020-12-09  789  			iftype_data[i].he_cap.he_cap_elem.phy_cap_info[7] &=
add7453ad62f05 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-09-05  790  				~IEEE80211_HE_PHY_CAP7_MAX_NC_MASK;
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  791  		}
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  792  	}
eae94cf82d7456 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2020-12-10  793  	iwl_init_he_6ghz_capa(trans, data, sband, tx_chains, rx_chains);
57a3a454f30368 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Shaul Triebitz    2018-08-20  794  }
514c30696fbc25 drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c Luca Coelho       2018-06-24  795  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 39142 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 04/15] wireless: align some HE capabilities with the spec
  2021-04-09  9:40 ` [PATCH 04/15] wireless: align some HE capabilities with the spec Luca Coelho
  2021-04-09 12:24   ` kernel test robot
@ 2021-04-09 23:31   ` kernel test robot
  1 sibling, 0 replies; 23+ messages in thread
From: kernel test robot @ 2021-04-09 23:31 UTC (permalink / raw)
  To: Luca Coelho, johannes; +Cc: kbuild-all, clang-built-linux, linux-wireless

[-- Attachment #1: Type: text/plain, Size: 9013 bytes --]

Hi Luca,

I love your patch! Yet something to improve:

[auto build test ERROR on mac80211-next/master]
[also build test ERROR on mac80211/master wireless-drivers-next/master wireless-drivers/master v5.12-rc6 next-20210409]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Luca-Coelho/cfg80211-mac80211-patches-from-our-internal-tree-2021-04-09/20210409-181210
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git master
config: x86_64-randconfig-a006-20210409 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project dd453a1389b6a7e6d9214b449d3c54981b1a89b6)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # https://github.com/0day-ci/linux/commit/13582e33bee8630eb3f2d4299b14e989bc06d297
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Luca-Coelho/cfg80211-mac80211-patches-from-our-internal-tree-2021-04-09/20210409-181210
        git checkout 13582e33bee8630eb3f2d4299b14e989bc06d297
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> drivers/net/wireless/ath/ath11k/mac.c:3810:6: error: use of undeclared identifier 'IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECVITE_TRANSMISSION'
           m = IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECVITE_TRANSMISSION |
               ^
>> drivers/net/wireless/ath/ath11k/mac.c:3820:6: error: use of undeclared identifier 'IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA'
           m = IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA |
               ^
>> drivers/net/wireless/ath/ath11k/mac.c:3832:6: error: use of undeclared identifier 'IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB'
               IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB |
               ^
>> drivers/net/wireless/ath/ath11k/mac.c:3837:6: error: use of undeclared identifier 'IEEE80211_HE_PHY_CAP7_SRP_BASED_SR'
           m = IEEE80211_HE_PHY_CAP7_SRP_BASED_SR |
               ^
>> drivers/net/wireless/ath/ath11k/mac.c:3838:6: error: use of undeclared identifier 'IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR'
               IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR |
               ^
   5 errors generated.


vim +/IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECVITE_TRANSMISSION +3810 drivers/net/wireless/ath/ath11k/mac.c

9f056ed8ee01ad John Crispin   2019-11-25  3786  
13591a1c3899cf Sven Eckelmann 2019-12-10  3787  static void
13591a1c3899cf Sven Eckelmann 2019-12-10  3788  ath11k_mac_filter_he_cap_mesh(struct ieee80211_he_cap_elem *he_cap_elem)
13591a1c3899cf Sven Eckelmann 2019-12-10  3789  {
13591a1c3899cf Sven Eckelmann 2019-12-10  3790  	u8 m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3791  
13591a1c3899cf Sven Eckelmann 2019-12-10  3792  	m = IEEE80211_HE_MAC_CAP0_TWT_RES |
13591a1c3899cf Sven Eckelmann 2019-12-10  3793  	    IEEE80211_HE_MAC_CAP0_TWT_REQ;
13591a1c3899cf Sven Eckelmann 2019-12-10  3794  	he_cap_elem->mac_cap_info[0] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3795  
13591a1c3899cf Sven Eckelmann 2019-12-10  3796  	m = IEEE80211_HE_MAC_CAP2_TRS |
13591a1c3899cf Sven Eckelmann 2019-12-10  3797  	    IEEE80211_HE_MAC_CAP2_BCAST_TWT |
13591a1c3899cf Sven Eckelmann 2019-12-10  3798  	    IEEE80211_HE_MAC_CAP2_MU_CASCADING;
13591a1c3899cf Sven Eckelmann 2019-12-10  3799  	he_cap_elem->mac_cap_info[2] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3800  
13591a1c3899cf Sven Eckelmann 2019-12-10  3801  	m = IEEE80211_HE_MAC_CAP3_FLEX_TWT_SCHED |
13591a1c3899cf Sven Eckelmann 2019-12-10  3802  	    IEEE80211_HE_MAC_CAP2_BCAST_TWT |
13591a1c3899cf Sven Eckelmann 2019-12-10  3803  	    IEEE80211_HE_MAC_CAP2_MU_CASCADING;
13591a1c3899cf Sven Eckelmann 2019-12-10  3804  	he_cap_elem->mac_cap_info[3] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3805  
13591a1c3899cf Sven Eckelmann 2019-12-10  3806  	m = IEEE80211_HE_MAC_CAP4_BSRP_BQRP_A_MPDU_AGG |
13591a1c3899cf Sven Eckelmann 2019-12-10  3807  	    IEEE80211_HE_MAC_CAP4_BQR;
13591a1c3899cf Sven Eckelmann 2019-12-10  3808  	he_cap_elem->mac_cap_info[4] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3809  
13591a1c3899cf Sven Eckelmann 2019-12-10 @3810  	m = IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECVITE_TRANSMISSION |
13591a1c3899cf Sven Eckelmann 2019-12-10  3811  	    IEEE80211_HE_MAC_CAP5_UL_2x996_TONE_RU |
13591a1c3899cf Sven Eckelmann 2019-12-10  3812  	    IEEE80211_HE_MAC_CAP5_PUNCTURED_SOUNDING |
13591a1c3899cf Sven Eckelmann 2019-12-10  3813  	    IEEE80211_HE_MAC_CAP5_HT_VHT_TRIG_FRAME_RX;
13591a1c3899cf Sven Eckelmann 2019-12-10  3814  	he_cap_elem->mac_cap_info[5] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3815  
13591a1c3899cf Sven Eckelmann 2019-12-10  3816  	m = IEEE80211_HE_PHY_CAP2_UL_MU_FULL_MU_MIMO |
13591a1c3899cf Sven Eckelmann 2019-12-10  3817  	    IEEE80211_HE_PHY_CAP2_UL_MU_PARTIAL_MU_MIMO;
13591a1c3899cf Sven Eckelmann 2019-12-10  3818  	he_cap_elem->phy_cap_info[2] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3819  
13591a1c3899cf Sven Eckelmann 2019-12-10 @3820  	m = IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA |
13591a1c3899cf Sven Eckelmann 2019-12-10  3821  	    IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_TX_MASK |
13591a1c3899cf Sven Eckelmann 2019-12-10  3822  	    IEEE80211_HE_PHY_CAP3_DCM_MAX_CONST_RX_MASK;
13591a1c3899cf Sven Eckelmann 2019-12-10  3823  	he_cap_elem->phy_cap_info[3] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3824  
13591a1c3899cf Sven Eckelmann 2019-12-10  3825  	m = IEEE80211_HE_PHY_CAP4_MU_BEAMFORMER;
13591a1c3899cf Sven Eckelmann 2019-12-10  3826  	he_cap_elem->phy_cap_info[4] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3827  
13591a1c3899cf Sven Eckelmann 2019-12-10  3828  	m = IEEE80211_HE_PHY_CAP5_NG16_MU_FEEDBACK;
13591a1c3899cf Sven Eckelmann 2019-12-10  3829  	he_cap_elem->phy_cap_info[5] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3830  
13591a1c3899cf Sven Eckelmann 2019-12-10  3831  	m = IEEE80211_HE_PHY_CAP6_CODEBOOK_SIZE_75_MU |
13591a1c3899cf Sven Eckelmann 2019-12-10 @3832  	    IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB |
13591a1c3899cf Sven Eckelmann 2019-12-10  3833  	    IEEE80211_HE_PHY_CAP6_TRIG_CQI_FB |
13591a1c3899cf Sven Eckelmann 2019-12-10  3834  	    IEEE80211_HE_PHY_CAP6_PARTIAL_BANDWIDTH_DL_MUMIMO;
13591a1c3899cf Sven Eckelmann 2019-12-10  3835  	he_cap_elem->phy_cap_info[6] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3836  
13591a1c3899cf Sven Eckelmann 2019-12-10 @3837  	m = IEEE80211_HE_PHY_CAP7_SRP_BASED_SR |
13591a1c3899cf Sven Eckelmann 2019-12-10 @3838  	    IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR |
13591a1c3899cf Sven Eckelmann 2019-12-10  3839  	    IEEE80211_HE_PHY_CAP7_STBC_TX_ABOVE_80MHZ |
13591a1c3899cf Sven Eckelmann 2019-12-10  3840  	    IEEE80211_HE_PHY_CAP7_STBC_RX_ABOVE_80MHZ;
13591a1c3899cf Sven Eckelmann 2019-12-10  3841  	he_cap_elem->phy_cap_info[7] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3842  
13591a1c3899cf Sven Eckelmann 2019-12-10  3843  	m = IEEE80211_HE_PHY_CAP8_HE_ER_SU_PPDU_4XLTF_AND_08_US_GI |
13591a1c3899cf Sven Eckelmann 2019-12-10  3844  	    IEEE80211_HE_PHY_CAP8_20MHZ_IN_40MHZ_HE_PPDU_IN_2G |
13591a1c3899cf Sven Eckelmann 2019-12-10  3845  	    IEEE80211_HE_PHY_CAP8_20MHZ_IN_160MHZ_HE_PPDU |
13591a1c3899cf Sven Eckelmann 2019-12-10  3846  	    IEEE80211_HE_PHY_CAP8_80MHZ_IN_160MHZ_HE_PPDU;
13591a1c3899cf Sven Eckelmann 2019-12-10  3847  	he_cap_elem->phy_cap_info[8] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3848  
13591a1c3899cf Sven Eckelmann 2019-12-10  3849  	m = IEEE80211_HE_PHY_CAP9_LONGER_THAN_16_SIGB_OFDM_SYM |
13591a1c3899cf Sven Eckelmann 2019-12-10  3850  	    IEEE80211_HE_PHY_CAP9_NON_TRIGGERED_CQI_FEEDBACK |
13591a1c3899cf Sven Eckelmann 2019-12-10  3851  	    IEEE80211_HE_PHY_CAP9_RX_1024_QAM_LESS_THAN_242_TONE_RU |
13591a1c3899cf Sven Eckelmann 2019-12-10  3852  	    IEEE80211_HE_PHY_CAP9_TX_1024_QAM_LESS_THAN_242_TONE_RU |
13591a1c3899cf Sven Eckelmann 2019-12-10  3853  	    IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_COMP_SIGB |
13591a1c3899cf Sven Eckelmann 2019-12-10  3854  	    IEEE80211_HE_PHY_CAP9_RX_FULL_BW_SU_USING_MU_WITH_NON_COMP_SIGB;
13591a1c3899cf Sven Eckelmann 2019-12-10  3855  	he_cap_elem->phy_cap_info[9] &= ~m;
13591a1c3899cf Sven Eckelmann 2019-12-10  3856  }
13591a1c3899cf Sven Eckelmann 2019-12-10  3857  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 36830 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

* Re: [PATCH 07/15] wireless: align HE capabilities A-MPDU Length Exponent Extension
  2021-04-09  9:40 ` [PATCH 07/15] wireless: align HE capabilities A-MPDU Length Exponent Extension Luca Coelho
  2021-04-09 13:39   ` kernel test robot
@ 2021-04-10  9:20   ` kernel test robot
  1 sibling, 0 replies; 23+ messages in thread
From: kernel test robot @ 2021-04-10  9:20 UTC (permalink / raw)
  To: Luca Coelho, johannes; +Cc: kbuild-all, clang-built-linux, linux-wireless

[-- Attachment #1: Type: text/plain, Size: 13195 bytes --]

Hi Luca,

I love your patch! Yet something to improve:

[auto build test ERROR on mac80211-next/master]
[also build test ERROR on mac80211/master wireless-drivers-next/master wireless-drivers/master v5.12-rc6 next-20210409]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Luca-Coelho/cfg80211-mac80211-patches-from-our-internal-tree-2021-04-09/20210409-181210
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git master
config: x86_64-randconfig-a006-20210409 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project dd453a1389b6a7e6d9214b449d3c54981b1a89b6)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # https://github.com/0day-ci/linux/commit/14d0d9bb385498f53ad9d73ebac33c6ef919be7c
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Luca-Coelho/cfg80211-mac80211-patches-from-our-internal-tree-2021-04-09/20210409-181210
        git checkout 14d0d9bb385498f53ad9d73ebac33c6ef919be7c
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

>> drivers/net/wireless/ath/ath11k/mac.c:1270:4: error: use of undeclared identifier 'IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT'
                           IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT;
                           ^
   drivers/net/wireless/ath/ath11k/mac.c:3810:6: error: use of undeclared identifier 'IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECVITE_TRANSMISSION'
           m = IEEE80211_HE_MAC_CAP5_SUBCHAN_SELECVITE_TRANSMISSION |
               ^
   drivers/net/wireless/ath/ath11k/mac.c:3820:6: error: use of undeclared identifier 'IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA'
           m = IEEE80211_HE_PHY_CAP3_RX_HE_MU_PPDU_FROM_NON_AP_STA |
               ^
   drivers/net/wireless/ath/ath11k/mac.c:3832:6: error: use of undeclared identifier 'IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB'
               IEEE80211_HE_PHY_CAP6_TRIG_MU_BEAMFORMER_FB |
               ^
   drivers/net/wireless/ath/ath11k/mac.c:3837:6: error: use of undeclared identifier 'IEEE80211_HE_PHY_CAP7_SRP_BASED_SR'
           m = IEEE80211_HE_PHY_CAP7_SRP_BASED_SR |
               ^
   drivers/net/wireless/ath/ath11k/mac.c:3838:6: error: use of undeclared identifier 'IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR'
               IEEE80211_HE_PHY_CAP7_POWER_BOOST_FACTOR_AR |
               ^
   6 errors generated.


vim +/IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT +1270 drivers/net/wireless/ath/ath11k/mac.c

d5c65159f28953 Kalle Valo          2019-11-23  1233  
d5c65159f28953 Kalle Valo          2019-11-23  1234  static void ath11k_peer_assoc_h_he(struct ath11k *ar,
d5c65159f28953 Kalle Valo          2019-11-23  1235  				   struct ieee80211_vif *vif,
d5c65159f28953 Kalle Valo          2019-11-23  1236  				   struct ieee80211_sta *sta,
d5c65159f28953 Kalle Valo          2019-11-23  1237  				   struct peer_assoc_params *arg)
d5c65159f28953 Kalle Valo          2019-11-23  1238  {
9f056ed8ee01ad John Crispin        2019-11-25  1239  	const struct ieee80211_sta_he_cap *he_cap = &sta->he_cap;
af6d39db1b046a Tamizh Chelvam      2020-09-08  1240  	u8 ampdu_factor;
9f056ed8ee01ad John Crispin        2019-11-25  1241  	u16 v;
9f056ed8ee01ad John Crispin        2019-11-25  1242  
9f056ed8ee01ad John Crispin        2019-11-25  1243  	if (!he_cap->has_he)
9f056ed8ee01ad John Crispin        2019-11-25  1244  		return;
9f056ed8ee01ad John Crispin        2019-11-25  1245  
9f056ed8ee01ad John Crispin        2019-11-25  1246  	arg->he_flag = true;
9f056ed8ee01ad John Crispin        2019-11-25  1247  
9f056ed8ee01ad John Crispin        2019-11-25  1248  	memcpy(&arg->peer_he_cap_macinfo, he_cap->he_cap_elem.mac_cap_info,
9f056ed8ee01ad John Crispin        2019-11-25  1249  	       sizeof(arg->peer_he_cap_macinfo));
9f056ed8ee01ad John Crispin        2019-11-25  1250  	memcpy(&arg->peer_he_cap_phyinfo, he_cap->he_cap_elem.phy_cap_info,
9f056ed8ee01ad John Crispin        2019-11-25  1251  	       sizeof(arg->peer_he_cap_phyinfo));
60689de46c7f6a Rajkumar Manoharan  2020-04-24  1252  	arg->peer_he_ops = vif->bss_conf.he_oper.params;
9f056ed8ee01ad John Crispin        2019-11-25  1253  
9f056ed8ee01ad John Crispin        2019-11-25  1254  	/* the top most byte is used to indicate BSS color info */
9f056ed8ee01ad John Crispin        2019-11-25  1255  	arg->peer_he_ops &= 0xffffff;
9f056ed8ee01ad John Crispin        2019-11-25  1256  
af6d39db1b046a Tamizh Chelvam      2020-09-08  1257  	/* As per section 26.6.1 11ax Draft5.0, if the Max AMPDU Exponent Extension
af6d39db1b046a Tamizh Chelvam      2020-09-08  1258  	 * in HE cap is zero, use the arg->peer_max_mpdu as calculated while parsing
af6d39db1b046a Tamizh Chelvam      2020-09-08  1259  	 * VHT caps(if VHT caps is present) or HT caps (if VHT caps is not present).
af6d39db1b046a Tamizh Chelvam      2020-09-08  1260  	 *
af6d39db1b046a Tamizh Chelvam      2020-09-08  1261  	 * For non-zero value of Max AMPDU Extponent Extension in HE MAC caps,
af6d39db1b046a Tamizh Chelvam      2020-09-08  1262  	 * if a HE STA sends VHT cap and HE cap IE in assoc request then, use
af6d39db1b046a Tamizh Chelvam      2020-09-08  1263  	 * MAX_AMPDU_LEN_FACTOR as 20 to calculate max_ampdu length.
af6d39db1b046a Tamizh Chelvam      2020-09-08  1264  	 * If a HE STA that does not send VHT cap, but HE and HT cap in assoc
af6d39db1b046a Tamizh Chelvam      2020-09-08  1265  	 * request, then use MAX_AMPDU_LEN_FACTOR as 16 to calculate max_ampdu
af6d39db1b046a Tamizh Chelvam      2020-09-08  1266  	 * length.
af6d39db1b046a Tamizh Chelvam      2020-09-08  1267  	 */
af6d39db1b046a Tamizh Chelvam      2020-09-08  1268  	ampdu_factor = (he_cap->he_cap_elem.mac_cap_info[3] &
af6d39db1b046a Tamizh Chelvam      2020-09-08  1269  			IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_MASK) >>
af6d39db1b046a Tamizh Chelvam      2020-09-08 @1270  			IEEE80211_HE_MAC_CAP3_MAX_AMPDU_LEN_EXP_SHIFT;
af6d39db1b046a Tamizh Chelvam      2020-09-08  1271  
af6d39db1b046a Tamizh Chelvam      2020-09-08  1272  	if (ampdu_factor) {
af6d39db1b046a Tamizh Chelvam      2020-09-08  1273  		if (sta->vht_cap.vht_supported)
af6d39db1b046a Tamizh Chelvam      2020-09-08  1274  			arg->peer_max_mpdu = (1 << (IEEE80211_HE_VHT_MAX_AMPDU_FACTOR +
af6d39db1b046a Tamizh Chelvam      2020-09-08  1275  						    ampdu_factor)) - 1;
af6d39db1b046a Tamizh Chelvam      2020-09-08  1276  		else if (sta->ht_cap.ht_supported)
af6d39db1b046a Tamizh Chelvam      2020-09-08  1277  			arg->peer_max_mpdu = (1 << (IEEE80211_HE_HT_MAX_AMPDU_FACTOR +
af6d39db1b046a Tamizh Chelvam      2020-09-08  1278  						    ampdu_factor)) - 1;
af6d39db1b046a Tamizh Chelvam      2020-09-08  1279  	}
af6d39db1b046a Tamizh Chelvam      2020-09-08  1280  
9f056ed8ee01ad John Crispin        2019-11-25  1281  	if (he_cap->he_cap_elem.phy_cap_info[6] &
9f056ed8ee01ad John Crispin        2019-11-25  1282  	    IEEE80211_HE_PHY_CAP6_PPE_THRESHOLD_PRESENT) {
9f056ed8ee01ad John Crispin        2019-11-25  1283  		int bit = 7;
9f056ed8ee01ad John Crispin        2019-11-25  1284  		int nss, ru;
9f056ed8ee01ad John Crispin        2019-11-25  1285  
9f056ed8ee01ad John Crispin        2019-11-25  1286  		arg->peer_ppet.numss_m1 = he_cap->ppe_thres[0] &
9f056ed8ee01ad John Crispin        2019-11-25  1287  					  IEEE80211_PPE_THRES_NSS_MASK;
9f056ed8ee01ad John Crispin        2019-11-25  1288  		arg->peer_ppet.ru_bit_mask =
9f056ed8ee01ad John Crispin        2019-11-25  1289  			(he_cap->ppe_thres[0] &
9f056ed8ee01ad John Crispin        2019-11-25  1290  			 IEEE80211_PPE_THRES_RU_INDEX_BITMASK_MASK) >>
9f056ed8ee01ad John Crispin        2019-11-25  1291  			IEEE80211_PPE_THRES_RU_INDEX_BITMASK_POS;
9f056ed8ee01ad John Crispin        2019-11-25  1292  
9f056ed8ee01ad John Crispin        2019-11-25  1293  		for (nss = 0; nss <= arg->peer_ppet.numss_m1; nss++) {
9f056ed8ee01ad John Crispin        2019-11-25  1294  			for (ru = 0; ru < 4; ru++) {
9f056ed8ee01ad John Crispin        2019-11-25  1295  				u32 val = 0;
9f056ed8ee01ad John Crispin        2019-11-25  1296  				int i;
9f056ed8ee01ad John Crispin        2019-11-25  1297  
9f056ed8ee01ad John Crispin        2019-11-25  1298  				if ((arg->peer_ppet.ru_bit_mask & BIT(ru)) == 0)
9f056ed8ee01ad John Crispin        2019-11-25  1299  					continue;
9f056ed8ee01ad John Crispin        2019-11-25  1300  				for (i = 0; i < 6; i++) {
9f056ed8ee01ad John Crispin        2019-11-25  1301  					val >>= 1;
9f056ed8ee01ad John Crispin        2019-11-25  1302  					val |= ((he_cap->ppe_thres[bit / 8] >>
9f056ed8ee01ad John Crispin        2019-11-25  1303  						 (bit % 8)) & 0x1) << 5;
9f056ed8ee01ad John Crispin        2019-11-25  1304  					bit++;
9f056ed8ee01ad John Crispin        2019-11-25  1305  				}
9f056ed8ee01ad John Crispin        2019-11-25  1306  				arg->peer_ppet.ppet16_ppet8_ru3_ru0[nss] |=
9f056ed8ee01ad John Crispin        2019-11-25  1307  								val << (ru * 6);
9f056ed8ee01ad John Crispin        2019-11-25  1308  			}
9f056ed8ee01ad John Crispin        2019-11-25  1309  		}
9f056ed8ee01ad John Crispin        2019-11-25  1310  	}
9f056ed8ee01ad John Crispin        2019-11-25  1311  
6d293d447670da John Crispin        2019-11-25  1312  	if (he_cap->he_cap_elem.mac_cap_info[0] & IEEE80211_HE_MAC_CAP0_TWT_RES)
6d293d447670da John Crispin        2019-11-25  1313  		arg->twt_responder = true;
6d293d447670da John Crispin        2019-11-25  1314  	if (he_cap->he_cap_elem.mac_cap_info[0] & IEEE80211_HE_MAC_CAP0_TWT_REQ)
6d293d447670da John Crispin        2019-11-25  1315  		arg->twt_requester = true;
6d293d447670da John Crispin        2019-11-25  1316  
9f056ed8ee01ad John Crispin        2019-11-25  1317  	switch (sta->bandwidth) {
9f056ed8ee01ad John Crispin        2019-11-25  1318  	case IEEE80211_STA_RX_BW_160:
9f056ed8ee01ad John Crispin        2019-11-25  1319  		if (he_cap->he_cap_elem.phy_cap_info[0] &
9f056ed8ee01ad John Crispin        2019-11-25  1320  		    IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_80PLUS80_MHZ_IN_5G) {
9f056ed8ee01ad John Crispin        2019-11-25  1321  			v = le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_80p80);
9f056ed8ee01ad John Crispin        2019-11-25  1322  			arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80_80] = v;
9f056ed8ee01ad John Crispin        2019-11-25  1323  
9f056ed8ee01ad John Crispin        2019-11-25  1324  			v = le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_80p80);
9f056ed8ee01ad John Crispin        2019-11-25  1325  			arg->peer_he_tx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80_80] = v;
9f056ed8ee01ad John Crispin        2019-11-25  1326  
9f056ed8ee01ad John Crispin        2019-11-25  1327  			arg->peer_he_mcs_count++;
9f056ed8ee01ad John Crispin        2019-11-25  1328  		}
9f056ed8ee01ad John Crispin        2019-11-25  1329  		v = le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_160);
9f056ed8ee01ad John Crispin        2019-11-25  1330  		arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_160] = v;
9f056ed8ee01ad John Crispin        2019-11-25  1331  
9f056ed8ee01ad John Crispin        2019-11-25  1332  		v = le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_160);
9f056ed8ee01ad John Crispin        2019-11-25  1333  		arg->peer_he_tx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_160] = v;
9f056ed8ee01ad John Crispin        2019-11-25  1334  
9f056ed8ee01ad John Crispin        2019-11-25  1335  		arg->peer_he_mcs_count++;
0b294aebb6a00b Gustavo A. R. Silva 2020-07-27  1336  		fallthrough;
9f056ed8ee01ad John Crispin        2019-11-25  1337  
9f056ed8ee01ad John Crispin        2019-11-25  1338  	default:
9f056ed8ee01ad John Crispin        2019-11-25  1339  		v = le16_to_cpu(he_cap->he_mcs_nss_supp.rx_mcs_80);
9f056ed8ee01ad John Crispin        2019-11-25  1340  		arg->peer_he_rx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80] = v;
9f056ed8ee01ad John Crispin        2019-11-25  1341  
9f056ed8ee01ad John Crispin        2019-11-25  1342  		v = le16_to_cpu(he_cap->he_mcs_nss_supp.tx_mcs_80);
9f056ed8ee01ad John Crispin        2019-11-25  1343  		arg->peer_he_tx_mcs_set[WMI_HECAP_TXRX_MCS_NSS_IDX_80] = v;
9f056ed8ee01ad John Crispin        2019-11-25  1344  
9f056ed8ee01ad John Crispin        2019-11-25  1345  		arg->peer_he_mcs_count++;
9f056ed8ee01ad John Crispin        2019-11-25  1346  		break;
9f056ed8ee01ad John Crispin        2019-11-25  1347  	}
d5c65159f28953 Kalle Valo          2019-11-23  1348  }
d5c65159f28953 Kalle Valo          2019-11-23  1349  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 36830 bytes --]

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2021-04-10  9:21 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-09  9:40 [PATCH 00/15] cfg80211/mac80211 patches from our internal tree 2021-04-09 Luca Coelho
2021-04-09  9:40 ` [PATCH 01/15] mac80211: drop the connection if firmware crashed while in CSA Luca Coelho
2021-04-09  9:40 ` [PATCH 02/15] nl80211: Add new RSNXE related nl80211 extended features Luca Coelho
2021-04-09  9:40 ` [PATCH 03/15] mac80211: properly drop the connection in case of invalid CSA IE Luca Coelho
2021-04-09  9:40 ` [PATCH 04/15] wireless: align some HE capabilities with the spec Luca Coelho
2021-04-09 12:24   ` kernel test robot
2021-04-09 23:31   ` kernel test robot
2021-04-09  9:40 ` [PATCH 05/15] cfg80211: don't WARN if a self-managed device doesn't have a regdom Luca Coelho
2021-04-09  9:40 ` [PATCH 06/15] mac80211: make ieee80211_vif_to_wdev work when the vif isn't in the driver Luca Coelho
2021-04-09  9:40 ` [PATCH 07/15] wireless: align HE capabilities A-MPDU Length Exponent Extension Luca Coelho
2021-04-09 13:39   ` kernel test robot
2021-04-10  9:20   ` kernel test robot
2021-04-09  9:40 ` [PATCH 08/15] cfg80211: allow to specifying a reason for hw_rfkill Luca Coelho
2021-04-09  9:47   ` Johannes Berg
2021-04-09  9:55     ` Luca Coelho
2021-04-09  9:40 ` [PATCH 09/15] cfg80211: Remove wrong RNR IE validation check Luca Coelho
2021-04-09  9:40 ` [PATCH 10/15] mac80211: bail out if cipher schemes are invalid Luca Coelho
2021-04-09  9:40 ` [PATCH 11/15] wireless: fix spelling of A-MSDU in HE capabilities Luca Coelho
2021-04-09 19:02   ` kernel test robot
2021-04-09  9:40 ` [PATCH 12/15] nl80211/cfg80211: add a flag to negotiate for LMR feedback in NDP ranging Luca Coelho
2021-04-09  9:40 ` [PATCH 13/15] ieee80211: add the values of ranging parameters max LTF total field Luca Coelho
2021-04-09  9:40 ` [PATCH 14/15] mac80211: clear the beacon's CRC after channel switch Luca Coelho
2021-04-09  9:40 ` [PATCH 15/15] mac80211: aes_cmac: check crypto_shash_setkey() return value Luca Coelho

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).