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

Commit f821711b authored by Ashok Vuyyuru's avatar Ashok Vuyyuru Committed by Gerrit - the friendly Code Review server
Browse files

msm: ipa3: Update holb config on WLAN & USB CONS ep



After configuring WLAN CONS ep or USB ep there is a chance
of IPA hardware stall, if WLAN ep or USB ep is not pulling
data fast enough. So, set holb on WLAN CONS ep and USB CONS
ep to avoid stall.

Change-Id: Ib2e1ffe31d1028d1b2326fd385ed5450160e8844
Signed-off-by: default avatarAshok Vuyyuru <avuyyuru@codeaurora.org>
Signed-off-by: default avatarPraveen Kurapati <pkurapat@codeaurora.org>
parent a7e0337c
Loading
Loading
Loading
Loading
+17 −5
Original line number Diff line number Diff line
@@ -61,11 +61,22 @@ int ipa3_enable_data_path(u32 clnt_hdl)
		 * on other end from IPA hw.
		 */
		if ((ep->client == IPA_CLIENT_USB_DPL_CONS) ||
				(ep->client == IPA_CLIENT_MHI_DPL_CONS))
				(ep->client == IPA_CLIENT_MHI_DPL_CONS)) {
			holb_cfg.tmr_val = 0;
			holb_cfg.en = IPA_HOLB_TMR_EN;
		} else if ((ipa3_ctx->ipa_hw_type == IPA_HW_v4_2 ||
			ipa3_ctx->ipa_hw_type == IPA_HW_v4_7) &&
			(ep->client == IPA_CLIENT_WLAN1_CONS ||
				ep->client == IPA_CLIENT_USB_CONS)) {
			holb_cfg.en = IPA_HOLB_TMR_EN;
			if (ipa3_ctx->ipa_hw_type < IPA_HW_v4_5)
				holb_cfg.tmr_val = IPA_HOLB_TMR_VAL;
			else
				holb_cfg.tmr_val = IPA_HOLB_TMR_VAL_4_5;
		} else {
			holb_cfg.en = IPA_HOLB_TMR_DIS;
			holb_cfg.tmr_val = 0;
		}
		res = ipa3_cfg_ep_holb(clnt_hdl, &holb_cfg);
	}

@@ -1400,8 +1411,6 @@ int ipa3_xdci_disconnect(u32 clnt_hdl, bool should_force_clear, u32 qmi_req_id)
	if (!ep->keep_ipa_awake)
		IPA_ACTIVE_CLIENTS_INC_EP(ipa3_get_client_mapping(clnt_hdl));

	ipa3_disable_data_path(clnt_hdl);

	if (!IPA_CLIENT_IS_CONS(ep->client)) {
		IPADBG("Stopping PROD channel - hdl=%d clnt=%d\n",
			clnt_hdl, ep->client);
@@ -1425,6 +1434,9 @@ int ipa3_xdci_disconnect(u32 clnt_hdl, bool should_force_clear, u32 qmi_req_id)
			goto stop_chan_fail;
		}
	}

	ipa3_disable_data_path(clnt_hdl);

	IPA_ACTIVE_CLIENTS_DEC_EP(ipa3_get_client_mapping(clnt_hdl));

	IPADBG("exit\n");
+2 −0
Original line number Diff line number Diff line
@@ -64,6 +64,8 @@
#define IPA_UC_WAII_MAX_SLEEP 1200
#define IPA_HOLB_TMR_DIS 0x0
#define IPA_HOLB_TMR_EN 0x1
#define IPA_HOLB_TMR_VAL 65535
#define IPA_HOLB_TMR_VAL_4_5 31
#define IPA_MPM_MAX_RING_LEN 64
#define IPA_MAX_TETH_AGGR_BYTE_LIMIT 24
#define IPA_MPM_MAX_UC_THRESH 4