Merge "msm: IPA: mhi_proxy: correct the return for mhi unvote on ssr"
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_mhi_proxy.c b/drivers/platform/msm/ipa/ipa_v3/ipa_mhi_proxy.c
index 6cd91a2..b768750 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa_mhi_proxy.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa_mhi_proxy.c
@@ -610,6 +610,17 @@
resp->resp.error = IPA_QMI_ERR_INCOMPATIBLE_STATE_V01;
mutex_lock(&imp_ctx->mutex);
+
+ /*
+ * returning success for clock unvote request - since it could
+ * be 5G modem SSR scenario where clocks are already OFF.
+ */
+ if (!vote && imp_ctx->state == IMP_INVALID) {
+ IMP_DBG("Unvote in Invalid state, no op for clock unvote\n");
+ mutex_unlock(&imp_ctx->mutex);
+ return resp;
+ }
+
if (imp_ctx->state != IMP_STARTED) {
IMP_ERR("unexpected vote when in state %d\n", imp_ctx->state);
mutex_unlock(&imp_ctx->mutex);
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_qmi_service.c b/drivers/platform/msm/ipa/ipa_v3/ipa_qmi_service.c
index 8d0cacf..9ba8fb9 100644
--- a/drivers/platform/msm/ipa/ipa_v3/ipa_qmi_service.c
+++ b/drivers/platform/msm/ipa/ipa_v3/ipa_qmi_service.c
@@ -389,7 +389,7 @@
} else {
resp = imp_handle_vote_req(vote_req->mhi_vote);
if (!resp) {
- IPAWANERR("imp handle allocate channel req fails");
+ IPAWANERR("imp handle vote req fails\n");
return;
}
IPAWANDBG("start sending QMI_IPA_MHI_CLK_VOTE_RESP_V01\n");