[PATCH 124/379][SRU][OEM-5.6] bus: mhi: core: Cache intmod from mhi event to mhi channel

You-Sheng Yang vicamo.yang at canonical.com
Wed Dec 23 08:47:37 UTC 2020


From: Hemant Kumar <hemantk at codeaurora.org>

BugLink: https://bugs.launchpad.net/bugs/1879633

Driver is using zero initialized intmod value from mhi channel when
configuring TRE for bei field. This prevents interrupt moderation to
take effect in case it is supported by an event ring. Fix this by
copying intmod value from associated event ring to mhi channel upon
registering mhi controller.

Signed-off-by: Hemant Kumar <hemantk at codeaurora.org>
Signed-off-by: Bhaumik Bhatt <bbhatt at codeaurora.org>
Reviewed-by: Jeffrey Hugo <jhugo at codeaurora.org>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam at linaro.org>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam at linaro.org>
Link: https://lore.kernel.org/r/20200521170249.21795-3-manivannan.sadhasivam@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
(cherry picked from commit 44d4e063d18b87c0fef1b19f7883f10e71c544b6)
Signed-off-by: You-Sheng Yang <vicamo.yang at canonical.com>
---
 drivers/bus/mhi/core/init.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/bus/mhi/core/init.c b/drivers/bus/mhi/core/init.c
index 1f8c82603179..a5a320a9eef7 100644
--- a/drivers/bus/mhi/core/init.c
+++ b/drivers/bus/mhi/core/init.c
@@ -864,6 +864,10 @@ int mhi_register_controller(struct mhi_controller *mhi_cntrl,
 		mutex_init(&mhi_chan->mutex);
 		init_completion(&mhi_chan->completion);
 		rwlock_init(&mhi_chan->lock);
+
+		/* used in setting bei field of TRE */
+		mhi_event = &mhi_cntrl->mhi_event[mhi_chan->er_index];
+		mhi_chan->intmod = mhi_event->intmod;
 	}
 
 	if (mhi_cntrl->bounce_buf) {
-- 
2.29.2




More information about the kernel-team mailing list