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

Commit f2828fb1 authored by Bojun Pan's avatar Bojun Pan
Browse files

msm: ipa: adjust the aggregation params on WLAN path



There is the requirement on wdi2/3, IPA Linux needs to enable
aggregation on WLAN producer pipe with pkt cnt = 1 and hard
byte limit = 2K.

Change-Id: I9e771c1ed97fce11970b09329738bac320c77008
Signed-off-by: default avatarBojun Pan <bojunp@codeaurora.org>
parent 50e7afbf
Loading
Loading
Loading
Loading
+9 −0
Original line number Original line Diff line number Diff line
@@ -1941,6 +1941,15 @@ int ipa3_connect_wdi_pipe(struct ipa_wdi_in_params *in,
	else
	else
		IPADBG("in->wdi_notify is null\n");
		IPADBG("in->wdi_notify is null\n");


	if (IPA_CLIENT_IS_CONS(in->sys.client)) {
		in->sys.ipa_ep_cfg.aggr.aggr_en = IPA_ENABLE_AGGR;
		in->sys.ipa_ep_cfg.aggr.aggr = IPA_GENERIC;
		in->sys.ipa_ep_cfg.aggr.aggr_pkt_limit = IPA_AGGR_PKT_LIMIT;
		in->sys.ipa_ep_cfg.aggr.aggr_byte_limit =
						IPA_AGGR_HARD_BYTE_LIMIT;
		in->sys.ipa_ep_cfg.aggr.aggr_hard_byte_limit_en =
						IPA_ENABLE_AGGR;
	}
	if (!ep->skip_ep_cfg) {
	if (!ep->skip_ep_cfg) {
		if (ipa3_cfg_ep(ipa_ep_idx, &in->sys.ipa_ep_cfg)) {
		if (ipa3_cfg_ep(ipa_ep_idx, &in->sys.ipa_ep_cfg)) {
			IPAERR("fail to configure EP.\n");
			IPAERR("fail to configure EP.\n");
+8 −0
Original line number Original line Diff line number Diff line
@@ -18,6 +18,9 @@
#define UPDATE_RP_MODERATION_CONFIG 1
#define UPDATE_RP_MODERATION_CONFIG 1
#define UPDATE_RP_MODERATION_THRESHOLD 8
#define UPDATE_RP_MODERATION_THRESHOLD 8


#define IPA_WLAN_AGGR_PKT_LIMIT 1
#define IPA_WLAN_AGGR_BYTE_LIMIT 2 /*2 Kbytes Agger hard byte limit*/

#define IPA_WDI3_GSI_EVT_RING_INT_MODT 32
#define IPA_WDI3_GSI_EVT_RING_INT_MODT 32


static void ipa3_wdi3_gsi_evt_ring_err_cb(struct gsi_evt_err_notify *notify)
static void ipa3_wdi3_gsi_evt_ring_err_cb(struct gsi_evt_err_notify *notify)
@@ -572,6 +575,11 @@ int ipa3_conn_wdi3_pipes(struct ipa_wdi_conn_in_params *in,
		memcpy(&ep_tx->cfg, &in->u_tx.tx_smmu.ipa_ep_cfg,
		memcpy(&ep_tx->cfg, &in->u_tx.tx_smmu.ipa_ep_cfg,
			sizeof(ep_tx->cfg));
			sizeof(ep_tx->cfg));


	ep_tx->cfg.aggr.aggr_en = IPA_ENABLE_AGGR;
	ep_tx->cfg.aggr.aggr = IPA_GENERIC;
	ep_tx->cfg.aggr.aggr_byte_limit = IPA_WLAN_AGGR_BYTE_LIMIT;
	ep_tx->cfg.aggr.aggr_pkt_limit = IPA_WLAN_AGGR_PKT_LIMIT;
	ep_tx->cfg.aggr.aggr_hard_byte_limit_en = IPA_ENABLE_AGGR;
	if (ipa3_cfg_ep(ipa_ep_idx_tx, &ep_tx->cfg)) {
	if (ipa3_cfg_ep(ipa_ep_idx_tx, &ep_tx->cfg)) {
		IPAERR("fail to setup tx pipe cfg\n");
		IPAERR("fail to setup tx pipe cfg\n");
		result = -EFAULT;
		result = -EFAULT;