msm: mhi_dev: Defer mhi resume till M0 ack is sent

Defer mhi resume till M0 ack is notified to host.
This is to ensure no outstanding transfer completion events are
send to host before M0 ack.

Change-Id: Ia10fabc554b1cdef14a0771012b9ffea68851e25
Signed-off-by: Veerabhadrarao Badiganti <vbadigan@codeaurora.org>
Signed-off-by: Rama Krishna Phani A <rphani@codeaurora.org>
This commit is contained in:
Veerabhadrarao Badiganti 2021-04-12 12:37:04 +05:30 committed by Rama Krishna Phani A
parent 456b6201e2
commit af4493526f

View File

@ -515,15 +515,6 @@ static int mhi_sm_prepare_resume(void)
return res;
}
}
res = mhi_dev_resume(mhi_sm_ctx->mhi_dev);
if (res) {
MHI_SM_ERR("Failed resuming mhi core: %d", res);
goto exit;
}
if (mhi_sm_ctx->mhi_dev->use_ipa) {
res = ipa_mhi_resume();
if (res) {
MHI_SM_ERR("Failed resuming ipa_mhi:%d", res);
@ -545,11 +536,27 @@ static int mhi_sm_prepare_resume(void)
/* Send state change notification only if we were in M3 state */
res = mhi_dev_send_state_change_event(mhi_sm_ctx->mhi_dev,
MHI_DEV_M0_STATE);
if (res) {
MHI_SM_ERR("Failed to send event %s to host, returned %d\n",
mhi_sm_dev_event_str(MHI_DEV_EVENT_M0_STATE), res);
goto exit;
if (res) {
MHI_SM_ERR("Failed to send event %s to host, ret =%d\n",
mhi_sm_dev_event_str(MHI_DEV_EVENT_M0_STATE),
res);
goto exit;
}
}
/*
* Defer mhi resume till M0 ack is notified to host.
* This is to ensure no outstanding transfer completion events are send
* to host before M0 ack.
*/
if ((old_state == MHI_DEV_M3_STATE) ||
(old_state == MHI_DEV_M2_STATE)) {
res = mhi_dev_resume(mhi_sm_ctx->mhi_dev);
if (res) {
MHI_SM_ERR("Failed resuming mhi core, returned %d",
res);
goto exit;
}
}
if (old_state == MHI_DEV_READY_STATE) {