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

Commit a89b2c5b authored by Yeshwanth Sriram Guntuka's avatar Yeshwanth Sriram Guntuka
Browse files

qcacmn: Add ini to set priority for TC ingress filter

Add ini support to configure TC ingress filter priority
value which would be used for TC based dynamic GRO.

Change-Id: I1742f4539353939e3a40ff4096b3f833f2029b12
CRs-Fixed: 3206817
parent 201b3074
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -2231,7 +2231,8 @@ struct cdp_monitor_filter {
 * @cfg_dp_tso_enable: get TSO enable config
 * @cfg_dp_lro_enable: get LRO enable config
 * @cfg_dp_gro_enable: get GRP enable config
 * @cfg_dp_force_gro_enable: get Force GRP enable config
 * @cfg_dp_tc_based_dyn_gro_enable: get TC based dynamic gro enable config
 * @cfg_dp_tc_ingress_prio: priority value to be checked for tc filters
 * @cfg_dp_tx_flow_start_queue_offset: get DP TX flow start queue offset
 * @cfg_dp_tx_flow_stop_queue_threshold: get DP TX flow stop queue threshold
 * @cfg_dp_ipa_uc_tx_buf_size: get IPA TX buf size config
@@ -2255,7 +2256,8 @@ enum cdp_dp_cfg {
	cfg_dp_lro_enable,
	cfg_dp_gro_enable,
	cfg_dp_sg_enable,
	cfg_dp_force_gro_enable,
	cfg_dp_tc_based_dyn_gro_enable,
	cfg_dp_tc_ingress_prio,
	cfg_dp_tx_flow_start_queue_offset,
	cfg_dp_tx_flow_stop_queue_threshold,
	cfg_dp_ipa_uc_tx_buf_size,
+5 −2
Original line number Diff line number Diff line
@@ -10178,8 +10178,11 @@ static uint32_t dp_get_cfg(struct cdp_soc_t *soc, enum cdp_dp_cfg cfg)
	case cfg_dp_sg_enable:
		value = dpsoc->wlan_cfg_ctx->sg_enabled;
		break;
	case cfg_dp_force_gro_enable:
		value = dpsoc->wlan_cfg_ctx->force_gro_enabled;
	case cfg_dp_tc_based_dyn_gro_enable:
		value = dpsoc->wlan_cfg_ctx->tc_based_dynamic_gro;
		break;
	case cfg_dp_tc_ingress_prio:
		value = dpsoc->wlan_cfg_ctx->tc_ingress_prio;
		break;
	case cfg_dp_tx_flow_start_queue_offset:
		value = dpsoc->wlan_cfg_ctx->tx_flow_start_queue_offset;
+4 −2
Original line number Diff line number Diff line
@@ -4678,8 +4678,10 @@ void dp_print_soc_cfg_params(struct dp_soc *soc)
		       soc_cfg_ctx->sg_enabled);
	DP_PRINT_STATS("Gro enabled: %u ",
		       soc_cfg_ctx->gro_enabled);
	DP_PRINT_STATS("Force Gro enabled: %u ",
		       soc_cfg_ctx->force_gro_enabled);
	DP_PRINT_STATS("TC based dynamic GRO: %u ",
		       soc_cfg_ctx->tc_based_dynamic_gro);
	DP_PRINT_STATS("TC ingress prio: %u ",
		       soc_cfg_ctx->tc_ingress_prio);
	DP_PRINT_STATS("rawmode enabled: %u ",
		       soc_cfg_ctx->rawmode_enabled);
	DP_PRINT_STATS("peer flow ctrl enabled: %u ",
+17 −4
Original line number Diff line number Diff line
@@ -603,7 +603,8 @@
#define WLAN_CFG_GRO_ENABLE_MAX 3
#define WLAN_CFG_GRO_ENABLE_DEFAULT 0
#define DP_GRO_ENABLE_BIT_SET     BIT(0)
#define DP_FORCE_USE_GRO_BIT_SET  BIT(1)
#define DP_TC_BASED_DYNAMIC_GRO   BIT(1)

/*
 * <ini>
 * CFG_DP_GRO - Enable the GRO feature standalonely
@@ -613,9 +614,9 @@
 *
 * This ini entry is used to enable/disable GRO feature standalonely.
 * Value 0: Disable GRO feature
 * Value 1: Enable Dynamic GRO feature, TC rule can control GRO
 *          behavior of STA mode
 * Value 3: Enable GRO feature forcibly
 * Value 1: Enable GRO feature always
 * Value 3: Enable GRO dynamic feature where TC rule can control GRO
 *          behavior
 *
 * Usage: External
 *
@@ -628,6 +629,17 @@
		WLAN_CFG_GRO_ENABLE_DEFAULT, \
		CFG_VALUE_OR_DEFAULT, "DP GRO Enable")

#define WLAN_CFG_TC_INGRESS_PRIO_MIN 0
#define WLAN_CFG_TC_INGRESS_PRIO_MAX 0xFFFF
#define WLAN_CFG_TC_INGRESS_PRIO_DEFAULT 0

#define CFG_DP_TC_INGRESS_PRIO \
		CFG_INI_UINT("tc_ingress_prio", \
		WLAN_CFG_TC_INGRESS_PRIO_MIN, \
		WLAN_CFG_TC_INGRESS_PRIO_MAX, \
		WLAN_CFG_TC_INGRESS_PRIO_DEFAULT, \
		CFG_VALUE_OR_DEFAULT, "DP tc ingress prio")

#define CFG_DP_OL_TX_CSUM \
	CFG_INI_BOOL("dp_offload_tx_csum_support", false, \
	"DP tx csum Enable")
@@ -1034,6 +1046,7 @@
		CFG(CFG_DP_LRO) \
		CFG(CFG_DP_SG) \
		CFG(CFG_DP_GRO) \
		CFG(CFG_DP_TC_INGRESS_PRIO) \
		CFG(CFG_DP_OL_TX_CSUM) \
		CFG(CFG_DP_OL_RX_CSUM) \
		CFG(CFG_DP_RAWMODE) \
+3 −2
Original line number Diff line number Diff line
@@ -503,9 +503,10 @@ wlan_cfg_soc_attach(struct cdp_ctrl_objmgr_psoc *psoc)
	gro_bit_set = cfg_get(psoc, CFG_DP_GRO);
	if (gro_bit_set & DP_GRO_ENABLE_BIT_SET) {
		wlan_cfg_ctx->gro_enabled = true;
		if (gro_bit_set & DP_FORCE_USE_GRO_BIT_SET)
			wlan_cfg_ctx->force_gro_enabled = true;
		if (gro_bit_set & DP_TC_BASED_DYNAMIC_GRO)
			wlan_cfg_ctx->tc_based_dynamic_gro = true;
	}
	wlan_cfg_ctx->tc_ingress_prio = cfg_get(psoc, CFG_DP_TC_INGRESS_PRIO);
	wlan_cfg_ctx->ol_tx_csum_enabled = cfg_get(psoc, CFG_DP_OL_TX_CSUM);
	wlan_cfg_ctx->ol_rx_csum_enabled = cfg_get(psoc, CFG_DP_OL_RX_CSUM);
	wlan_cfg_ctx->rawmode_enabled = cfg_get(psoc, CFG_DP_RAWMODE);
Loading