wifi: ath11k: Increase TCL data ring size for WCN6750
authorManikanta Pubbisetty <quic_mpubbise@quicinc.com>
Wed, 7 Sep 2022 08:36:56 +0000 (11:36 +0300)
committerKalle Valo <quic_kvalo@quicinc.com>
Sat, 10 Sep 2022 06:27:54 +0000 (09:27 +0300)
Increase TCL data ring size to 2048 for WCN6750. This is
needed to meet 160 MHz TX throughput.

Add a new hw_param to indicate the TX ring size for
individual devices.

Tested-on: WCN6750 hw1.0 AHB WLAN.MSL.1.0.1-00887-QCAMSLSWPLZ-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/20220905071805.31625-4-quic_mpubbise@quicinc.com
drivers/net/wireless/ath/ath11k/core.c
drivers/net/wireless/ath/ath11k/dp.c
drivers/net/wireless/ath/ath11k/dp.h
drivers/net/wireless/ath/ath11k/hw.h

index eee8719ed235d8e8e0ac25c6e5b1e9249694b5a9..54848b1efccb2a985b2adbd65039cbfdc0d1423f 100644 (file)
@@ -112,6 +112,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
                .sram_dump = {},
 
                .tcl_ring_retry = true,
+               .tx_ring_size = DP_TCL_DATA_RING_SIZE,
        },
        {
                .hw_rev = ATH11K_HW_IPQ6018_HW10,
@@ -189,6 +190,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
                .sram_dump = {},
 
                .tcl_ring_retry = true,
+               .tx_ring_size = DP_TCL_DATA_RING_SIZE,
        },
        {
                .name = "qca6390 hw2.0",
@@ -268,6 +270,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
                },
 
                .tcl_ring_retry = true,
+               .tx_ring_size = DP_TCL_DATA_RING_SIZE,
        },
        {
                .name = "qcn9074 hw1.0",
@@ -344,6 +347,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
                .sram_dump = {},
 
                .tcl_ring_retry = true,
+               .tx_ring_size = DP_TCL_DATA_RING_SIZE,
        },
        {
                .name = "wcn6855 hw2.0",
@@ -423,6 +427,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
                },
 
                .tcl_ring_retry = true,
+               .tx_ring_size = DP_TCL_DATA_RING_SIZE,
        },
        {
                .name = "wcn6855 hw2.1",
@@ -501,6 +506,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
                },
 
                .tcl_ring_retry = true,
+               .tx_ring_size = DP_TCL_DATA_RING_SIZE,
        },
        {
                .name = "wcn6750 hw1.0",
@@ -576,6 +582,7 @@ static const struct ath11k_hw_params ath11k_hw_params[] = {
                .sram_dump = {},
 
                .tcl_ring_retry = false,
+               .tx_ring_size = DP_TCL_DATA_RING_SIZE_WCN6750,
        },
 };
 
index 4f73817198402e323d0b68f20128538b3a6ae9d5..fff8decf311bd8407da90a68d3285232f78f63e9 100644 (file)
@@ -401,7 +401,7 @@ static int ath11k_dp_srng_common_setup(struct ath11k_base *ab)
 
                ret = ath11k_dp_srng_setup(ab, &dp->tx_ring[i].tcl_data_ring,
                                           HAL_TCL_DATA, tcl_num, 0,
-                                          DP_TCL_DATA_RING_SIZE);
+                                          ab->hw_params.tx_ring_size);
                if (ret) {
                        ath11k_warn(ab, "failed to set up tcl_data ring (%d) :%d\n",
                                    i, ret);
index 8af2985ca2d97d48a5c2e4b13900830525649336..16fb536da5cf08258cd0b1f0571d869db9350dba 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) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
  */
 
 #ifndef ATH11K_DP_H
@@ -203,6 +204,7 @@ struct ath11k_pdev_dp {
 
 #define DP_WBM_RELEASE_RING_SIZE       64
 #define DP_TCL_DATA_RING_SIZE          512
+#define DP_TCL_DATA_RING_SIZE_WCN6750  2048
 #define DP_TX_COMP_RING_SIZE           32768
 #define DP_TX_IDR_SIZE                 DP_TX_COMP_RING_SIZE
 #define DP_TCL_CMD_RING_SIZE           32
index c61275897b16973ef253ad1960125643b4b6c0ab..90cf402fd5d9029c788d099d7d5a0fbf886c8291 100644 (file)
@@ -216,6 +216,7 @@ struct ath11k_hw_params {
        } sram_dump;
 
        bool tcl_ring_retry;
+       u32 tx_ring_size;
 };
 
 struct ath11k_hw_ops {