Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9694b868 authored by Yeshwanth Sriram Guntuka's avatar Yeshwanth Sriram Guntuka Committed by Gerrit - the friendly Code Review server
Browse files

qcacld-3.0: Add support for dynamic GRO for Helium target

Add support for dynamic GRO enable/disable based on
ingress filters or qdisc for Helium target. In case of
clsact qdisc, ingress filter priority would be used to
match against the filters configured to determine the
GRO state.

Change-Id: I9f17ba5c63195b18e297ee2c6ab56424b704ee8f
CRs-Fixed: 3240932
parent 150c7fda
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -955,7 +955,6 @@ ifeq ($(CONFIG_LITHIUM), y)
		CONFIG_WLAN_FEATURE_DP_RX_RING_HISTORY := y
		CONFIG_ALLOW_PKT_DROPPING := y
	endif
	CONFIG_DYNAMIC_RX_AGGREGATION := y
	CONFIG_RX_DESC_DEBUG_CHECK:= y
	CONFIG_WLAN_SUPPORT_DATA_STALL := y
	CONFIG_WLAN_DP_PER_RING_TYPE_CONFIG := y
@@ -965,6 +964,8 @@ ifeq ($(CONFIG_LITHIUM), y)
	CONFIG_WLAN_DP_PENDING_MEM_FLUSH := y
endif

CONFIG_DYNAMIC_RX_AGGREGATION := y

#Flag to enable hdd memory dump feature
CONFIG_FEATURE_MEMDUMP_ENABLE := y

+5 −1
Original line number Diff line number Diff line
@@ -466,8 +466,12 @@ static void cds_cdp_cfg_attach(struct wlan_objmgr_psoc *psoc)
	cdp_cfg.enable_data_stall_detection =
		cfg_get(psoc, CFG_DP_ENABLE_DATA_STALL_DETECTION);
	gro_bit_set = cfg_get(psoc, CFG_DP_GRO);
	if (gro_bit_set & DP_GRO_ENABLE_BIT_SET)
	if (gro_bit_set & DP_GRO_ENABLE_BIT_SET) {
		cdp_cfg.gro_enable = true;
		if (gro_bit_set & DP_TC_BASED_DYNAMIC_GRO)
			cdp_cfg.tc_based_dyn_gro = true;
	}
	cdp_cfg.tc_ingress_prio = cfg_get(psoc, CFG_DP_TC_INGRESS_PRIO);
	cdp_cfg.enable_flow_steering =
		cfg_get(psoc, CFG_DP_FLOW_STEERING_ENABLED);
	cdp_cfg.disable_intra_bss_fwd =
+3 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2011-2020 The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 * Permission to use, copy, modify, and/or distribute this software for
 * any purpose with or without fee is hereby granted, provided that the
@@ -109,6 +110,8 @@ struct txrx_pdev_cfg_t {
	u8 credit_update_enabled;
	struct ol_tx_sched_wrr_ac_specs_t ac_specs[QCA_WLAN_AC_ALL];
	bool gro_enable;
	bool tc_based_dyn_gro;
	uint32_t tc_ingress_prio;
	bool tso_enable;
	bool lro_enable;
	bool sg_enable;
+3 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2011-2020 The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 * Permission to use, copy, modify, and/or distribute this software for
 * any purpose with or without fee is hereby granted, provided that the
@@ -206,6 +207,8 @@ struct cdp_cfg *ol_pdev_cfg_attach(qdf_device_t osdev, void *pcfg_param)
		cfg_param->nan_ip_tcp_udp_checksum_offload;
	cfg_ctx->ce_classify_enabled = cfg_param->ce_classify_enabled;
	cfg_ctx->gro_enable = cfg_param->gro_enable;
	cfg_ctx->tc_based_dyn_gro = cfg_param->tc_based_dyn_gro;
	cfg_ctx->tc_ingress_prio = cfg_param->tc_ingress_prio;
	cfg_ctx->tso_enable = cfg_param->tso_enable;
	cfg_ctx->lro_enable = cfg_param->lro_enable;
	cfg_ctx->sg_enable = cfg_param->sg_enable;
+7 −0
Original line number Diff line number Diff line
/*
 * Copyright (c) 2011-2021 The Linux Foundation. All rights reserved.
 * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
 *
 * Permission to use, copy, modify, and/or distribute this software for
 * any purpose with or without fee is hereby granted, provided that the
@@ -5893,6 +5894,12 @@ static uint32_t ol_txrx_get_cfg(struct cdp_soc_t *soc_hdl, enum cdp_dp_cfg cfg)
	case cfg_dp_gro_enable:
		value = cfg_ctx->gro_enable;
		break;
	case cfg_dp_tc_based_dyn_gro_enable:
		value = cfg_ctx->tc_based_dyn_gro;
		break;
	case cfg_dp_tc_ingress_prio:
		value = cfg_ctx->tc_ingress_prio;
		break;
#ifdef QCA_LL_TX_FLOW_CONTROL_V2
	case cfg_dp_tx_flow_start_queue_offset:
		value = cfg_ctx->tx_flow_start_queue_offset;
Loading