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");