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

Commit 3ace1634 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: ipa4: set_tag_process_before_gating fix"

parents 342ec35d 9aa9a4b0
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -236,6 +236,8 @@ static void ipa3_send_nop_desc(struct work_struct *work)
		return;
	}
	sys->len_pending_xfer = 0;
	/* make sure TAG process is sent before clocks are gated */
	ipa3_ctx->tag_process_before_gating = true;

}

@@ -419,6 +421,9 @@ int ipa3_send(struct ipa3_sys_context *sys,
		hrtimer_start(&sys->db_timer, time, HRTIMER_MODE_REL);
	}

	/* make sure TAG process is sent before clocks are gated */
	ipa3_ctx->tag_process_before_gating = true;

	return 0;

failure_dma_map:
+0 −4
Original line number Diff line number Diff line
@@ -414,7 +414,6 @@ static void activate_work_func(struct work_struct *work)
	complete_all(&client->complete);

	if (dec_clk) {
		ipa_set_tag_process_before_gating(true);
		if (!client->skip_clk_vote)
			IPA_ACTIVE_CLIENTS_DEC_SPECIAL(client->name);

@@ -465,7 +464,6 @@ static void delayed_deferred_deactivate_work_func(struct work_struct *work)
		client->state = IPA_PM_DEACTIVATED;
		IPA_PM_DBG_STATE(client->hdl, client->name, client->state);
		spin_unlock_irqrestore(&client->state_lock, flags);
		ipa_set_tag_process_before_gating(true);
		if (!client->skip_clk_vote)
			IPA_ACTIVE_CLIENTS_DEC_SPECIAL(client->name);

@@ -1074,7 +1072,6 @@ int ipa_pm_deactivate_all_deferred(void)
			IPA_PM_DBG_STATE(client->hdl, client->name,
				client->state);
			spin_unlock_irqrestore(&client->state_lock, flags);
			ipa_set_tag_process_before_gating(true);
			if (!client->skip_clk_vote)
				IPA_ACTIVE_CLIENTS_DEC_SPECIAL(client->name);
			deactivate_client(client->hdl);
@@ -1127,7 +1124,6 @@ int ipa_pm_deactivate_sync(u32 hdl)
	spin_unlock_irqrestore(&client->state_lock, flags);

	/* else case (Deactivates all Activated cases)*/
	ipa_set_tag_process_before_gating(true);
	if (!client->skip_clk_vote)
		IPA_ACTIVE_CLIENTS_DEC_SPECIAL(client->name);

+1 −0
Original line number Diff line number Diff line
@@ -3993,6 +3993,7 @@ int ipa3_tag_process(struct ipa3_desc desc[],
	}
	kfree(tag_desc);
	tag_desc = NULL;
	ipa3_ctx->tag_process_before_gating = false;

	IPADBG("waiting for TAG response\n");
	res = wait_for_completion_timeout(&comp->comp, timeout);