Message ID | 1589248989-23824-5-git-send-email-hemantk@codeaurora.org (mailing list archive) |
---|---|
State | Accepted |
Commit | 30b7892417c50a05bf4a2ad56c2e1355d4d1404a |
Headers | show |
Series | MHI Misc Fixes | expand |
On Mon, May 11, 2020 at 07:03:08PM -0700, Hemant Kumar wrote: > Devices that support RDDM do not require processing SYS_ERROR as it is > deemed redundant. Avoid SYS_ERROR processing if RDDM is supported by > the device. > > Signed-off-by: Hemant Kumar <hemantk@codeaurora.org> > Reviewed-by: Jeffrey Hugo <jhugo@codeaurora.org> Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org> Thanks, Mani > --- > drivers/bus/mhi/core/main.c | 11 ++++++++--- > 1 file changed, 8 insertions(+), 3 deletions(-) > > diff --git a/drivers/bus/mhi/core/main.c b/drivers/bus/mhi/core/main.c > index 467c0ba..1f622ce 100644 > --- a/drivers/bus/mhi/core/main.c > +++ b/drivers/bus/mhi/core/main.c > @@ -397,9 +397,9 @@ irqreturn_t mhi_intvec_threaded_handler(int irq_number, void *priv) > } > write_unlock_irq(&mhi_cntrl->pm_lock); > > - /* If device in RDDM don't bother processing SYS error */ > - if (mhi_cntrl->ee == MHI_EE_RDDM) { > - if (mhi_cntrl->ee != ee) { > + /* If device supports RDDM don't bother processing SYS error */ > + if (mhi_cntrl->rddm_image) { > + if (mhi_cntrl->ee == MHI_EE_RDDM && mhi_cntrl->ee != ee) { > mhi_cntrl->status_cb(mhi_cntrl, MHI_CB_EE_RDDM); > wake_up_all(&mhi_cntrl->state_event); > } > @@ -735,6 +735,11 @@ 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, > -- > The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, > a Linux Foundation Collaborative Project
diff --git a/drivers/bus/mhi/core/main.c b/drivers/bus/mhi/core/main.c index 467c0ba..1f622ce 100644 --- a/drivers/bus/mhi/core/main.c +++ b/drivers/bus/mhi/core/main.c @@ -397,9 +397,9 @@ irqreturn_t mhi_intvec_threaded_handler(int irq_number, void *priv) } write_unlock_irq(&mhi_cntrl->pm_lock); - /* If device in RDDM don't bother processing SYS error */ - if (mhi_cntrl->ee == MHI_EE_RDDM) { - if (mhi_cntrl->ee != ee) { + /* If device supports RDDM don't bother processing SYS error */ + if (mhi_cntrl->rddm_image) { + if (mhi_cntrl->ee == MHI_EE_RDDM && mhi_cntrl->ee != ee) { mhi_cntrl->status_cb(mhi_cntrl, MHI_CB_EE_RDDM); wake_up_all(&mhi_cntrl->state_event); } @@ -735,6 +735,11 @@ 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,