mhi: core: Skip handling MSI0 if MHI register access is not allowed

Driver continues handling of MSI0 interrupt even if MHI register access
is not allowed. By doing so it calls the status call back and performs
early notification for the MHI client. This is not needed when MHI register
access is not allowed. Hence skip the handling in this case and return.

Change-Id: I4639cedfd45166f28379539bccb25acd383faca5
Signed-off-by: Hemant Kumar <hemantk@codeaurora.org>
This commit is contained in:
Hemant Kumar 2019-11-05 18:01:01 -08:00 • committed by Gerrit - the friendly Code Review server
commit 72f7f413c1

View file

@ -1585,16 +1585,19 @@ irqreturn_t mhi_intvec_threaded_handlr(int irq_number, void *dev)
MHI_VERB("Enter\n");
write_lock_irq(&mhi_cntrl->pm_lock);
if (MHI_REG_ACCESS_VALID(mhi_cntrl->pm_state)) {
state = mhi_get_mhi_state(mhi_cntrl);
ee = mhi_cntrl->ee;
mhi_cntrl->ee = mhi_get_exec_env(mhi_cntrl);
MHI_LOG("local ee: %s device ee:%s dev_state:%s\n",
TO_MHI_EXEC_STR(ee),
TO_MHI_EXEC_STR(mhi_cntrl->ee),
TO_MHI_STATE_STR(state));
if (!MHI_REG_ACCESS_VALID(mhi_cntrl->pm_state)) {
write_unlock_irq(&mhi_cntrl->pm_lock);
goto exit_intvec;
}
state = mhi_get_mhi_state(mhi_cntrl);
ee = mhi_cntrl->ee;
mhi_cntrl->ee = mhi_get_exec_env(mhi_cntrl);
MHI_LOG("local ee: %s device ee:%s dev_state:%s\n",
TO_MHI_EXEC_STR(ee),
TO_MHI_EXEC_STR(mhi_cntrl->ee),
TO_MHI_STATE_STR(state));
if (state == MHI_STATE_SYS_ERR) {
MHI_ERR("MHI system error detected\n");
pm_state = mhi_tryset_pm_state(mhi_cntrl,