Commit 97c9e37c authored by Manikanta Pubbisetty's avatar Manikanta Pubbisetty Committed by Kalle Valo
Browse files

wifi: ath11k: Increase TCL data ring size for WCN6750



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: default avatarManikanta Pubbisetty <quic_mpubbise@quicinc.com>
Signed-off-by: default avatarKalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20220905071805.31625-4-quic_mpubbise@quicinc.com
parent 7636c9a6
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -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,
	},
};

+1 −1
Original line number Diff line number Diff line
@@ -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);
+2 −0
Original line number Diff line number Diff line
/* 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
+1 −0
Original line number Diff line number Diff line
@@ -216,6 +216,7 @@ struct ath11k_hw_params {
	} sram_dump;

	bool tcl_ring_retry;
	u32 tx_ring_size;
};

struct ath11k_hw_ops {