Search Linux Wireless

Re: [PATCH v6 5/5] wifi: ath12k: Disable MLO in Factory Test Mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 1/10/25 00:05, Aaradhana Sahu wrote:
Factory test mode(FTM) is supported only non-mlo(multi-link operation)
mode. Therefore, disable MLO when driver boots in FTM mode.

Tested-on: QCN9274 hw2.0 PCI WLAN.WBE.1.3.1-00173-QCAHKSWPL_SILICONZ-1

Signed-off-by: Aaradhana Sahu <quic_aarasahu@xxxxxxxxxxx>
---
  drivers/net/wireless/ath/ath12k/core.c | 5 ++---
  drivers/net/wireless/ath/ath12k/qmi.c  | 4 ++--
  2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/ath/ath12k/core.c b/drivers/net/wireless/ath/ath12k/core.c
index d0cf82ca6dae..6705e33074aa 100644
--- a/drivers/net/wireless/ath/ath12k/core.c
+++ b/drivers/net/wireless/ath/ath12k/core.c
@@ -1630,10 +1630,9 @@ static struct ath12k_hw_group *ath12k_core_hw_group_assign(struct ath12k_base *a
  			return NULL;
  		}
- if (ath12k_core_get_wsi_info(ag, ab) ||
+		if (ath12k_ftm_mode || ath12k_core_get_wsi_info(ag, ab) ||
  		    ath12k_core_get_wsi_index(ag, ab)) {
-			ath12k_dbg(ab, ATH12K_DBG_BOOT,
-				   "unable to get wsi info from dt, grouping single device");
+			ath12k_dbg(ab, ATH12K_DBG_BOOT, "grouping single device");
  			ag->id = ATH12K_INVALID_GROUP_ID;
  			ag->num_devices = 1;

Why to even bother and check group list to see if a grp already exist
and if not then create a grp and then check ftm_mode?

I think better would be to have something like below?

--- a/drivers/net/wireless/ath/ath12k/core.c
+++ b/drivers/net/wireless/ath/ath12k/core.c
@@ -1598,6 +1598,9 @@ static struct ath12k_hw_group *ath12k_core_hw_group_assign(struct ath12k_base *a
lockdep_assert_held(&ath12k_hw_group_mutex); + if (ath12k_ftm_mode)
+               goto invalid_group;
+
        /* The grouping of multiple devices will be done based on device tree file.
         * The platforms that do not have any valid group information would have
         * each device to be part of its own invalid group.


  			memset(ag->wsi_node, 0, sizeof(ag->wsi_node));
diff --git a/drivers/net/wireless/ath/ath12k/qmi.c b/drivers/net/wireless/ath/ath12k/qmi.c
index 5c3563383fab..344c12b3b937 100644
--- a/drivers/net/wireless/ath/ath12k/qmi.c
+++ b/drivers/net/wireless/ath/ath12k/qmi.c
@@ -1,7 +1,7 @@
  // SPDX-License-Identifier: BSD-3-Clause-Clear
  /*
   * Copyright (c) 2018-2021 The Linux Foundation. All rights reserved.
- * Copyright (c) 2021-2024 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2021-2025 Qualcomm Innovation Center, Inc. All rights reserved.
   */
#include <linux/elf.h>
@@ -2265,7 +2265,7 @@ static void ath12k_qmi_phy_cap_send(struct ath12k_base *ab)
  		goto out;
  	}
- if (resp.single_chip_mlo_support_valid &&
+	if (!ath12k_ftm_mode && resp.single_chip_mlo_support_valid &&
  	    resp.single_chip_mlo_support)
  		ab->single_chip_mlo_supp = true;

Better place would be to set ag->mlo_capable as false in
ath12k_core_hw_group_set_mlo_capable() ?

--
Aditya




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux