]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: ath12k: Remove dependency on single_chip_mlo_support for mlo_capable flag
authorAaradhana Sahu <quic_aarasahu@quicinc.com>
Fri, 7 Feb 2025 05:03:26 +0000 (10:33 +0530)
committerJeff Johnson <jeff.johnson@oss.qualcomm.com>
Tue, 11 Feb 2025 15:27:11 +0000 (07:27 -0800)
The mlo_capable flag in structure ath12k_hw_group indicate that a device
is capable of operating in multi-link mode. Currently this is enabled
based on single_chip_mlo_support advertised by the firmware within
ath12k_qmi_phy_cap_send().

Since the firmware advertises multi-link operation (MLO) support through
the ATH12K_FW_FEATURE_MLO feature in firmware-2.bin, there is no need to
rely on the QMI phy capability (single_chip_mlo_support). Therefore remove
the dependency on single_chip_mlo_support to set mlo_capable flag.

Below is the impact on single split-phy PCI device with and without this
patch:

Note: This patch does not change the existing behavior of the single
split-phy PCI device.

1. Driver without this patch + firmware with single_chip_mlo_support
    as false: MLO is not enabled.
2. Driver without this patch + firmware with single_chip_mlo_support
    as true: MLO works fine.
3. Driver with this patch + firmware with single_chip_mlo_support as
    false: MLO is not enabled.
4. Driver with this patch + firmware with single_chip_mlo_support as
    true: MLO works fine.

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

Signed-off-by: Aaradhana Sahu <quic_aarasahu@quicinc.com>
Reviewed-by: Vasanthakumar Thiagarajan <vasanthakumar.thiagarajan@oss.qualcomm.com>
Link: https://patch.msgid.link/20250207050327.360987-3-quic_aarasahu@quicinc.com
Signed-off-by: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
drivers/net/wireless/ath/ath12k/qmi.c

index ef537c6bf0daae4e78102cbc0e84e84806d6d165..fcbe234758e114a6e05f93859132740a244e2e90 100644 (file)
@@ -2265,10 +2265,6 @@ static void ath12k_qmi_phy_cap_send(struct ath12k_base *ab)
                goto out;
        }
 
-       if (resp.single_chip_mlo_support_valid &&
-           resp.single_chip_mlo_support)
-               ab->single_chip_mlo_supp = true;
-
        if (!resp.num_phy_valid) {
                ret = -ENODATA;
                goto out;
@@ -2277,10 +2273,9 @@ static void ath12k_qmi_phy_cap_send(struct ath12k_base *ab)
        ab->qmi.num_radios = resp.num_phy;
 
        ath12k_dbg(ab, ATH12K_DBG_QMI,
-                  "phy capability resp valid %d num_phy %d valid %d board_id %d valid %d single_chip_mlo_support %d\n",
+                  "phy capability resp valid %d num_phy %d valid %d board_id %d\n",
                   resp.num_phy_valid, resp.num_phy,
-                  resp.board_id_valid, resp.board_id,
-                  resp.single_chip_mlo_support_valid, resp.single_chip_mlo_support);
+                  resp.board_id_valid, resp.board_id);
 
        return;