Re: [PATCH v7 2/8] bus: mhi: core: Cache intmod from mhi event to mhi channel

From: Manivannan Sadhasivam
Date: Sat May 09 2020 - 01:47:56 EST


On Fri, May 08, 2020 at 07:26:42PM -0700, Bhaumik Bhatt wrote:
> From: Hemant Kumar <hemantk@xxxxxxxxxxxxxx>
>
> 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@xxxxxxxxxxxxxx>
> Signed-off-by: Bhaumik Bhatt <bbhatt@xxxxxxxxxxxxxx>
> Reviewed-by: Jeffrey Hugo <jhugo@xxxxxxxxxxxxxx>

Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx>

Thanks,
Mani

> ---
> 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 eb2ab05..1a93d24 100644
> --- a/drivers/bus/mhi/core/init.c
> +++ b/drivers/bus/mhi/core/init.c
> @@ -863,6 +863,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) {
> --
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> a Linux Foundation Collaborative Project