ath11k: Do not put HW in DBS mode for WCN6750
authorManikanta Pubbisetty <quic_mpubbise@quicinc.com>
Wed, 6 Apr 2022 09:41:03 +0000 (15:11 +0530)
committerKalle Valo <quic_kvalo@quicinc.com>
Wed, 27 Apr 2022 07:25:59 +0000 (10:25 +0300)
Though WCN6750 is a single PDEV device, it is not a
DBS solution. So, do not put HW in DBS mode for WCN6750.

Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-00573-QCAMSLSWPLZ-1
Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-01720.1-QCAHSPSWPL_V1_V2_SILICONZ_LITE-1
Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.5.0.1-01100-QCAHKSWPL_SILICONZ-1
Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-00192-QCAHKSWPL_SILICONZ-1

Signed-off-by: Manikanta Pubbisetty <quic_mpubbise@quicinc.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20220406094107.17878-10-quic_mpubbise@quicinc.com
drivers/net/wireless/ath/ath11k/core.c
drivers/net/wireless/ath/ath11k/wmi.c

index f011db4bcd2b2f006a298ee7c6aa399623b640fc..06958f358307c10db301e579fe236f5202685705 100644 (file)
@@ -1213,7 +1213,7 @@ static int ath11k_core_start(struct ath11k_base *ab,
        }
 
        /* put hardware to DBS mode */
-       if (ab->hw_params.single_pdev_only) {
+       if (ab->hw_params.single_pdev_only && ab->hw_params.num_rxmda_per_pdev > 1) {
                ret = ath11k_wmi_set_hw_mode(ab, WMI_HOST_HW_MODE_DBS);
                if (ret) {
                        ath11k_err(ab, "failed to send dbs mode: %d\n", ret);
index dcf31bdad47efb216bb7b6908ad1ac3cdcb66ff6..d7243819d9bd49f370b0c47d6798df2e953ebba2 100644 (file)
@@ -1,6 +1,7 @@
 // SPDX-License-Identifier: BSD-3-Clause-Clear
 /*
  * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2021, Qualcomm Innovation Center, Inc. All rights reserved.
  */
 #include <linux/skbuff.h>
 #include <linux/ctype.h>
@@ -8225,7 +8226,7 @@ int ath11k_wmi_attach(struct ath11k_base *ab)
        ab->wmi_ab.preferred_hw_mode = WMI_HOST_HW_MODE_MAX;
 
        /* It's overwritten when service_ext_ready is handled */
-       if (ab->hw_params.single_pdev_only)
+       if (ab->hw_params.single_pdev_only && ab->hw_params.num_rxmda_per_pdev > 1)
                ab->wmi_ab.preferred_hw_mode = WMI_HOST_HW_MODE_SINGLE;
 
        /* TODO: Init remaining wmi soc resources required */