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

Commit fb9b1df4 authored by Nirav Shah's avatar Nirav Shah Committed by nshrivas
Browse files

qcacld-3.0: Add logic to bundle packets for HL

Add logic to queue and bundle packets before
giving it to scheduler to ensure predictive HTC
bundling for improvement in TX throughput.

Change-Id: Ib00135ca59b4c5f0f05edc93dca115bf17174a36
CRs-Fixed: 2561671
parent f37d49f5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2841,6 +2841,7 @@ cppflags-$(CONFIG_WLAN_DP_PER_RING_TYPE_CONFIG) += -DWLAN_DP_PER_RING_TYPE_CONFI
cppflags-$(CONFIG_SAP_DHCP_FW_IND) += -DSAP_DHCP_FW_IND
cppflags-$(CONFIG_WLAN_DP_PENDING_MEM_FLUSH) += -DWLAN_DP_PENDING_MEM_FLUSH
cppflags-$(CONFIG_WLAN_SUPPORT_DATA_STALL) += -DWLAN_SUPPORT_DATA_STALL
cppflags-$(CONFIG_WLAN_SUPPORT_TXRX_HL_BUNDLE) += -DWLAN_SUPPORT_TXRX_HL_BUNDLE

ifdef CONFIG_MAX_LOGS_PER_SEC
ccflags-y += -DWLAN_MAX_LOGS_PER_SEC=$(CONFIG_MAX_LOGS_PER_SEC)
+1 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@ CONFIG_TX_RESOURCE_LOW_TH_IN_PER := 2
CONFIG_FEATURE_HL_GROUP_CREDIT_FLOW_CONTROL := y
CONFIG_FEATURE_HL_DBS_GROUP_CREDIT_SHARING := y
CONFIG_CREDIT_REP_THROUGH_CREDIT_UPDATE := y
CONFIG_WLAN_SUPPORT_TXRX_HL_BUNDLE := y
CONFIG_HL_DP_SUPPORT := y

# Enable Motion Detection Feature
+1 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@ CONFIG_TX_RESOURCE_LOW_TH_IN_PER := 2
CONFIG_FEATURE_HL_GROUP_CREDIT_FLOW_CONTROL := y
CONFIG_FEATURE_HL_DBS_GROUP_CREDIT_SHARING := y
CONFIG_CREDIT_REP_THROUGH_CREDIT_UPDATE := y
CONFIG_WLAN_SUPPORT_TXRX_HL_BUNDLE := y
CONFIG_HL_DP_SUPPORT := y

# Enable Motion Detection Feature
+20 −0
Original line number Diff line number Diff line
@@ -368,6 +368,24 @@ cds_cdp_update_del_ack_params(struct wlan_objmgr_psoc *psoc,
{}
#endif

#ifdef WLAN_SUPPORT_TXRX_HL_BUNDLE
static inline void
cds_cdp_update_bundle_params(struct wlan_objmgr_psoc *psoc,
			     struct txrx_pdev_cfg_param_t *cdp_cfg)
{
	cdp_cfg->bundle_timer_value =
		cfg_get(psoc, CFG_DP_HL_BUNDLE_TIMER_VALUE);
	cdp_cfg->bundle_size =
		cfg_get(psoc, CFG_DP_HL_BUNDLE_SIZE);
}
#else
static inline void
cds_cdp_update_bundle_params(struct wlan_objmgr_psoc *psoc,
			     struct txrx_pdev_cfg_param_t *cdp_cfg)
{
}
#endif

/**
 * cds_cdp_cfg_attach() - attach data path config module
 * @cds_cfg: generic platform level config instance
@@ -407,6 +425,8 @@ static void cds_cdp_cfg_attach(struct wlan_objmgr_psoc *psoc)

	cds_cdp_update_del_ack_params(psoc, &cdp_cfg);

	cds_cdp_update_bundle_params(psoc, &cdp_cfg);

	gp_cds_context->cfg_ctx = cdp_cfg_attach(soc, gp_cds_context->qdf_ctx,
					(void *)(&cdp_cfg));
	if (!gp_cds_context->cfg_ctx) {
+10 −0
Original line number Diff line number Diff line
@@ -128,6 +128,11 @@ struct txrx_pdev_cfg_t {
	/* the maximum number of replaced tcp ack frames */
	uint16_t del_ack_pkt_count;
#endif

#ifdef WLAN_SUPPORT_TXRX_HL_BUNDLE
	uint16_t bundle_timer_value;
	uint16_t bundle_size;
#endif
};

/**
@@ -779,6 +784,11 @@ void ol_cfg_update_del_ack_params(struct txrx_pdev_cfg_t *cfg_ctx,
}
#endif

#ifdef WLAN_SUPPORT_TXRX_HL_BUNDLE
int ol_cfg_get_bundle_timer_value(struct cdp_cfg *cfg_pdev);
int ol_cfg_get_bundle_size(struct cdp_cfg *cfg_pdev);
#else
#endif
/**
 * ol_cfg_get_wrr_skip_weight() - brief Query for the param of wrr_skip_weight
 * @pdev: handle to the physical device.
Loading