From 36603a2a7215ee2ee6270a981b0aba01296809d0 Mon Sep 17 00:00:00 2001 From: Sujeev Dias Date: Fri, 21 Apr 2017 14:47:02 -0700 Subject: [PATCH] mhi: core: allow communication during shutdown MHI clients allowed to communicate with external soc via MHI during shutdown. Only disable MHI communication after receiving shutdown notification. CRs-Fixed: 2037184 Change-Id: If69f61a244a6175256753dea361085fa5f9afeac Signed-off-by: Sujeev Dias --- drivers/platform/msm/mhi/mhi_ssr.c | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/drivers/platform/msm/mhi/mhi_ssr.c b/drivers/platform/msm/mhi/mhi_ssr.c index 9f18b1e7ef85..f4f2e427972f 100644 --- a/drivers/platform/msm/mhi/mhi_ssr.c +++ b/drivers/platform/msm/mhi/mhi_ssr.c @@ -29,11 +29,9 @@ static int mhi_ssr_notify_cb(struct notifier_block *nb, mhi_log(mhi_dev_ctxt, MHI_MSG_INFO, "Received ESOC notifcation:%lu crashed:%d\n", action, crashed); switch (action) { - case SUBSYS_BEFORE_SHUTDOWN: - /* - * update internal states only, we'll clean up MHI context - * after device shutdown completely. - */ + case SUBSYS_AFTER_SHUTDOWN: + + /* Disable internal state, no more communication */ write_lock_irq(&mhi_dev_ctxt->pm_xfer_lock); cur_state = mhi_tryset_pm_state(mhi_dev_ctxt, MHI_PM_LD_ERR_FATAL_DETECT); @@ -42,8 +40,6 @@ static int mhi_ssr_notify_cb(struct notifier_block *nb, mhi_log(mhi_dev_ctxt, MHI_MSG_INFO, "Failed to transition to state 0x%x from 0x%x\n", MHI_PM_LD_ERR_FATAL_DETECT, cur_state); - break; - case SUBSYS_AFTER_SHUTDOWN: if (mhi_dev_ctxt->mhi_pm_state != MHI_PM_DISABLE) process_disable_transition(MHI_PM_SHUTDOWN_PROCESS, mhi_dev_ctxt);