Commit 72fe996f authored by Sibi Sankar's avatar Sibi Sankar Committed by Bjorn Andersson
Browse files

soc: qcom: pdr: Reorder the PD state indication ack



The Protection Domains (PD) have a mechanism to keep its resources
enabled until the PD down indication is acked. Reorder the PD state
indication ack so that clients get to release the relevant resources
before the PD goes down.

Reviewed-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: default avatarRishabh Bhatnagar <rishabhb@codeaurora.org>
Fixes: fbe639b4 ("soc: qcom: Introduce Protection Domain Restart helpers")
Reported-by: default avatarRishabh Bhatnagar <rishabhb@codeaurora.org>
Signed-off-by: default avatarSibi Sankar <sibis@codeaurora.org>
Link: https://lore.kernel.org/r/20200701195954.9007-1-sibis@codeaurora.org


Signed-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
parent f935a752
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -278,13 +278,15 @@ static void pdr_indack_work(struct work_struct *work)

	list_for_each_entry_safe(ind, tmp, &pdr->indack_list, node) {
		pds = ind->pds;
		pdr_send_indack_msg(pdr, pds, ind->transaction_id);

		mutex_lock(&pdr->status_lock);
		pds->state = ind->curr_state;
		pdr->status(pds->state, pds->service_path, pdr->priv);
		mutex_unlock(&pdr->status_lock);

		/* Ack the indication after clients release the PD resources */
		pdr_send_indack_msg(pdr, pds, ind->transaction_id);

		mutex_lock(&pdr->list_lock);
		list_del(&ind->node);
		mutex_unlock(&pdr->list_lock);