bus: mhi: core: Move to SYS_ERROR regardless of RDDM capability
authorBhaumik Bhatt <bbhatt@codeaurora.org>
Mon, 9 Nov 2020 20:47:23 +0000 (12:47 -0800)
committerManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Wed, 18 Nov 2020 09:50:34 +0000 (15:20 +0530)
In some cases, the entry of device to RDDM execution environment
can occur after a significant amount of time has elapsed and a
SYS_ERROR state change event has already arrived. This can result
in scenarios where MHI controller and client drivers are unaware
of the error state of the device. Remove the check for rddm_image
when processing the SYS_ERROR state change as it is present in
mhi_pm_sys_err_handler() already and prevent further activity
until the expected RDDM execution environment change occurs or
the controller driver decides further action.

Signed-off-by: Bhaumik Bhatt <bbhatt@codeaurora.org>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
drivers/bus/mhi/core/main.c

index f953e2a6d58a50ff3b0a0ca53a86968944b25af9..91f8b8d05a62b77f098fd9dd551b9c4092d43ab6 100644 (file)
@@ -737,11 +737,6 @@ int mhi_process_ctrl_ev_ring(struct mhi_controller *mhi_cntrl,
                        {
                                enum mhi_pm_state new_state;
 
-                               /* skip SYS_ERROR handling if RDDM supported */
-                               if (mhi_cntrl->ee == MHI_EE_RDDM ||
-                                   mhi_cntrl->rddm_image)
-                                       break;
-
                                dev_dbg(dev, "System error detected\n");
                                write_lock_irq(&mhi_cntrl->pm_lock);
                                new_state = mhi_tryset_pm_state(mhi_cntrl,