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

Commit 1ac97967 authored by Mohammed's avatar Mohammed
Browse files

msm: ipa4: Fix to remove reset with open aggregation frame WA calling



On IPA 4.0 HW there is no need for reset with open aggregation
frame WA Instead corresponding GSI channel needs to be stopped.
Added check to not to call this reset with open aggregation
frame WA for IPA 4.0 and above HW versions.

Change-Id: Id8b2d1c764fe6edee2148cc7dcde7abea8f766f4
Acked-by: default avatarAshok Vuyyuru <avuyyuru@qti.qualcomm.com>
Signed-off-by: default avatarMohammed Javid <mjavid@codeaurora.org>
parent 6154fcdf
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -288,6 +288,8 @@ static int ipa3_reset_with_open_aggr_frame_wa(u32 clnt_hdl,
	if (result)
		return -EFAULT;

	memset(&ctrl, 0, sizeof(struct ipa_ep_cfg_ctrl));

	ipahal_read_reg_n_fields(IPA_ENDP_INIT_CTRL_n, clnt_hdl, &ctrl);
	if (ctrl.ipa_ep_suspend) {
		IPADBG("pipe is suspended, remove suspend\n");
@@ -431,11 +433,18 @@ int ipa3_reset_gsi_channel(u32 clnt_hdl)
		}
	}

	/*
	 * for IPA 4.0 and above aggregation frame is closed together with
	 * channel STOP. Below workaround not required for IPA 4.0 and above
	 * versions.
	 */

	/*
	 * Check for open aggregation frame on Consumer EP -
	 * reset with open aggregation frame WA
	 */
	if (IPA_CLIENT_IS_CONS(ep->client)) {
	if (IPA_CLIENT_IS_CONS(ep->client) &&
			ipa3_ctx->ipa_hw_type < IPA_HW_v4_0) {
		aggr_active_bitmap = ipahal_read_reg(IPA_STATE_AGGR_ACTIVE);
		if (aggr_active_bitmap & (1 << clnt_hdl)) {
			result = ipa3_reset_with_open_aggr_frame_wa(clnt_hdl,