mirror of https://gitee.com/openkylin/linux.git
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: Bjorn Andersson <bjorn.andersson@linaro.org>
Reviewed-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>
Fixes: fbe639b44a
("soc: qcom: Introduce Protection Domain Restart helpers")
Reported-by: Rishabh Bhatnagar <rishabhb@codeaurora.org>
Signed-off-by: Sibi Sankar <sibis@codeaurora.org>
Link: https://lore.kernel.org/r/20200701195954.9007-1-sibis@codeaurora.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
This commit is contained in:
parent
f935a752f2
commit
72fe996f96
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue