linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/12] iwlwifi: updates intended for v5.18 2022-02-04
@ 2022-02-04 10:24 Luca Coelho
  2022-02-04 10:25 ` [PATCH 01/12] iwlwifi: mvm: Correctly set fragmented EBS Luca Coelho
                   ` (11 more replies)
  0 siblings, 12 replies; 17+ messages in thread
From: Luca Coelho @ 2022-02-04 10:24 UTC (permalink / raw)
  To: kvalo; +Cc: luca, linux-wireless

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

Hi,

Here's the fourth set of patches intended for v5.18.  It's the usual
development, new features, cleanups and bugfixes.

The changes are:

* W=1 warnings clean up continues;
* Some improvements and fixes in scanning;
* More work on the Bz family of devices;
* Some other small fixes, clean-ups and improvements.

As usual, I'm pushing this to a pending branch, for kbuild bot, and
will send a pull-request later.

Please review.

Cheers,
Luca.


Ilan Peer (4):
  iwlwifi: mvm: Correctly set fragmented EBS
  iwlwifi: scan: Modify return value of a function
  iwlwifi: mvm: Passively scan non PSC channels only when requested so
  iwlwifi: mvm: Unify the scan iteration functions

Johannes Berg (6):
  iwlwifi: pcie: adjust to Bz completion descriptor
  iwlwifi: drv: load tlv debug data earlier
  iwlwifi: eeprom: clean up macros
  iwlwifi: remove unused macros
  iwlwifi: debugfs: remove useless double condition
  iwlwifi: mei: use C99 initializer for device IDs

Matti Gottlieb (1):
  iwlwifi: pcie: Adapt rx queue write pointer for Bz family

Mukesh Sisodiya (1):
  iwlwifi: yoyo: Avoid using dram data if allocation failed

 .../net/wireless/intel/iwlwifi/cfg/22000.c    |   2 -
 drivers/net/wireless/intel/iwlwifi/fw/dbg.c   |   3 -
 drivers/net/wireless/intel/iwlwifi/iwl-csr.h  |   3 +
 .../net/wireless/intel/iwlwifi/iwl-dbg-tlv.c  |  13 +-
 drivers/net/wireless/intel/iwlwifi/iwl-drv.c  |   4 +-
 .../wireless/intel/iwlwifi/iwl-eeprom-read.c  |  12 +-
 .../net/wireless/intel/iwlwifi/iwl-phy-db.c   |   4 +-
 drivers/net/wireless/intel/iwlwifi/mei/main.c |   6 +-
 .../net/wireless/intel/iwlwifi/mvm/debugfs.c  |   5 +-
 drivers/net/wireless/intel/iwlwifi/mvm/fw.c   |   2 -
 drivers/net/wireless/intel/iwlwifi/mvm/rs.c   |   2 -
 drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 129 ++++++++++--------
 .../wireless/intel/iwlwifi/pcie/internal.h    |  20 ++-
 drivers/net/wireless/intel/iwlwifi/pcie/rx.c  |  65 ++++++---
 14 files changed, 154 insertions(+), 116 deletions(-)

-- 
2.34.1


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

* [PATCH 01/12] iwlwifi: mvm: Correctly set fragmented EBS
  2022-02-04 10:24 [PATCH 00/12] iwlwifi: updates intended for v5.18 2022-02-04 Luca Coelho
@ 2022-02-04 10:25 ` Luca Coelho
  2022-02-04 10:25 ` [PATCH 02/12] iwlwifi: yoyo: Avoid using dram data if allocation failed Luca Coelho
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Luca Coelho @ 2022-02-04 10:25 UTC (permalink / raw)
  To: kvalo; +Cc: luca, linux-wireless

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

Currently, fragmented EBS was set for a channel only if the 'hb_type'
was set to fragmented or balanced scan. However, 'hb_type' is set only
in case of CDB, and thus fragmented EBS is never set for a channel for
non-CDB devices. Fix it.

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

diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
index 0ee766c6cff8..4b78a00243c7 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
@@ -1887,7 +1887,10 @@ static u8 iwl_mvm_scan_umac_chan_flags_v2(struct iwl_mvm *mvm,
 			IWL_SCAN_CHANNEL_FLAG_CACHE_ADD;
 
 	/* set fragmented ebs for fragmented scan on HB channels */
-	if (iwl_mvm_is_scan_fragmented(params->hb_type))
+	if ((!iwl_mvm_is_cdb_supported(mvm) &&
+	     iwl_mvm_is_scan_fragmented(params->type)) ||
+	    (iwl_mvm_is_cdb_supported(mvm) &&
+	     iwl_mvm_is_scan_fragmented(params->hb_type)))
 		flags |= IWL_SCAN_CHANNEL_FLAG_EBS_FRAG;
 
 	return flags;
-- 
2.34.1


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

* [PATCH 02/12] iwlwifi: yoyo: Avoid using dram data if allocation failed
  2022-02-04 10:24 [PATCH 00/12] iwlwifi: updates intended for v5.18 2022-02-04 Luca Coelho
  2022-02-04 10:25 ` [PATCH 01/12] iwlwifi: mvm: Correctly set fragmented EBS Luca Coelho
@ 2022-02-04 10:25 ` Luca Coelho
  2022-02-04 10:25 ` [PATCH 03/12] iwlwifi: scan: Modify return value of a function Luca Coelho
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Luca Coelho @ 2022-02-04 10:25 UTC (permalink / raw)
  To: kvalo; +Cc: luca, linux-wireless

From: Mukesh Sisodiya <mukesh.sisodiya@intel.com>

The config set TLV setting depend on dram allocation
and if allocation failed the data used in config set tlv
should not set this.
Adding the check if dram fragment is available or not.

Signed-off-by: Mukesh Sisodiya <mukesh.sisodiya@intel.com>
Fixes: 1a5daead217c ("iwlwifi: yoyo: support for ROM usniffer")
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c b/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c
index 1e884dc31f46..0cda8ac5024f 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-dbg-tlv.c
@@ -875,11 +875,18 @@ static void iwl_dbg_tlv_apply_config(struct iwl_fw_runtime *fwrt,
 		case IWL_FW_INI_CONFIG_SET_TYPE_DBGC_DRAM_ADDR: {
 			struct iwl_dbgc1_info dram_info = {};
 			struct iwl_dram_data *frags = &fwrt->trans->dbg.fw_mon_ini[1].frags[0];
-			__le64 dram_base_addr = cpu_to_le64(frags->physical);
-			__le32 dram_size = cpu_to_le32(frags->size);
-			u64  dram_addr = le64_to_cpu(dram_base_addr);
+			__le64 dram_base_addr;
+			__le32 dram_size;
+			u64 dram_addr;
 			u32 ret;
 
+			if (!frags)
+				break;
+
+			dram_base_addr = cpu_to_le64(frags->physical);
+			dram_size = cpu_to_le32(frags->size);
+			dram_addr = le64_to_cpu(dram_base_addr);
+
 			IWL_DEBUG_FW(fwrt, "WRT: dram_base_addr 0x%016llx, dram_size 0x%x\n",
 				     dram_base_addr, dram_size);
 			IWL_DEBUG_FW(fwrt, "WRT: config_list->addr_offset: %u\n",
-- 
2.34.1


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

* [PATCH 03/12] iwlwifi: scan: Modify return value of a function
  2022-02-04 10:24 [PATCH 00/12] iwlwifi: updates intended for v5.18 2022-02-04 Luca Coelho
  2022-02-04 10:25 ` [PATCH 01/12] iwlwifi: mvm: Correctly set fragmented EBS Luca Coelho
  2022-02-04 10:25 ` [PATCH 02/12] iwlwifi: yoyo: Avoid using dram data if allocation failed Luca Coelho
@ 2022-02-04 10:25 ` Luca Coelho
  2022-02-04 10:25 ` [PATCH 04/12] iwlwifi: mvm: Passively scan non PSC channels only when requested so Luca Coelho
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Luca Coelho @ 2022-02-04 10:25 UTC (permalink / raw)
  To: kvalo; +Cc: luca, linux-wireless

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

The function iwl_mvm_umac_scan_fill_6g_chan_list() always returns 0.
Change its return value to 'void'.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
index 4b78a00243c7..8c7cb491330d 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
@@ -1656,7 +1656,7 @@ iwl_mvm_umac_scan_cfg_channels_v6(struct iwl_mvm *mvm,
 	}
 }
 
-static int
+static void
 iwl_mvm_umac_scan_fill_6g_chan_list(struct iwl_mvm *mvm,
 				    struct iwl_mvm_scan_params *params,
 				     struct iwl_scan_probe_params_v4 *pp)
@@ -1725,7 +1725,6 @@ iwl_mvm_umac_scan_fill_6g_chan_list(struct iwl_mvm *mvm,
 
 	pp->short_ssid_num = idex_s;
 	pp->bssid_num = idex_b;
-	return 0;
 }
 
 /* TODO: this function can be merged with iwl_mvm_scan_umac_fill_ch_p_v6 */
@@ -2414,9 +2413,7 @@ static int iwl_mvm_scan_umac_v14_and_above(struct iwl_mvm *mvm,
 	cp->n_aps_override[0] = IWL_SCAN_ADWELL_N_APS_GO_FRIENDLY;
 	cp->n_aps_override[1] = IWL_SCAN_ADWELL_N_APS_SOCIAL_CHS;
 
-	ret = iwl_mvm_umac_scan_fill_6g_chan_list(mvm, params, pb);
-	if (ret)
-		return ret;
+	iwl_mvm_umac_scan_fill_6g_chan_list(mvm, params, pb);
 
 	iwl_mvm_umac_scan_cfg_channels_v6_6g(params,
 					     params->n_channels,
-- 
2.34.1


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

* [PATCH 04/12] iwlwifi: mvm: Passively scan non PSC channels only when requested so
  2022-02-04 10:24 [PATCH 00/12] iwlwifi: updates intended for v5.18 2022-02-04 Luca Coelho
                   ` (2 preceding siblings ...)
  2022-02-04 10:25 ` [PATCH 03/12] iwlwifi: scan: Modify return value of a function Luca Coelho
@ 2022-02-04 10:25 ` Luca Coelho
  2022-03-25 17:11   ` Ben Greear
  2022-02-04 10:25 ` [PATCH 05/12] iwlwifi: pcie: adjust to Bz completion descriptor Luca Coelho
                   ` (7 subsequent siblings)
  11 siblings, 1 reply; 17+ messages in thread
From: Luca Coelho @ 2022-02-04 10:25 UTC (permalink / raw)
  To: kvalo; +Cc: luca, linux-wireless

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

Non PSC channels should generally be scanned based on information about
collocated APs obtained during scan on legacy bands, and otherwise
should not be scanned unless specifically requested so (as there are
relatively many non PSC channels, scanning them passively is time consuming
and interferes with regular data traffic).

Thus, modify the scan logic to avoid passively scanning PSC channels
if there is no information about collocated APs and the scan is not
a passive scan.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 42 ++++++++++++++-----
 1 file changed, 32 insertions(+), 10 deletions(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
index 8c7cb491330d..901df916baa4 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
@@ -1728,27 +1728,37 @@ iwl_mvm_umac_scan_fill_6g_chan_list(struct iwl_mvm *mvm,
 }
 
 /* TODO: this function can be merged with iwl_mvm_scan_umac_fill_ch_p_v6 */
-static void
-iwl_mvm_umac_scan_cfg_channels_v6_6g(struct iwl_mvm_scan_params *params,
+static u32
+iwl_mvm_umac_scan_cfg_channels_v6_6g(struct iwl_mvm *mvm,
+				     struct iwl_mvm_scan_params *params,
 				     u32 n_channels,
 				     struct iwl_scan_probe_params_v4 *pp,
 				     struct iwl_scan_channel_params_v6 *cp,
 				     enum nl80211_iftype vif_type)
 {
-	struct iwl_scan_channel_cfg_umac *channel_cfg = cp->channel_config;
 	int i;
 	struct cfg80211_scan_6ghz_params *scan_6ghz_params =
 		params->scan_6ghz_params;
+	u32 ch_cnt;
 
-	for (i = 0; i < params->n_channels; i++) {
+	for (i = 0, ch_cnt = 0; i < params->n_channels; i++) {
 		struct iwl_scan_channel_cfg_umac *cfg =
-			&cp->channel_config[i];
+			&cp->channel_config[ch_cnt];
 
 		u32 s_ssid_bitmap = 0, bssid_bitmap = 0, flags = 0;
 		u8 j, k, s_max = 0, b_max = 0, n_used_bssid_entries;
 		bool force_passive, found = false, allow_passive = true,
 		     unsolicited_probe_on_chan = false, psc_no_listen = false;
 
+		/*
+		 * Avoid performing passive scan on non PSC channels unless the
+		 * scan is specifically a passive scan, i.e., no SSIDs
+		 * configured in the scan command.
+		 */
+		if (!cfg80211_channel_is_psc(params->channels[i]) &&
+		    !params->n_6ghz_params && params->n_ssids)
+			continue;
+
 		cfg->v1.channel_num = params->channels[i]->hw_value;
 		cfg->v2.band = 2;
 		cfg->v2.iter_count = 1;
@@ -1868,8 +1878,16 @@ iwl_mvm_umac_scan_cfg_channels_v6_6g(struct iwl_mvm_scan_params *params,
 		else
 			flags |= bssid_bitmap | (s_ssid_bitmap << 16);
 
-		channel_cfg[i].flags |= cpu_to_le32(flags);
+		cfg->flags |= cpu_to_le32(flags);
+		ch_cnt++;
 	}
+
+	if (params->n_channels > ch_cnt)
+		IWL_DEBUG_SCAN(mvm,
+			       "6GHz: reducing number channels: (%u->%u)\n",
+			       params->n_channels, ch_cnt);
+
+	return ch_cnt;
 }
 
 static u8 iwl_mvm_scan_umac_chan_flags_v2(struct iwl_mvm *mvm,
@@ -2415,10 +2433,14 @@ static int iwl_mvm_scan_umac_v14_and_above(struct iwl_mvm *mvm,
 
 	iwl_mvm_umac_scan_fill_6g_chan_list(mvm, params, pb);
 
-	iwl_mvm_umac_scan_cfg_channels_v6_6g(params,
-					     params->n_channels,
-					     pb, cp, vif->type);
-	cp->count = params->n_channels;
+	cp->count = iwl_mvm_umac_scan_cfg_channels_v6_6g(mvm, params,
+							 params->n_channels,
+							 pb, cp, vif->type);
+	if (!cp->count) {
+		mvm->scan_uid_status[uid] = 0;
+		return -EINVAL;
+	}
+
 	if (!params->n_ssids ||
 	    (params->n_ssids == 1 && !params->ssids[0].ssid_len))
 		cp->flags |= IWL_SCAN_CHANNEL_FLAG_6G_PSC_NO_FILTER;
-- 
2.34.1


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

* [PATCH 05/12] iwlwifi: pcie: adjust to Bz completion descriptor
  2022-02-04 10:24 [PATCH 00/12] iwlwifi: updates intended for v5.18 2022-02-04 Luca Coelho
                   ` (3 preceding siblings ...)
  2022-02-04 10:25 ` [PATCH 04/12] iwlwifi: mvm: Passively scan non PSC channels only when requested so Luca Coelho
@ 2022-02-04 10:25 ` Luca Coelho
  2022-02-04 10:25 ` [PATCH 06/12] iwlwifi: pcie: Adapt rx queue write pointer for Bz family Luca Coelho
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Luca Coelho @ 2022-02-04 10:25 UTC (permalink / raw)
  To: kvalo; +Cc: luca, linux-wireless

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

The Bz devices got a new completion descriptor again since
we only ever really used 4 out of 32 bytes anyway. Adjust
the code to deal with that. Note that the intention was to
reduce the size, but the hardware was implemented wrongly.

While at it, do some cleanups and remove the union to simplify
the code, clean up iwl_pcie_free_bd_size() to no longer need
an argument and add iwl_pcie_used_bd_size() with the logic to
selct completion descriptor size.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 .../wireless/intel/iwlwifi/pcie/internal.h    | 20 +++++--
 drivers/net/wireless/intel/iwlwifi/pcie/rx.c  | 56 ++++++++++++-------
 2 files changed, 51 insertions(+), 25 deletions(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/internal.h b/drivers/net/wireless/intel/iwlwifi/pcie/internal.h
index 3cddc3e6db53..f7e4f868363d 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/internal.h
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/internal.h
@@ -1,6 +1,6 @@
 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
 /*
- * Copyright (C) 2003-2015, 2018-2021 Intel Corporation
+ * Copyright (C) 2003-2015, 2018-2022 Intel Corporation
  * Copyright (C) 2013-2015 Intel Mobile Communications GmbH
  * Copyright (C) 2016-2017 Intel Deutschland GmbH
  */
@@ -103,6 +103,18 @@ struct iwl_rx_completion_desc {
 	u8 reserved2[25];
 } __packed;
 
+/**
+ * struct iwl_rx_completion_desc_bz - Bz completion descriptor
+ * @rbid: unique tag of the received buffer
+ * @flags: flags (0: fragmented, all others: reserved)
+ * @reserved: reserved
+ */
+struct iwl_rx_completion_desc_bz {
+	__le16 rbid;
+	u8 flags;
+	u8 reserved[1];
+} __packed;
+
 /**
  * struct iwl_rxq - Rx queue
  * @id: queue index
@@ -133,11 +145,7 @@ struct iwl_rxq {
 	int id;
 	void *bd;
 	dma_addr_t bd_dma;
-	union {
-		void *used_bd;
-		__le32 *bd_32;
-		struct iwl_rx_completion_desc *cd;
-	};
+	void *used_bd;
 	dma_addr_t used_bd_dma;
 	u32 read;
 	u32 write;
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
index e4016c97d5ab..331c1a059183 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
 /*
- * Copyright (C) 2003-2014, 2018-2021 Intel Corporation
+ * Copyright (C) 2003-2014, 2018-2022 Intel Corporation
  * Copyright (C) 2013-2015 Intel Mobile Communications GmbH
  * Copyright (C) 2016-2017 Intel Deutschland GmbH
  */
@@ -652,23 +652,30 @@ void iwl_pcie_rx_allocator_work(struct work_struct *data)
 	iwl_pcie_rx_allocator(trans_pcie->trans);
 }
 
-static int iwl_pcie_free_bd_size(struct iwl_trans *trans, bool use_rx_td)
+static int iwl_pcie_free_bd_size(struct iwl_trans *trans)
 {
-	struct iwl_rx_transfer_desc *rx_td;
+	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210)
+		return sizeof(struct iwl_rx_transfer_desc);
 
-	if (use_rx_td)
-		return sizeof(*rx_td);
-	else
-		return trans->trans_cfg->mq_rx_supported ? sizeof(__le64) :
-			sizeof(__le32);
+	return trans->trans_cfg->mq_rx_supported ?
+			sizeof(__le64) : sizeof(__le32);
+}
+
+static int iwl_pcie_used_bd_size(struct iwl_trans *trans)
+{
+	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_BZ)
+		return sizeof(struct iwl_rx_completion_desc_bz);
+
+	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210)
+		return sizeof(struct iwl_rx_completion_desc);
+
+	return sizeof(__le32);
 }
 
 static void iwl_pcie_free_rxq_dma(struct iwl_trans *trans,
 				  struct iwl_rxq *rxq)
 {
-	bool use_rx_td = (trans->trans_cfg->device_family >=
-			  IWL_DEVICE_FAMILY_AX210);
-	int free_size = iwl_pcie_free_bd_size(trans, use_rx_td);
+	int free_size = iwl_pcie_free_bd_size(trans);
 
 	if (rxq->bd)
 		dma_free_coherent(trans->dev,
@@ -682,8 +689,8 @@ static void iwl_pcie_free_rxq_dma(struct iwl_trans *trans,
 
 	if (rxq->used_bd)
 		dma_free_coherent(trans->dev,
-				  (use_rx_td ? sizeof(*rxq->cd) :
-				   sizeof(__le32)) * rxq->queue_size,
+				  iwl_pcie_used_bd_size(trans) *
+					rxq->queue_size,
 				  rxq->used_bd, rxq->used_bd_dma);
 	rxq->used_bd_dma = 0;
 	rxq->used_bd = NULL;
@@ -707,7 +714,7 @@ static int iwl_pcie_alloc_rxq_dma(struct iwl_trans *trans,
 	else
 		rxq->queue_size = RX_QUEUE_SIZE;
 
-	free_size = iwl_pcie_free_bd_size(trans, use_rx_td);
+	free_size = iwl_pcie_free_bd_size(trans);
 
 	/*
 	 * Allocate the circular buffer of Read Buffer Descriptors
@@ -720,7 +727,8 @@ static int iwl_pcie_alloc_rxq_dma(struct iwl_trans *trans,
 
 	if (trans->trans_cfg->mq_rx_supported) {
 		rxq->used_bd = dma_alloc_coherent(dev,
-						  (use_rx_td ? sizeof(*rxq->cd) : sizeof(__le32)) * rxq->queue_size,
+						  iwl_pcie_used_bd_size(trans) *
+							rxq->queue_size,
 						  &rxq->used_bd_dma,
 						  GFP_KERNEL);
 		if (!rxq->used_bd)
@@ -1417,6 +1425,7 @@ static struct iwl_rx_mem_buffer *iwl_pcie_get_rxb(struct iwl_trans *trans,
 	u16 vid;
 
 	BUILD_BUG_ON(sizeof(struct iwl_rx_completion_desc) != 32);
+	BUILD_BUG_ON(sizeof(struct iwl_rx_completion_desc_bz) != 4);
 
 	if (!trans->trans_cfg->mq_rx_supported) {
 		rxb = rxq->queue[i];
@@ -1424,11 +1433,20 @@ static struct iwl_rx_mem_buffer *iwl_pcie_get_rxb(struct iwl_trans *trans,
 		return rxb;
 	}
 
-	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210) {
-		vid = le16_to_cpu(rxq->cd[i].rbid);
-		*join = rxq->cd[i].flags & IWL_RX_CD_FLAGS_FRAGMENTED;
+	if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_BZ) {
+		struct iwl_rx_completion_desc_bz *cd = rxq->used_bd;
+
+		vid = le16_to_cpu(cd[i].rbid);
+		*join = cd[i].flags & IWL_RX_CD_FLAGS_FRAGMENTED;
+	} else if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210) {
+		struct iwl_rx_completion_desc *cd = rxq->used_bd;
+
+		vid = le16_to_cpu(cd[i].rbid);
+		*join = cd[i].flags & IWL_RX_CD_FLAGS_FRAGMENTED;
 	} else {
-		vid = le32_to_cpu(rxq->bd_32[i]) & 0x0FFF; /* 12-bit VID */
+		__le32 *cd = rxq->used_bd;
+
+		vid = le32_to_cpu(cd[i]) & 0x0FFF; /* 12-bit VID */
 	}
 
 	if (!vid || vid > RX_POOL_SIZE(trans_pcie->num_rx_bufs))
-- 
2.34.1


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

* [PATCH 06/12] iwlwifi: pcie: Adapt rx queue write pointer for Bz family
  2022-02-04 10:24 [PATCH 00/12] iwlwifi: updates intended for v5.18 2022-02-04 Luca Coelho
                   ` (4 preceding siblings ...)
  2022-02-04 10:25 ` [PATCH 05/12] iwlwifi: pcie: adjust to Bz completion descriptor Luca Coelho
@ 2022-02-04 10:25 ` Luca Coelho
  2022-02-04 10:25 ` [PATCH 07/12] iwlwifi: drv: load tlv debug data earlier Luca Coelho
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Luca Coelho @ 2022-02-04 10:25 UTC (permalink / raw)
  To: kvalo; +Cc: luca, linux-wireless

From: Matti Gottlieb <matti.gottlieb@intel.com>

Adapt rx queue write pointer for Bz family.
The register has moved to the same one as Tx.

Signed-off-by: Matti Gottlieb <matti.gottlieb@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/intel/iwlwifi/iwl-csr.h | 3 +++
 drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 9 ++++++---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-csr.h b/drivers/net/wireless/intel/iwlwifi/iwl-csr.h
index f90d4662c164..c0a18e820b51 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-csr.h
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-csr.h
@@ -533,6 +533,9 @@ enum {
  * 11-8:  queue selector
  */
 #define HBUS_TARG_WRPTR         (HBUS_BASE+0x060)
+/* This register is common for Tx and Rx, Rx queues start from 512 */
+#define HBUS_TARG_WRPTR_Q_SHIFT (16)
+#define HBUS_TARG_WRPTR_RX_Q(q) (((q) + 512) << HBUS_TARG_WRPTR_Q_SHIFT)
 
 /**********************************************************
  * CSR values
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
index 331c1a059183..71db571a42e0 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/rx.c
@@ -190,11 +190,14 @@ static void iwl_pcie_rxq_inc_wr_ptr(struct iwl_trans *trans,
 	}
 
 	rxq->write_actual = round_down(rxq->write, 8);
-	if (trans->trans_cfg->mq_rx_supported)
+	if (!trans->trans_cfg->mq_rx_supported)
+		iwl_write32(trans, FH_RSCSR_CHNL0_WPTR, rxq->write_actual);
+	else if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_BZ)
+		iwl_write32(trans, HBUS_TARG_WRPTR, rxq->write_actual |
+			    HBUS_TARG_WRPTR_RX_Q(rxq->id));
+	else
 		iwl_write32(trans, RFH_Q_FRBDCB_WIDX_TRG(rxq->id),
 			    rxq->write_actual);
-	else
-		iwl_write32(trans, FH_RSCSR_CHNL0_WPTR, rxq->write_actual);
 }
 
 static void iwl_pcie_rxq_check_wrptr(struct iwl_trans *trans)
-- 
2.34.1


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

* [PATCH 07/12] iwlwifi: drv: load tlv debug data earlier
  2022-02-04 10:24 [PATCH 00/12] iwlwifi: updates intended for v5.18 2022-02-04 Luca Coelho
                   ` (5 preceding siblings ...)
  2022-02-04 10:25 ` [PATCH 06/12] iwlwifi: pcie: Adapt rx queue write pointer for Bz family Luca Coelho
@ 2022-02-04 10:25 ` Luca Coelho
  2022-02-04 10:25 ` [PATCH 08/12] iwlwifi: eeprom: clean up macros Luca Coelho
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Luca Coelho @ 2022-02-04 10:25 UTC (permalink / raw)
  To: kvalo; +Cc: luca, linux-wireless

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

There's no good reason to pick the opmode first and load this
under the mutex, so just load it before continuing. This will
let us load it asynchronously more easily later.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/intel/iwlwifi/iwl-drv.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
index 5a9e644a791c..ab52136cffb4 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-drv.c
@@ -1647,6 +1647,8 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context)
 	/* We have our copies now, allow OS release its copies */
 	release_firmware(ucode_raw);
 
+	iwl_dbg_tlv_load_bin(drv->trans->dev, drv->trans);
+
 	mutex_lock(&iwlwifi_opmode_table_mtx);
 	switch (fw->type) {
 	case IWL_FW_DVM:
@@ -1663,8 +1665,6 @@ static void iwl_req_fw_callback(const struct firmware *ucode_raw, void *context)
 	IWL_INFO(drv, "loaded firmware version %s op_mode %s\n",
 		 drv->fw.fw_version, op->name);
 
-	iwl_dbg_tlv_load_bin(drv->trans->dev, drv->trans);
-
 	/* add this device to the list of devices using this op_mode */
 	list_add_tail(&drv->list, &op->drv);
 
-- 
2.34.1


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

* [PATCH 08/12] iwlwifi: eeprom: clean up macros
  2022-02-04 10:24 [PATCH 00/12] iwlwifi: updates intended for v5.18 2022-02-04 Luca Coelho
                   ` (6 preceding siblings ...)
  2022-02-04 10:25 ` [PATCH 07/12] iwlwifi: drv: load tlv debug data earlier Luca Coelho
@ 2022-02-04 10:25 ` Luca Coelho
  2022-02-04 10:25 ` [PATCH 09/12] iwlwifi: remove unused macros Luca Coelho
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Luca Coelho @ 2022-02-04 10:25 UTC (permalink / raw)
  To: kvalo; +Cc: luca, linux-wireless

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

There are two versions of the same definitions, with and without
IWL_ prefix. Use the ones with IWL_ prefix, keeping the correct
comment (microseconds).

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/intel/iwlwifi/iwl-eeprom-read.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-eeprom-read.c b/drivers/net/wireless/intel/iwlwifi/iwl-eeprom-read.c
index b9e86bf972e5..5f386bb1a353 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-eeprom-read.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-eeprom-read.c
@@ -23,26 +23,22 @@
  */
 #define IWL_EEPROM_ACCESS_TIMEOUT	5000 /* uSec */
 
-#define IWL_EEPROM_SEM_TIMEOUT		10   /* microseconds */
-#define IWL_EEPROM_SEM_RETRY_LIMIT	1000 /* number of attempts (not time) */
-
-
 /*
  * The device's EEPROM semaphore prevents conflicts between driver and uCode
  * when accessing the EEPROM; each access is a series of pulses to/from the
  * EEPROM chip, not a single event, so even reads could conflict if they
  * weren't arbitrated by the semaphore.
  */
+#define IWL_EEPROM_SEM_TIMEOUT		10   /* microseconds */
+#define IWL_EEPROM_SEM_RETRY_LIMIT	1000 /* number of attempts (not time) */
 
-#define	EEPROM_SEM_TIMEOUT 10		/* milliseconds */
-#define EEPROM_SEM_RETRY_LIMIT 1000	/* number of attempts (not time) */
 
 static int iwl_eeprom_acquire_semaphore(struct iwl_trans *trans)
 {
 	u16 count;
 	int ret;
 
-	for (count = 0; count < EEPROM_SEM_RETRY_LIMIT; count++) {
+	for (count = 0; count < IWL_EEPROM_SEM_RETRY_LIMIT; count++) {
 		/* Request semaphore */
 		iwl_set_bit(trans, CSR_HW_IF_CONFIG_REG,
 			    CSR_HW_IF_CONFIG_REG_BIT_EEPROM_OWN_SEM);
@@ -51,7 +47,7 @@ static int iwl_eeprom_acquire_semaphore(struct iwl_trans *trans)
 		ret = iwl_poll_bit(trans, CSR_HW_IF_CONFIG_REG,
 				CSR_HW_IF_CONFIG_REG_BIT_EEPROM_OWN_SEM,
 				CSR_HW_IF_CONFIG_REG_BIT_EEPROM_OWN_SEM,
-				EEPROM_SEM_TIMEOUT);
+				IWL_EEPROM_SEM_TIMEOUT);
 		if (ret >= 0) {
 			IWL_DEBUG_EEPROM(trans->dev,
 					 "Acquired semaphore after %d tries.\n",
-- 
2.34.1


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

* [PATCH 09/12] iwlwifi: remove unused macros
  2022-02-04 10:24 [PATCH 00/12] iwlwifi: updates intended for v5.18 2022-02-04 Luca Coelho
                   ` (7 preceding siblings ...)
  2022-02-04 10:25 ` [PATCH 08/12] iwlwifi: eeprom: clean up macros Luca Coelho
@ 2022-02-04 10:25 ` Luca Coelho
  2022-02-04 10:25 ` [PATCH 10/12] iwlwifi: debugfs: remove useless double condition Luca Coelho
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 17+ messages in thread
From: Luca Coelho @ 2022-02-04 10:25 UTC (permalink / raw)
  To: kvalo; +Cc: luca, linux-wireless

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

Found with W=2, remove unused macros in C files. In one case
move the macro under the corresponding ifdef.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/intel/iwlwifi/cfg/22000.c   | 2 --
 drivers/net/wireless/intel/iwlwifi/fw/dbg.c      | 3 ---
 drivers/net/wireless/intel/iwlwifi/iwl-phy-db.c  | 4 +---
 drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 2 +-
 drivers/net/wireless/intel/iwlwifi/mvm/fw.c      | 2 --
 drivers/net/wireless/intel/iwlwifi/mvm/rs.c      | 2 --
 drivers/net/wireless/intel/iwlwifi/mvm/scan.c    | 1 -
 7 files changed, 2 insertions(+), 14 deletions(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/22000.c b/drivers/net/wireless/intel/iwlwifi/cfg/22000.c
index c7bda7246f0d..1fa29a35273d 100644
--- a/drivers/net/wireless/intel/iwlwifi/cfg/22000.c
+++ b/drivers/net/wireless/intel/iwlwifi/cfg/22000.c
@@ -121,8 +121,6 @@
 		IWL_BZ_A_FM_A_FW_PRE __stringify(api) ".ucode"
 #define IWL_GL_A_FM_A_MODULE_FIRMWARE(api) \
 		IWL_GL_A_FM_A_FW_PRE __stringify(api) ".ucode"
-#define IWL_BZ_Z_GF_A_MODULE_FIRMWARE(api) \
-	IWL_BZ_Z_GF_A_FW_PRE __stringify(api) ".ucode"
 #define IWL_BNJ_A_FM_A_MODULE_FIRMWARE(api) \
 	IWL_BNJ_A_FM_A_FW_PRE __stringify(api) ".ucode"
 #define IWL_BNJ_A_FM4_A_MODULE_FIRMWARE(api) \
diff --git a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
index 0a5d860e489e..238ba4384cd1 100644
--- a/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
+++ b/drivers/net/wireless/intel/iwlwifi/fw/dbg.c
@@ -303,9 +303,6 @@ static void iwl_fw_dump_txf(struct iwl_fw_runtime *fwrt,
 	iwl_trans_release_nic_access(fwrt->trans);
 }
 
-#define IWL8260_ICCM_OFFSET		0x44000 /* Only for B-step */
-#define IWL8260_ICCM_LEN		0xC000 /* Only for B-step */
-
 struct iwl_prph_range {
 	u32 start, end;
 };
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-phy-db.c b/drivers/net/wireless/intel/iwlwifi/iwl-phy-db.c
index 5378315d0179..0a93ac769f66 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-phy-db.c
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-phy-db.c
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
 /*
- * Copyright (C) 2005-2014, 2020 Intel Corporation
+ * Copyright (C) 2005-2014, 2020-2021 Intel Corporation
  * Copyright (C) 2016 Intel Deutschland GmbH
  */
 #include <linux/slab.h>
@@ -13,8 +13,6 @@
 #include "iwl-op-mode.h"
 #include "iwl-trans.h"
 
-#define CHANNEL_NUM_SIZE	4	/* num of channels in calib_ch size */
-
 struct iwl_phy_db_entry {
 	u16	size;
 	u8	*data;
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c b/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c
index be11161bc57d..a90323e2075f 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c
@@ -1369,8 +1369,8 @@ static ssize_t iwl_dbgfs_dbg_time_point_write(struct iwl_mvm *mvm,
 	return count;
 }
 
-#define ADD_TEXT(...) pos += scnprintf(buf + pos, bufsz - pos, __VA_ARGS__)
 #ifdef CONFIG_IWLWIFI_BCAST_FILTERING
+#define ADD_TEXT(...) pos += scnprintf(buf + pos, bufsz - pos, __VA_ARGS__)
 static ssize_t iwl_dbgfs_bcast_filters_read(struct file *file,
 					    char __user *user_buf,
 					    size_t count, loff_t *ppos)
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
index 14e067c834e8..1e78599b63e3 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c
@@ -25,8 +25,6 @@
 #define MVM_UCODE_ALIVE_TIMEOUT	(HZ)
 #define MVM_UCODE_CALIB_TIMEOUT	(2 * HZ)
 
-#define UCODE_VALID_OK	cpu_to_le32(0x1)
-
 #define IWL_PPAG_MASK 3
 #define IWL_PPAG_ETSI_MASK BIT(0)
 
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/rs.c b/drivers/net/wireless/intel/iwlwifi/mvm/rs.c
index f4d02f9fe16d..62114616317c 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/rs.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/rs.c
@@ -454,8 +454,6 @@ static const u16 expected_tpt_mimo2_160MHz[4][IWL_RATE_COUNT] = {
 	{0, 0, 0, 0, 971, 0, 1925, 2861, 3779, 5574, 7304, 8147, 8976, 10592, 11640},
 };
 
-#define MCS_INDEX_PER_STREAM	(8)
-
 static const char *rs_pretty_lq_type(enum iwl_table_type type)
 {
 	static const char * const lq_types[] = {
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
index 901df916baa4..9377549b1af5 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
@@ -20,7 +20,6 @@
 #define IWL_SCAN_DWELL_FRAGMENTED	44
 #define IWL_SCAN_DWELL_EXTENDED		90
 #define IWL_SCAN_NUM_OF_FRAGS		3
-#define IWL_SCAN_LAST_2_4_CHN		14
 
 /* adaptive dwell max budget time [TU] for full scan */
 #define IWL_SCAN_ADWELL_MAX_BUDGET_FULL_SCAN 300
-- 
2.34.1


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

* [PATCH 10/12] iwlwifi: debugfs: remove useless double condition
  2022-02-04 10:24 [PATCH 00/12] iwlwifi: updates intended for v5.18 2022-02-04 Luca Coelho
                   ` (8 preceding siblings ...)
  2022-02-04 10:25 ` [PATCH 09/12] iwlwifi: remove unused macros Luca Coelho
@ 2022-02-04 10:25 ` Luca Coelho
  2022-02-04 10:25 ` [PATCH 11/12] iwlwifi: mei: use C99 initializer for device IDs Luca Coelho
  2022-02-04 10:25 ` [PATCH 12/12] iwlwifi: mvm: Unify the scan iteration functions Luca Coelho
  11 siblings, 0 replies; 17+ messages in thread
From: Luca Coelho @ 2022-02-04 10:25 UTC (permalink / raw)
  To: kvalo; +Cc: luca, linux-wireless

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

There's no point spelling out the same condition twice,
so remove the second one.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c b/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c
index a90323e2075f..603ce5878600 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c
@@ -425,8 +425,7 @@ static ssize_t iwl_dbgfs_amsdu_len_write(struct ieee80211_sta *sta,
 		return -EINVAL;
 
 	/* only change from debug set <-> debug unset */
-	if ((amsdu_len && mvmsta->orig_amsdu_len) ||
-	    (!!amsdu_len && mvmsta->orig_amsdu_len))
+	if (amsdu_len && mvmsta->orig_amsdu_len)
 		return -EBUSY;
 
 	if (amsdu_len) {
-- 
2.34.1


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

* [PATCH 11/12] iwlwifi: mei: use C99 initializer for device IDs
  2022-02-04 10:24 [PATCH 00/12] iwlwifi: updates intended for v5.18 2022-02-04 Luca Coelho
                   ` (9 preceding siblings ...)
  2022-02-04 10:25 ` [PATCH 10/12] iwlwifi: debugfs: remove useless double condition Luca Coelho
@ 2022-02-04 10:25 ` Luca Coelho
  2022-02-04 10:25 ` [PATCH 12/12] iwlwifi: mvm: Unify the scan iteration functions Luca Coelho
  11 siblings, 0 replies; 17+ messages in thread
From: Luca Coelho @ 2022-02-04 10:25 UTC (permalink / raw)
  To: kvalo; +Cc: luca, linux-wireless

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

There's another field and so W=2 warns about this code, but
in general it's nicer to use C99 initializers anyway to make
the code easier to read.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/intel/iwlwifi/mei/main.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/mei/main.c b/drivers/net/wireless/intel/iwlwifi/mei/main.c
index 8295cbbb497c..25975d02da6a 100644
--- a/drivers/net/wireless/intel/iwlwifi/mei/main.c
+++ b/drivers/net/wireless/intel/iwlwifi/mei/main.c
@@ -1980,7 +1980,11 @@ static void iwl_mei_remove(struct mei_cl_device *cldev)
 }
 
 static const struct mei_cl_device_id iwl_mei_tbl[] = {
-	{ KBUILD_MODNAME, MEI_WLAN_UUID, MEI_CL_VERSION_ANY},
+	{
+		.name = KBUILD_MODNAME,
+		.uuid = MEI_WLAN_UUID,
+		.version = MEI_CL_VERSION_ANY,
+	},
 
 	/* required last entry */
 	{ }
-- 
2.34.1


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

* [PATCH 12/12] iwlwifi: mvm: Unify the scan iteration functions
  2022-02-04 10:24 [PATCH 00/12] iwlwifi: updates intended for v5.18 2022-02-04 Luca Coelho
                   ` (10 preceding siblings ...)
  2022-02-04 10:25 ` [PATCH 11/12] iwlwifi: mei: use C99 initializer for device IDs Luca Coelho
@ 2022-02-04 10:25 ` Luca Coelho
  11 siblings, 0 replies; 17+ messages in thread
From: Luca Coelho @ 2022-02-04 10:25 UTC (permalink / raw)
  To: kvalo; +Cc: luca, linux-wireless

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

As there is not real need to iterate the active interfaces
twice.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
---
 drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 74 ++++++++-----------
 1 file changed, 32 insertions(+), 42 deletions(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
index 9377549b1af5..76c38645fbd7 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
@@ -168,17 +168,6 @@ iwl_mvm_scan_rate_n_flags(struct iwl_mvm *mvm, enum nl80211_band band,
 		return cpu_to_le32(IWL_RATE_6M_PLCP | tx_ant);
 }
 
-static void iwl_mvm_scan_condition_iterator(void *data, u8 *mac,
-					    struct ieee80211_vif *vif)
-{
-	struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
-	int *global_cnt = data;
-
-	if (vif->type != NL80211_IFTYPE_P2P_DEVICE && mvmvif->phy_ctxt &&
-	    mvmvif->phy_ctxt->id < NUM_PHY_CTX)
-		*global_cnt += 1;
-}
-
 static enum iwl_mvm_traffic_load iwl_mvm_get_traffic_load(struct iwl_mvm *mvm)
 {
 	return mvm->tcm.result.global_load;
@@ -190,26 +179,31 @@ iwl_mvm_get_traffic_load_band(struct iwl_mvm *mvm, enum nl80211_band band)
 	return mvm->tcm.result.band_load[band];
 }
 
-struct iwl_is_dcm_with_go_iterator_data {
+struct iwl_mvm_scan_iter_data {
+	u32 global_cnt;
 	struct ieee80211_vif *current_vif;
 	bool is_dcm_with_p2p_go;
 };
 
-static void iwl_mvm_is_dcm_with_go_iterator(void *_data, u8 *mac,
-					    struct ieee80211_vif *vif)
+static void iwl_mvm_scan_iterator(void *_data, u8 *mac,
+				  struct ieee80211_vif *vif)
 {
-	struct iwl_is_dcm_with_go_iterator_data *data = _data;
-	struct iwl_mvm_vif *other_mvmvif = iwl_mvm_vif_from_mac80211(vif);
-	struct iwl_mvm_vif *curr_mvmvif =
-		iwl_mvm_vif_from_mac80211(data->current_vif);
+	struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
+	struct iwl_mvm_scan_iter_data *data = _data;
+	struct iwl_mvm_vif *curr_mvmvif;
 
-	/* exclude the given vif */
-	if (vif == data->current_vif)
+	if (vif->type != NL80211_IFTYPE_P2P_DEVICE && mvmvif->phy_ctxt &&
+	    mvmvif->phy_ctxt->id < NUM_PHY_CTX)
+		data->global_cnt += 1;
+
+	if (!data->current_vif || vif == data->current_vif)
 		return;
 
+	curr_mvmvif = iwl_mvm_vif_from_mac80211(data->current_vif);
+
 	if (vif->type == NL80211_IFTYPE_AP && vif->p2p &&
-	    other_mvmvif->phy_ctxt && curr_mvmvif->phy_ctxt &&
-	    other_mvmvif->phy_ctxt->id != curr_mvmvif->phy_ctxt->id)
+	    mvmvif->phy_ctxt && curr_mvmvif->phy_ctxt &&
+	    mvmvif->phy_ctxt->id != curr_mvmvif->phy_ctxt->id)
 		data->is_dcm_with_p2p_go = true;
 }
 
@@ -219,13 +213,18 @@ iwl_mvm_scan_type _iwl_mvm_get_scan_type(struct iwl_mvm *mvm,
 					 enum iwl_mvm_traffic_load load,
 					 bool low_latency)
 {
-	int global_cnt = 0;
+	struct iwl_mvm_scan_iter_data data = {
+		.current_vif = vif,
+		.is_dcm_with_p2p_go = false,
+		.global_cnt = 0,
+	};
 
 	ieee80211_iterate_active_interfaces_atomic(mvm->hw,
-					    IEEE80211_IFACE_ITER_NORMAL,
-					    iwl_mvm_scan_condition_iterator,
-					    &global_cnt);
-	if (!global_cnt)
+						   IEEE80211_IFACE_ITER_NORMAL,
+						   iwl_mvm_scan_iterator,
+						   &data);
+
+	if (!data.global_cnt)
 		return IWL_SCAN_TYPE_UNASSOC;
 
 	if (fw_has_api(&mvm->fw->ucode_capa,
@@ -234,23 +233,14 @@ iwl_mvm_scan_type _iwl_mvm_get_scan_type(struct iwl_mvm *mvm,
 		    (!vif || vif->type != NL80211_IFTYPE_P2P_DEVICE))
 			return IWL_SCAN_TYPE_FRAGMENTED;
 
-		/* in case of DCM with GO where BSS DTIM interval < 220msec
+		/*
+		 * in case of DCM with GO where BSS DTIM interval < 220msec
 		 * set all scan requests as fast-balance scan
-		 * */
+		 */
 		if (vif && vif->type == NL80211_IFTYPE_STATION &&
-		    vif->bss_conf.dtim_period < 220) {
-			struct iwl_is_dcm_with_go_iterator_data data = {
-				.current_vif = vif,
-				.is_dcm_with_p2p_go = false,
-			};
-
-			ieee80211_iterate_active_interfaces_atomic(mvm->hw,
-						IEEE80211_IFACE_ITER_NORMAL,
-						iwl_mvm_is_dcm_with_go_iterator,
-						&data);
-			if (data.is_dcm_with_p2p_go)
-				return IWL_SCAN_TYPE_FAST_BALANCE;
-		}
+		    vif->bss_conf.dtim_period < 220 &&
+		    data.is_dcm_with_p2p_go)
+			return IWL_SCAN_TYPE_FAST_BALANCE;
 	}
 
 	if (load >= IWL_MVM_TRAFFIC_MEDIUM || low_latency)
-- 
2.34.1


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

* Re: [PATCH 04/12] iwlwifi: mvm: Passively scan non PSC channels only when requested so
  2022-02-04 10:25 ` [PATCH 04/12] iwlwifi: mvm: Passively scan non PSC channels only when requested so Luca Coelho
@ 2022-03-25 17:11   ` Ben Greear
  2022-04-04 19:02     ` Peer, Ilan
  0 siblings, 1 reply; 17+ messages in thread
From: Ben Greear @ 2022-03-25 17:11 UTC (permalink / raw)
  To: Luca Coelho, kvalo; +Cc: linux-wireless

On 2/4/22 2:25 AM, Luca Coelho wrote:
> From: Ilan Peer <ilan.peer@intel.com>
> 
> Non PSC channels should generally be scanned based on information about
> collocated APs obtained during scan on legacy bands, and otherwise
> should not be scanned unless specifically requested so (as there are
> relatively many non PSC channels, scanning them passively is time consuming
> and interferes with regular data traffic).
> 
> Thus, modify the scan logic to avoid passively scanning PSC channels
> if there is no information about collocated APs and the scan is not
> a passive scan.

Hello,

This breaks association against a Cisco test AP on frequency 5995.

Here are logs of the previous commit working (scan takes longer, but SSID
is found), and at the bottom, scan with this commit, which fails to detect
the SSID.

# ethtool -i sta0000
driver: iwlwifi
version: 5.17.0+
firmware-version: 68.01d30b0c.0 ty-a0-gf-a0-68.uc
expansion-rom-version:
bus-info: 0000:05:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

It breaks on version 71 firmware too.

2022-03-25 09:56:35.464  1.1:  sta0000 (phy #0): scan started
2022-03-25 09:56:42.095  1.1:  sta0000 (phy #0): scan finished: 2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 5180 5200 5220 5240 5260 5280 
5300 5320 5500 5520 5540 5560 5580 5600 5620 5640 5660 5680 5700 5720 5745 5765 5785 5805 5825 5955 5975 5995 6015 6035 6055 6075 6095 6115 6135 6155 6175 6195 
6215 6235 6255 6275 6295 6315 6335 6355 6375 6395 6415 6435 6455 6475 6495 6515 6535 6555 6575 6595 6615 6635 6655 6675 6695 6715 6735 6755 6775 6795 6815 6835 
6855 6875 6895 6915 6935 6955 6975 6995 7015 7035 7055 7075 7095 7115, ""
2022-03-25 09:56:42.101  1.1:  IFNAME=sta0000 <3>SME: Trying to authenticate with 68:7d:b4:60:04:b8 (SSID=
2022-03-25 09:56:42.122  1.1:  sta0000: new station 68:7d:b4:60:04:b8
2022-03-25 09:56:42.252  1.1:  sta0000 (phy #0): auth 68:7d:b4:60:04:b8 -> a4:6b:b6:5a:b1:da status: 126: <unknown>
2022-03-25 09:56:42.254  1.1:  IFNAME=sta0000 <3>SME: Trying to authenticate with 68:7d:b4:60:04:b8 (SSID=
2022-03-25 09:56:42.310  1.1:  sta0000 (phy #0): auth 68:7d:b4:60:04:b8 -> a4:6b:b6:5a:b1:da status: 0: Successful
2022-03-25 09:56:42.310  1.1:  IFNAME=sta0000 <3>PMKSA-CACHE-ADDED 68:7d:b4:60:04:b8 0
2022-03-25 09:56:42.311  1.1:  IFNAME=sta0000 <3>Trying to associate with 68:7d:b4:60:04:b8 (SSID=
2022-03-25 09:56:42.312  1.1:  IFNAME=sta0000 <3>EAPOL-RX 68:7d:b4:60:04:b8 121
2022-03-25 09:56:42.313  1.1:  sta0000 (phy #0): assoc 68:7d:b4:60:04:b8 -> a4:6b:b6:5a:b1:da status: 0: Successful
2022-03-25 09:56:42.313  1.1:  IFNAME=sta0000 <3>Associated with 68:7d:b4:60:04:b8
2022-03-25 09:56:42.314  1.1:  IFNAME=sta0000 <3>EAPOL-RX 68:7d:b4:60:04:b8 121
2022-03-25 09:56:42.321  1.1:  IFNAME=sta0000 <3>CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
2022-03-25 09:56:42.322  1.1:  sta0000 (phy #0): ctrl. port TX status (cookie 1): acked
2022-03-25 09:56:42.323  1.1:  IFNAME=sta0000 <3>EAPOL-RX 68:7d:b4:60:04:b8 195
2022-03-25 09:56:42.328  1.1:  sta0000 (phy #0): ctrl. port TX status (cookie 2): acked
2022-03-25 09:56:42.364  1.1:  IFNAME=sta0000 <3>WPA: Key negotiation completed with 68:7d:b4:60:04:b8 [PTK=CCMP GTK=CCMP]
2022-03-25 09:56:42.403  1.1:  IFNAME=sta0000 <3>CTRL-EVENT-CONNECTED - Connection to 68:7d:b4:60:04:b8 completed [id=0 id_str=]
2022-03-25 09:56:42.403  1.1:  IFNAME=sta0000 <3>WPA: Key negotiation completed with 68:7d:b4:60:04:b8 [PTK=CCMP GTK=CCMP]



2022-03-25 10:05:52.416  1.1:  sta0000 (phy #7): scan started
2022-03-25 10:05:56.215  1.1:  sta0000 (phy #7): scan finished: 2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 5180 5200 5220 5240 5260 5280 
5300 5320 5500 5520 5540 5560 5580 5600 5620 5640 5660 5680 5700 5720 5745 5765 5785 5805 5825, ""
2022-03-25 10:05:56.215  1.1:  phy #7: regulatory domain change (phy): set to US by a driver request on phy7
2022-03-25 10:05:56.216  1.1:  IFNAME=sta0000 <3>CTRL-EVENT-NETWORK-NOT-FOUND
2022-03-25 10:05:56.216  1.1:  IFNAME=sta0000 <3>CTRL-EVENT-REGDOM-CHANGE init=DRIVER type=COUNTRY alpha2=US
2022-03-25 10:06:01.217  1.1:  IFNAME=sta0000 <3>CTRL-EVENT-SCAN-STARTED
2022-03-25 10:06:01.217  1.1:  sta0000 (phy #7): scan started
2022-03-25 10:06:02.739  1.1:  sta0000 (phy #7): scan finished: 2412 2417 2422 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 5180 5200 5220 5240 5260 5280 
5300 5320 5500 5520 5540 5560 5580 5600 5620 5640 5660 5680 5700 5720 5745 5765 5785 5805 5825 5955 5975 5995 6015 6035 6055 6075 6095 6115 6135 6155 6175 6195 
6215 6235 6255 6275 6295 6315 6335 6355 6375 6395 6415 6435 6455 6475 6495 6515 6535 6555 6575 6595 6615 6635 6655 6675 6695 6715 6735 6755 6775 6795 6815 6835 
6855 6875 6895 6915 6935 6955 6975 6995 7015 7035 7055 7075 7095 7115, ""

[ SSID is not found, sta never associates]

Thanks,
Ben

> 
> Signed-off-by: Ilan Peer <ilan.peer@intel.com>
> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
> ---
>   drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 42 ++++++++++++++-----
>   1 file changed, 32 insertions(+), 10 deletions(-)
> 
> diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
> index 8c7cb491330d..901df916baa4 100644
> --- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
> +++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
> @@ -1728,27 +1728,37 @@ iwl_mvm_umac_scan_fill_6g_chan_list(struct iwl_mvm *mvm,
>   }
>   
>   /* TODO: this function can be merged with iwl_mvm_scan_umac_fill_ch_p_v6 */
> -static void
> -iwl_mvm_umac_scan_cfg_channels_v6_6g(struct iwl_mvm_scan_params *params,
> +static u32
> +iwl_mvm_umac_scan_cfg_channels_v6_6g(struct iwl_mvm *mvm,
> +				     struct iwl_mvm_scan_params *params,
>   				     u32 n_channels,
>   				     struct iwl_scan_probe_params_v4 *pp,
>   				     struct iwl_scan_channel_params_v6 *cp,
>   				     enum nl80211_iftype vif_type)
>   {
> -	struct iwl_scan_channel_cfg_umac *channel_cfg = cp->channel_config;
>   	int i;
>   	struct cfg80211_scan_6ghz_params *scan_6ghz_params =
>   		params->scan_6ghz_params;
> +	u32 ch_cnt;
>   
> -	for (i = 0; i < params->n_channels; i++) {
> +	for (i = 0, ch_cnt = 0; i < params->n_channels; i++) {
>   		struct iwl_scan_channel_cfg_umac *cfg =
> -			&cp->channel_config[i];
> +			&cp->channel_config[ch_cnt];
>   
>   		u32 s_ssid_bitmap = 0, bssid_bitmap = 0, flags = 0;
>   		u8 j, k, s_max = 0, b_max = 0, n_used_bssid_entries;
>   		bool force_passive, found = false, allow_passive = true,
>   		     unsolicited_probe_on_chan = false, psc_no_listen = false;
>   
> +		/*
> +		 * Avoid performing passive scan on non PSC channels unless the
> +		 * scan is specifically a passive scan, i.e., no SSIDs
> +		 * configured in the scan command.
> +		 */
> +		if (!cfg80211_channel_is_psc(params->channels[i]) &&
> +		    !params->n_6ghz_params && params->n_ssids)
> +			continue;
> +
>   		cfg->v1.channel_num = params->channels[i]->hw_value;
>   		cfg->v2.band = 2;
>   		cfg->v2.iter_count = 1;
> @@ -1868,8 +1878,16 @@ iwl_mvm_umac_scan_cfg_channels_v6_6g(struct iwl_mvm_scan_params *params,
>   		else
>   			flags |= bssid_bitmap | (s_ssid_bitmap << 16);
>   
> -		channel_cfg[i].flags |= cpu_to_le32(flags);
> +		cfg->flags |= cpu_to_le32(flags);
> +		ch_cnt++;
>   	}
> +
> +	if (params->n_channels > ch_cnt)
> +		IWL_DEBUG_SCAN(mvm,
> +			       "6GHz: reducing number channels: (%u->%u)\n",
> +			       params->n_channels, ch_cnt);
> +
> +	return ch_cnt;
>   }
>   
>   static u8 iwl_mvm_scan_umac_chan_flags_v2(struct iwl_mvm *mvm,
> @@ -2415,10 +2433,14 @@ static int iwl_mvm_scan_umac_v14_and_above(struct iwl_mvm *mvm,
>   
>   	iwl_mvm_umac_scan_fill_6g_chan_list(mvm, params, pb);
>   
> -	iwl_mvm_umac_scan_cfg_channels_v6_6g(params,
> -					     params->n_channels,
> -					     pb, cp, vif->type);
> -	cp->count = params->n_channels;
> +	cp->count = iwl_mvm_umac_scan_cfg_channels_v6_6g(mvm, params,
> +							 params->n_channels,
> +							 pb, cp, vif->type);
> +	if (!cp->count) {
> +		mvm->scan_uid_status[uid] = 0;
> +		return -EINVAL;
> +	}
> +
>   	if (!params->n_ssids ||
>   	    (params->n_ssids == 1 && !params->ssids[0].ssid_len))
>   		cp->flags |= IWL_SCAN_CHANNEL_FLAG_6G_PSC_NO_FILTER;
> 


-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com


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

* RE: [PATCH 04/12] iwlwifi: mvm: Passively scan non PSC channels only when requested so
  2022-03-25 17:11   ` Ben Greear
@ 2022-04-04 19:02     ` Peer, Ilan
  2022-04-05 19:05       ` Ben Greear
  0 siblings, 1 reply; 17+ messages in thread
From: Peer, Ilan @ 2022-04-04 19:02 UTC (permalink / raw)
  To: greearb, Luca Coelho, kvalo; +Cc: linux-wireless

Hi Ben,

Sorry for the late response.

Can you please try this with the following patch for hostap?

https://patchwork.ozlabs.org/project/hostap/patch/20211130153943.3531922-1-andrei.otcheretianski@intel.com/

I believe that reason the connection fails is due to user space not setting the collocated scan flag when not scanning passively.

If this resolves the issue, I'll try to find a better solution for handling this.

Thanks in advance,

Ilan.

> -----Original Message-----
> From: Ben Greear <greearb@candelatech.com>
> Sent: Friday, March 25, 2022 20:12
> To: Luca Coelho <luca@coelho.fi>; kvalo@kernel.org
> Cc: linux-wireless@vger.kernel.org
> Subject: Re: [PATCH 04/12] iwlwifi: mvm: Passively scan non PSC channels
> only when requested so
> 
> On 2/4/22 2:25 AM, Luca Coelho wrote:
> > From: Ilan Peer <ilan.peer@intel.com>
> >
> > Non PSC channels should generally be scanned based on information
> > about collocated APs obtained during scan on legacy bands, and
> > otherwise should not be scanned unless specifically requested so (as
> > there are relatively many non PSC channels, scanning them passively is
> > time consuming and interferes with regular data traffic).
> >
> > Thus, modify the scan logic to avoid passively scanning PSC channels
> > if there is no information about collocated APs and the scan is not a
> > passive scan.
> 
> Hello,
> 
> This breaks association against a Cisco test AP on frequency 5995.
> 
> Here are logs of the previous commit working (scan takes longer, but SSID is
> found), and at the bottom, scan with this commit, which fails to detect the
> SSID.
> 
> # ethtool -i sta0000
> driver: iwlwifi
> version: 5.17.0+
> firmware-version: 68.01d30b0c.0 ty-a0-gf-a0-68.uc
> expansion-rom-version:
> bus-info: 0000:05:00.0
> supports-statistics: yes
> supports-test: no
> supports-eeprom-access: no
> supports-register-dump: no
> supports-priv-flags: no
> 
> It breaks on version 71 firmware too.
> 
> 2022-03-25 09:56:35.464  1.1:  sta0000 (phy #0): scan started
> 2022-03-25 09:56:42.095  1.1:  sta0000 (phy #0): scan finished: 2412 2417 2422
> 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 5180 5200 5220 5240 5260
> 5280
> 5300 5320 5500 5520 5540 5560 5580 5600 5620 5640 5660 5680 5700 5720 5745
> 5765 5785 5805 5825 5955 5975 5995 6015 6035 6055 6075 6095 6115 6135 6155
> 6175 6195
> 6215 6235 6255 6275 6295 6315 6335 6355 6375 6395 6415 6435 6455 6475 6495
> 6515 6535 6555 6575 6595 6615 6635 6655 6675 6695 6715 6735 6755 6775 6795
> 6815 6835
> 6855 6875 6895 6915 6935 6955 6975 6995 7015 7035 7055 7075 7095 7115, ""
> 2022-03-25 09:56:42.101  1.1:  IFNAME=sta0000 <3>SME: Trying to
> authenticate with 68:7d:b4:60:04:b8 (SSID=
> 2022-03-25 09:56:42.122  1.1:  sta0000: new station 68:7d:b4:60:04:b8
> 2022-03-25 09:56:42.252  1.1:  sta0000 (phy #0): auth 68:7d:b4:60:04:b8 ->
> a4:6b:b6:5a:b1:da status: 126: <unknown>
> 2022-03-25 09:56:42.254  1.1:  IFNAME=sta0000 <3>SME: Trying to
> authenticate with 68:7d:b4:60:04:b8 (SSID=
> 2022-03-25 09:56:42.310  1.1:  sta0000 (phy #0): auth 68:7d:b4:60:04:b8 ->
> a4:6b:b6:5a:b1:da status: 0: Successful
> 2022-03-25 09:56:42.310  1.1:  IFNAME=sta0000 <3>PMKSA-CACHE-ADDED
> 68:7d:b4:60:04:b8 0
> 2022-03-25 09:56:42.311  1.1:  IFNAME=sta0000 <3>Trying to associate with
> 68:7d:b4:60:04:b8 (SSID=
> 2022-03-25 09:56:42.312  1.1:  IFNAME=sta0000 <3>EAPOL-RX
> 68:7d:b4:60:04:b8 121
> 2022-03-25 09:56:42.313  1.1:  sta0000 (phy #0): assoc 68:7d:b4:60:04:b8 ->
> a4:6b:b6:5a:b1:da status: 0: Successful
> 2022-03-25 09:56:42.313  1.1:  IFNAME=sta0000 <3>Associated with
> 68:7d:b4:60:04:b8
> 2022-03-25 09:56:42.314  1.1:  IFNAME=sta0000 <3>EAPOL-RX
> 68:7d:b4:60:04:b8 121
> 2022-03-25 09:56:42.321  1.1:  IFNAME=sta0000 <3>CTRL-EVENT-SUBNET-
> STATUS-UPDATE status=0
> 2022-03-25 09:56:42.322  1.1:  sta0000 (phy #0): ctrl. port TX status (cookie 1):
> acked
> 2022-03-25 09:56:42.323  1.1:  IFNAME=sta0000 <3>EAPOL-RX
> 68:7d:b4:60:04:b8 195
> 2022-03-25 09:56:42.328  1.1:  sta0000 (phy #0): ctrl. port TX status (cookie 2):
> acked
> 2022-03-25 09:56:42.364  1.1:  IFNAME=sta0000 <3>WPA: Key negotiation
> completed with 68:7d:b4:60:04:b8 [PTK=CCMP GTK=CCMP]
> 2022-03-25 09:56:42.403  1.1:  IFNAME=sta0000 <3>CTRL-EVENT-CONNECTED
> - Connection to 68:7d:b4:60:04:b8 completed [id=0 id_str=]
> 2022-03-25 09:56:42.403  1.1:  IFNAME=sta0000 <3>WPA: Key negotiation
> completed with 68:7d:b4:60:04:b8 [PTK=CCMP GTK=CCMP]
> 
> 
> 
> 2022-03-25 10:05:52.416  1.1:  sta0000 (phy #7): scan started
> 2022-03-25 10:05:56.215  1.1:  sta0000 (phy #7): scan finished: 2412 2417 2422
> 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 5180 5200 5220 5240 5260
> 5280
> 5300 5320 5500 5520 5540 5560 5580 5600 5620 5640 5660 5680 5700 5720 5745
> 5765 5785 5805 5825, ""
> 2022-03-25 10:05:56.215  1.1:  phy #7: regulatory domain change (phy): set to
> US by a driver request on phy7
> 2022-03-25 10:05:56.216  1.1:  IFNAME=sta0000 <3>CTRL-EVENT-NETWORK-
> NOT-FOUND
> 2022-03-25 10:05:56.216  1.1:  IFNAME=sta0000 <3>CTRL-EVENT-REGDOM-
> CHANGE init=DRIVER type=COUNTRY alpha2=US
> 2022-03-25 10:06:01.217  1.1:  IFNAME=sta0000 <3>CTRL-EVENT-SCAN-
> STARTED
> 2022-03-25 10:06:01.217  1.1:  sta0000 (phy #7): scan started
> 2022-03-25 10:06:02.739  1.1:  sta0000 (phy #7): scan finished: 2412 2417 2422
> 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 5180 5200 5220 5240 5260
> 5280
> 5300 5320 5500 5520 5540 5560 5580 5600 5620 5640 5660 5680 5700 5720 5745
> 5765 5785 5805 5825 5955 5975 5995 6015 6035 6055 6075 6095 6115 6135 6155
> 6175 6195
> 6215 6235 6255 6275 6295 6315 6335 6355 6375 6395 6415 6435 6455 6475 6495
> 6515 6535 6555 6575 6595 6615 6635 6655 6675 6695 6715 6735 6755 6775 6795
> 6815 6835
> 6855 6875 6895 6915 6935 6955 6975 6995 7015 7035 7055 7075 7095 7115, ""
> 
> [ SSID is not found, sta never associates]
> 
> Thanks,
> Ben
> 
> >
> > Signed-off-by: Ilan Peer <ilan.peer@intel.com>
> > Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
> > ---
> >   drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 42 ++++++++++++++-----
> >   1 file changed, 32 insertions(+), 10 deletions(-)
> >
> > diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
> > b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
> > index 8c7cb491330d..901df916baa4 100644
> > --- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
> > +++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
> > @@ -1728,27 +1728,37 @@ iwl_mvm_umac_scan_fill_6g_chan_list(struct
> iwl_mvm *mvm,
> >   }
> >
> >   /* TODO: this function can be merged with
> > iwl_mvm_scan_umac_fill_ch_p_v6 */ -static void
> > -iwl_mvm_umac_scan_cfg_channels_v6_6g(struct iwl_mvm_scan_params
> > *params,
> > +static u32
> > +iwl_mvm_umac_scan_cfg_channels_v6_6g(struct iwl_mvm *mvm,
> > +				     struct iwl_mvm_scan_params *params,
> >   				     u32 n_channels,
> >   				     struct iwl_scan_probe_params_v4 *pp,
> >   				     struct iwl_scan_channel_params_v6 *cp,
> >   				     enum nl80211_iftype vif_type)
> >   {
> > -	struct iwl_scan_channel_cfg_umac *channel_cfg = cp-
> >channel_config;
> >   	int i;
> >   	struct cfg80211_scan_6ghz_params *scan_6ghz_params =
> >   		params->scan_6ghz_params;
> > +	u32 ch_cnt;
> >
> > -	for (i = 0; i < params->n_channels; i++) {
> > +	for (i = 0, ch_cnt = 0; i < params->n_channels; i++) {
> >   		struct iwl_scan_channel_cfg_umac *cfg =
> > -			&cp->channel_config[i];
> > +			&cp->channel_config[ch_cnt];
> >
> >   		u32 s_ssid_bitmap = 0, bssid_bitmap = 0, flags = 0;
> >   		u8 j, k, s_max = 0, b_max = 0, n_used_bssid_entries;
> >   		bool force_passive, found = false, allow_passive = true,
> >   		     unsolicited_probe_on_chan = false, psc_no_listen = false;
> >
> > +		/*
> > +		 * Avoid performing passive scan on non PSC channels unless
> the
> > +		 * scan is specifically a passive scan, i.e., no SSIDs
> > +		 * configured in the scan command.
> > +		 */
> > +		if (!cfg80211_channel_is_psc(params->channels[i]) &&
> > +		    !params->n_6ghz_params && params->n_ssids)
> > +			continue;
> > +
> >   		cfg->v1.channel_num = params->channels[i]->hw_value;
> >   		cfg->v2.band = 2;
> >   		cfg->v2.iter_count = 1;
> > @@ -1868,8 +1878,16 @@
> iwl_mvm_umac_scan_cfg_channels_v6_6g(struct iwl_mvm_scan_params
> *params,
> >   		else
> >   			flags |= bssid_bitmap | (s_ssid_bitmap << 16);
> >
> > -		channel_cfg[i].flags |= cpu_to_le32(flags);
> > +		cfg->flags |= cpu_to_le32(flags);
> > +		ch_cnt++;
> >   	}
> > +
> > +	if (params->n_channels > ch_cnt)
> > +		IWL_DEBUG_SCAN(mvm,
> > +			       "6GHz: reducing number channels: (%u->%u)\n",
> > +			       params->n_channels, ch_cnt);
> > +
> > +	return ch_cnt;
> >   }
> >
> >   static u8 iwl_mvm_scan_umac_chan_flags_v2(struct iwl_mvm *mvm,
> @@
> > -2415,10 +2433,14 @@ static int
> iwl_mvm_scan_umac_v14_and_above(struct
> > iwl_mvm *mvm,
> >
> >   	iwl_mvm_umac_scan_fill_6g_chan_list(mvm, params, pb);
> >
> > -	iwl_mvm_umac_scan_cfg_channels_v6_6g(params,
> > -					     params->n_channels,
> > -					     pb, cp, vif->type);
> > -	cp->count = params->n_channels;
> > +	cp->count = iwl_mvm_umac_scan_cfg_channels_v6_6g(mvm,
> params,
> > +							 params-
> >n_channels,
> > +							 pb, cp, vif->type);
> > +	if (!cp->count) {
> > +		mvm->scan_uid_status[uid] = 0;
> > +		return -EINVAL;
> > +	}
> > +
> >   	if (!params->n_ssids ||
> >   	    (params->n_ssids == 1 && !params->ssids[0].ssid_len))
> >   		cp->flags |=
> IWL_SCAN_CHANNEL_FLAG_6G_PSC_NO_FILTER;
> >
> 
> 
> --
> Ben Greear <greearb@candelatech.com>
> Candela Technologies Inc  http://www.candelatech.com


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

* Re: [PATCH 04/12] iwlwifi: mvm: Passively scan non PSC channels only when requested so
  2022-04-04 19:02     ` Peer, Ilan
@ 2022-04-05 19:05       ` Ben Greear
  2022-04-06  6:22         ` Peer, Ilan
  0 siblings, 1 reply; 17+ messages in thread
From: Ben Greear @ 2022-04-05 19:05 UTC (permalink / raw)
  To: Peer, Ilan, Luca Coelho, kvalo; +Cc: linux-wireless

Hello Ilan,

I will try this soon.  But, any idea why it is not
accepted into hostap project yet?

Thanks,
Ben

On 4/4/22 12:02 PM, Peer, Ilan wrote:
> Hi Ben,
> 
> Sorry for the late response.
> 
> Can you please try this with the following patch for hostap?
> 
> https://patchwork.ozlabs.org/project/hostap/patch/20211130153943.3531922-1-andrei.otcheretianski@intel.com/
> 
> I believe that reason the connection fails is due to user space not setting the collocated scan flag when not scanning passively.
> 
> If this resolves the issue, I'll try to find a better solution for handling this.
> 
> Thanks in advance,
> 
> Ilan.
> 
>> -----Original Message-----
>> From: Ben Greear <greearb@candelatech.com>
>> Sent: Friday, March 25, 2022 20:12
>> To: Luca Coelho <luca@coelho.fi>; kvalo@kernel.org
>> Cc: linux-wireless@vger.kernel.org
>> Subject: Re: [PATCH 04/12] iwlwifi: mvm: Passively scan non PSC channels
>> only when requested so
>>
>> On 2/4/22 2:25 AM, Luca Coelho wrote:
>>> From: Ilan Peer <ilan.peer@intel.com>
>>>
>>> Non PSC channels should generally be scanned based on information
>>> about collocated APs obtained during scan on legacy bands, and
>>> otherwise should not be scanned unless specifically requested so (as
>>> there are relatively many non PSC channels, scanning them passively is
>>> time consuming and interferes with regular data traffic).
>>>
>>> Thus, modify the scan logic to avoid passively scanning PSC channels
>>> if there is no information about collocated APs and the scan is not a
>>> passive scan.
>>
>> Hello,
>>
>> This breaks association against a Cisco test AP on frequency 5995.
>>
>> Here are logs of the previous commit working (scan takes longer, but SSID is
>> found), and at the bottom, scan with this commit, which fails to detect the
>> SSID.
>>
>> # ethtool -i sta0000
>> driver: iwlwifi
>> version: 5.17.0+
>> firmware-version: 68.01d30b0c.0 ty-a0-gf-a0-68.uc
>> expansion-rom-version:
>> bus-info: 0000:05:00.0
>> supports-statistics: yes
>> supports-test: no
>> supports-eeprom-access: no
>> supports-register-dump: no
>> supports-priv-flags: no
>>
>> It breaks on version 71 firmware too.
>>
>> 2022-03-25 09:56:35.464  1.1:  sta0000 (phy #0): scan started
>> 2022-03-25 09:56:42.095  1.1:  sta0000 (phy #0): scan finished: 2412 2417 2422
>> 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 5180 5200 5220 5240 5260
>> 5280
>> 5300 5320 5500 5520 5540 5560 5580 5600 5620 5640 5660 5680 5700 5720 5745
>> 5765 5785 5805 5825 5955 5975 5995 6015 6035 6055 6075 6095 6115 6135 6155
>> 6175 6195
>> 6215 6235 6255 6275 6295 6315 6335 6355 6375 6395 6415 6435 6455 6475 6495
>> 6515 6535 6555 6575 6595 6615 6635 6655 6675 6695 6715 6735 6755 6775 6795
>> 6815 6835
>> 6855 6875 6895 6915 6935 6955 6975 6995 7015 7035 7055 7075 7095 7115, ""
>> 2022-03-25 09:56:42.101  1.1:  IFNAME=sta0000 <3>SME: Trying to
>> authenticate with 68:7d:b4:60:04:b8 (SSID=
>> 2022-03-25 09:56:42.122  1.1:  sta0000: new station 68:7d:b4:60:04:b8
>> 2022-03-25 09:56:42.252  1.1:  sta0000 (phy #0): auth 68:7d:b4:60:04:b8 ->
>> a4:6b:b6:5a:b1:da status: 126: <unknown>
>> 2022-03-25 09:56:42.254  1.1:  IFNAME=sta0000 <3>SME: Trying to
>> authenticate with 68:7d:b4:60:04:b8 (SSID=
>> 2022-03-25 09:56:42.310  1.1:  sta0000 (phy #0): auth 68:7d:b4:60:04:b8 ->
>> a4:6b:b6:5a:b1:da status: 0: Successful
>> 2022-03-25 09:56:42.310  1.1:  IFNAME=sta0000 <3>PMKSA-CACHE-ADDED
>> 68:7d:b4:60:04:b8 0
>> 2022-03-25 09:56:42.311  1.1:  IFNAME=sta0000 <3>Trying to associate with
>> 68:7d:b4:60:04:b8 (SSID=
>> 2022-03-25 09:56:42.312  1.1:  IFNAME=sta0000 <3>EAPOL-RX
>> 68:7d:b4:60:04:b8 121
>> 2022-03-25 09:56:42.313  1.1:  sta0000 (phy #0): assoc 68:7d:b4:60:04:b8 ->
>> a4:6b:b6:5a:b1:da status: 0: Successful
>> 2022-03-25 09:56:42.313  1.1:  IFNAME=sta0000 <3>Associated with
>> 68:7d:b4:60:04:b8
>> 2022-03-25 09:56:42.314  1.1:  IFNAME=sta0000 <3>EAPOL-RX
>> 68:7d:b4:60:04:b8 121
>> 2022-03-25 09:56:42.321  1.1:  IFNAME=sta0000 <3>CTRL-EVENT-SUBNET-
>> STATUS-UPDATE status=0
>> 2022-03-25 09:56:42.322  1.1:  sta0000 (phy #0): ctrl. port TX status (cookie 1):
>> acked
>> 2022-03-25 09:56:42.323  1.1:  IFNAME=sta0000 <3>EAPOL-RX
>> 68:7d:b4:60:04:b8 195
>> 2022-03-25 09:56:42.328  1.1:  sta0000 (phy #0): ctrl. port TX status (cookie 2):
>> acked
>> 2022-03-25 09:56:42.364  1.1:  IFNAME=sta0000 <3>WPA: Key negotiation
>> completed with 68:7d:b4:60:04:b8 [PTK=CCMP GTK=CCMP]
>> 2022-03-25 09:56:42.403  1.1:  IFNAME=sta0000 <3>CTRL-EVENT-CONNECTED
>> - Connection to 68:7d:b4:60:04:b8 completed [id=0 id_str=]
>> 2022-03-25 09:56:42.403  1.1:  IFNAME=sta0000 <3>WPA: Key negotiation
>> completed with 68:7d:b4:60:04:b8 [PTK=CCMP GTK=CCMP]
>>
>>
>>
>> 2022-03-25 10:05:52.416  1.1:  sta0000 (phy #7): scan started
>> 2022-03-25 10:05:56.215  1.1:  sta0000 (phy #7): scan finished: 2412 2417 2422
>> 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 5180 5200 5220 5240 5260
>> 5280
>> 5300 5320 5500 5520 5540 5560 5580 5600 5620 5640 5660 5680 5700 5720 5745
>> 5765 5785 5805 5825, ""
>> 2022-03-25 10:05:56.215  1.1:  phy #7: regulatory domain change (phy): set to
>> US by a driver request on phy7
>> 2022-03-25 10:05:56.216  1.1:  IFNAME=sta0000 <3>CTRL-EVENT-NETWORK-
>> NOT-FOUND
>> 2022-03-25 10:05:56.216  1.1:  IFNAME=sta0000 <3>CTRL-EVENT-REGDOM-
>> CHANGE init=DRIVER type=COUNTRY alpha2=US
>> 2022-03-25 10:06:01.217  1.1:  IFNAME=sta0000 <3>CTRL-EVENT-SCAN-
>> STARTED
>> 2022-03-25 10:06:01.217  1.1:  sta0000 (phy #7): scan started
>> 2022-03-25 10:06:02.739  1.1:  sta0000 (phy #7): scan finished: 2412 2417 2422
>> 2427 2432 2437 2442 2447 2452 2457 2462 2467 2472 5180 5200 5220 5240 5260
>> 5280
>> 5300 5320 5500 5520 5540 5560 5580 5600 5620 5640 5660 5680 5700 5720 5745
>> 5765 5785 5805 5825 5955 5975 5995 6015 6035 6055 6075 6095 6115 6135 6155
>> 6175 6195
>> 6215 6235 6255 6275 6295 6315 6335 6355 6375 6395 6415 6435 6455 6475 6495
>> 6515 6535 6555 6575 6595 6615 6635 6655 6675 6695 6715 6735 6755 6775 6795
>> 6815 6835
>> 6855 6875 6895 6915 6935 6955 6975 6995 7015 7035 7055 7075 7095 7115, ""
>>
>> [ SSID is not found, sta never associates]
>>
>> Thanks,
>> Ben
>>
>>>
>>> Signed-off-by: Ilan Peer <ilan.peer@intel.com>
>>> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
>>> ---
>>>    drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 42 ++++++++++++++-----
>>>    1 file changed, 32 insertions(+), 10 deletions(-)
>>>
>>> diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
>>> b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
>>> index 8c7cb491330d..901df916baa4 100644
>>> --- a/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
>>> +++ b/drivers/net/wireless/intel/iwlwifi/mvm/scan.c
>>> @@ -1728,27 +1728,37 @@ iwl_mvm_umac_scan_fill_6g_chan_list(struct
>> iwl_mvm *mvm,
>>>    }
>>>
>>>    /* TODO: this function can be merged with
>>> iwl_mvm_scan_umac_fill_ch_p_v6 */ -static void
>>> -iwl_mvm_umac_scan_cfg_channels_v6_6g(struct iwl_mvm_scan_params
>>> *params,
>>> +static u32
>>> +iwl_mvm_umac_scan_cfg_channels_v6_6g(struct iwl_mvm *mvm,
>>> +				     struct iwl_mvm_scan_params *params,
>>>    				     u32 n_channels,
>>>    				     struct iwl_scan_probe_params_v4 *pp,
>>>    				     struct iwl_scan_channel_params_v6 *cp,
>>>    				     enum nl80211_iftype vif_type)
>>>    {
>>> -	struct iwl_scan_channel_cfg_umac *channel_cfg = cp-
>>> channel_config;
>>>    	int i;
>>>    	struct cfg80211_scan_6ghz_params *scan_6ghz_params =
>>>    		params->scan_6ghz_params;
>>> +	u32 ch_cnt;
>>>
>>> -	for (i = 0; i < params->n_channels; i++) {
>>> +	for (i = 0, ch_cnt = 0; i < params->n_channels; i++) {
>>>    		struct iwl_scan_channel_cfg_umac *cfg =
>>> -			&cp->channel_config[i];
>>> +			&cp->channel_config[ch_cnt];
>>>
>>>    		u32 s_ssid_bitmap = 0, bssid_bitmap = 0, flags = 0;
>>>    		u8 j, k, s_max = 0, b_max = 0, n_used_bssid_entries;
>>>    		bool force_passive, found = false, allow_passive = true,
>>>    		     unsolicited_probe_on_chan = false, psc_no_listen = false;
>>>
>>> +		/*
>>> +		 * Avoid performing passive scan on non PSC channels unless
>> the
>>> +		 * scan is specifically a passive scan, i.e., no SSIDs
>>> +		 * configured in the scan command.
>>> +		 */
>>> +		if (!cfg80211_channel_is_psc(params->channels[i]) &&
>>> +		    !params->n_6ghz_params && params->n_ssids)
>>> +			continue;
>>> +
>>>    		cfg->v1.channel_num = params->channels[i]->hw_value;
>>>    		cfg->v2.band = 2;
>>>    		cfg->v2.iter_count = 1;
>>> @@ -1868,8 +1878,16 @@
>> iwl_mvm_umac_scan_cfg_channels_v6_6g(struct iwl_mvm_scan_params
>> *params,
>>>    		else
>>>    			flags |= bssid_bitmap | (s_ssid_bitmap << 16);
>>>
>>> -		channel_cfg[i].flags |= cpu_to_le32(flags);
>>> +		cfg->flags |= cpu_to_le32(flags);
>>> +		ch_cnt++;
>>>    	}
>>> +
>>> +	if (params->n_channels > ch_cnt)
>>> +		IWL_DEBUG_SCAN(mvm,
>>> +			       "6GHz: reducing number channels: (%u->%u)\n",
>>> +			       params->n_channels, ch_cnt);
>>> +
>>> +	return ch_cnt;
>>>    }
>>>
>>>    static u8 iwl_mvm_scan_umac_chan_flags_v2(struct iwl_mvm *mvm,
>> @@
>>> -2415,10 +2433,14 @@ static int
>> iwl_mvm_scan_umac_v14_and_above(struct
>>> iwl_mvm *mvm,
>>>
>>>    	iwl_mvm_umac_scan_fill_6g_chan_list(mvm, params, pb);
>>>
>>> -	iwl_mvm_umac_scan_cfg_channels_v6_6g(params,
>>> -					     params->n_channels,
>>> -					     pb, cp, vif->type);
>>> -	cp->count = params->n_channels;
>>> +	cp->count = iwl_mvm_umac_scan_cfg_channels_v6_6g(mvm,
>> params,
>>> +							 params-
>>> n_channels,
>>> +							 pb, cp, vif->type);
>>> +	if (!cp->count) {
>>> +		mvm->scan_uid_status[uid] = 0;
>>> +		return -EINVAL;
>>> +	}
>>> +
>>>    	if (!params->n_ssids ||
>>>    	    (params->n_ssids == 1 && !params->ssids[0].ssid_len))
>>>    		cp->flags |=
>> IWL_SCAN_CHANNEL_FLAG_6G_PSC_NO_FILTER;
>>>
>>
>>
>> --
>> Ben Greear <greearb@candelatech.com>
>> Candela Technologies Inc  http://www.candelatech.com
> 


-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com


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

* RE: [PATCH 04/12] iwlwifi: mvm: Passively scan non PSC channels only when requested so
  2022-04-05 19:05       ` Ben Greear
@ 2022-04-06  6:22         ` Peer, Ilan
  0 siblings, 0 replies; 17+ messages in thread
From: Peer, Ilan @ 2022-04-06  6:22 UTC (permalink / raw)
  To: greearb, Luca Coelho, kvalo; +Cc: linux-wireless

Hi Ben,

> -----Original Message-----
> From: Ben Greear <greearb@candelatech.com>
> Sent: Tuesday, April 05, 2022 22:05
> To: Peer, Ilan <ilan.peer@intel.com>; Luca Coelho <luca@coelho.fi>;
> kvalo@kernel.org
> Cc: linux-wireless@vger.kernel.org
> Subject: Re: [PATCH 04/12] iwlwifi: mvm: Passively scan non PSC channels
> only when requested so
> 
> Hello Ilan,
> 
> I will try this soon.  But, any idea why it is not accepted into hostap project
> yet?
> 

Probably since I did not complete what I promised (address passive scan correctly). I'll handle it and push a revised patch.

Regards,

Ilan.

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

end of thread, other threads:[~2022-04-06  9:49 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-04 10:24 [PATCH 00/12] iwlwifi: updates intended for v5.18 2022-02-04 Luca Coelho
2022-02-04 10:25 ` [PATCH 01/12] iwlwifi: mvm: Correctly set fragmented EBS Luca Coelho
2022-02-04 10:25 ` [PATCH 02/12] iwlwifi: yoyo: Avoid using dram data if allocation failed Luca Coelho
2022-02-04 10:25 ` [PATCH 03/12] iwlwifi: scan: Modify return value of a function Luca Coelho
2022-02-04 10:25 ` [PATCH 04/12] iwlwifi: mvm: Passively scan non PSC channels only when requested so Luca Coelho
2022-03-25 17:11   ` Ben Greear
2022-04-04 19:02     ` Peer, Ilan
2022-04-05 19:05       ` Ben Greear
2022-04-06  6:22         ` Peer, Ilan
2022-02-04 10:25 ` [PATCH 05/12] iwlwifi: pcie: adjust to Bz completion descriptor Luca Coelho
2022-02-04 10:25 ` [PATCH 06/12] iwlwifi: pcie: Adapt rx queue write pointer for Bz family Luca Coelho
2022-02-04 10:25 ` [PATCH 07/12] iwlwifi: drv: load tlv debug data earlier Luca Coelho
2022-02-04 10:25 ` [PATCH 08/12] iwlwifi: eeprom: clean up macros Luca Coelho
2022-02-04 10:25 ` [PATCH 09/12] iwlwifi: remove unused macros Luca Coelho
2022-02-04 10:25 ` [PATCH 10/12] iwlwifi: debugfs: remove useless double condition Luca Coelho
2022-02-04 10:25 ` [PATCH 11/12] iwlwifi: mei: use C99 initializer for device IDs Luca Coelho
2022-02-04 10:25 ` [PATCH 12/12] iwlwifi: mvm: Unify the scan iteration functions 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).