From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
To: Bhaumik Bhatt <bbhatt@codeaurora.org>
Cc: linux-arm-msm@vger.kernel.org, hemantk@codeaurora.org,
jhugo@codeaurora.org, linux-kernel@vger.kernel.org,
carl.yin@quectel.com, loic.poulain@linaro.org,
kvalo@codeaurora.org
Subject: Re: [RESEND PATCH] bus: mhi: core: Remove pre_init flag used for power purposes
Date: Wed, 7 Apr 2021 12:20:34 +0530 [thread overview]
Message-ID: <20210407065034.GK8675@work> (raw)
In-Reply-To: <1617313309-24035-1-git-send-email-bbhatt@codeaurora.org>
On Thu, Apr 01, 2021 at 02:41:49PM -0700, Bhaumik Bhatt wrote:
> Some controllers can choose to skip preparation for power up.
> In that case, device context is initialized based on the pre_init
> flag not being set during mhi_prepare_for_power_up(). There is no
> reason MHI host driver should maintain and provide controllers
> with two separate paths for preparing MHI.
>
> Going forward, all controllers will be required to call the
> mhi_prepare_for_power_up() API followed by their choice of sync
> or async power up. This allows MHI host driver to get rid of the
> pre_init flag and sets up a common way for all controllers to use
> MHI. This also helps controllers fail early on during preparation
> phase in some failure cases.
>
> Signed-off-by: Bhaumik Bhatt <bbhatt@codeaurora.org>
Applied to mhi-next!
Thanks,
Mani
> ---
> This patch was tested on arm64 architecture.
>
> drivers/bus/mhi/core/init.c | 3 ---
> drivers/bus/mhi/core/pm.c | 20 --------------------
> include/linux/mhi.h | 2 --
> 3 files changed, 25 deletions(-)
>
> diff --git a/drivers/bus/mhi/core/init.c b/drivers/bus/mhi/core/init.c
> index d1d9b0d..1f61352 100644
> --- a/drivers/bus/mhi/core/init.c
> +++ b/drivers/bus/mhi/core/init.c
> @@ -1080,8 +1080,6 @@ int mhi_prepare_for_power_up(struct mhi_controller *mhi_cntrl)
> mhi_rddm_prepare(mhi_cntrl, mhi_cntrl->rddm_image);
> }
>
> - mhi_cntrl->pre_init = true;
> -
> mutex_unlock(&mhi_cntrl->pm_mutex);
>
> return 0;
> @@ -1112,7 +1110,6 @@ void mhi_unprepare_after_power_down(struct mhi_controller *mhi_cntrl)
> }
>
> mhi_deinit_dev_ctxt(mhi_cntrl);
> - mhi_cntrl->pre_init = false;
> }
> EXPORT_SYMBOL_GPL(mhi_unprepare_after_power_down);
>
> diff --git a/drivers/bus/mhi/core/pm.c b/drivers/bus/mhi/core/pm.c
> index e4aff77..b23eec5 100644
> --- a/drivers/bus/mhi/core/pm.c
> +++ b/drivers/bus/mhi/core/pm.c
> @@ -1062,13 +1062,6 @@ int mhi_async_power_up(struct mhi_controller *mhi_cntrl)
> mutex_lock(&mhi_cntrl->pm_mutex);
> mhi_cntrl->pm_state = MHI_PM_DISABLE;
>
> - if (!mhi_cntrl->pre_init) {
> - /* Setup device context */
> - ret = mhi_init_dev_ctxt(mhi_cntrl);
> - if (ret)
> - goto error_dev_ctxt;
> - }
> -
> ret = mhi_init_irq_setup(mhi_cntrl);
> if (ret)
> goto error_setup_irq;
> @@ -1150,10 +1143,6 @@ int mhi_async_power_up(struct mhi_controller *mhi_cntrl)
> mhi_deinit_free_irq(mhi_cntrl);
>
> error_setup_irq:
> - if (!mhi_cntrl->pre_init)
> - mhi_deinit_dev_ctxt(mhi_cntrl);
> -
> -error_dev_ctxt:
> mhi_cntrl->pm_state = MHI_PM_DISABLE;
> mutex_unlock(&mhi_cntrl->pm_mutex);
>
> @@ -1203,15 +1192,6 @@ void mhi_power_down(struct mhi_controller *mhi_cntrl, bool graceful)
> flush_work(&mhi_cntrl->st_worker);
>
> free_irq(mhi_cntrl->irq[0], mhi_cntrl);
> -
> - if (!mhi_cntrl->pre_init) {
> - /* Free all allocated resources */
> - if (mhi_cntrl->fbc_image) {
> - mhi_free_bhie_table(mhi_cntrl, mhi_cntrl->fbc_image);
> - mhi_cntrl->fbc_image = NULL;
> - }
> - mhi_deinit_dev_ctxt(mhi_cntrl);
> - }
> }
> EXPORT_SYMBOL_GPL(mhi_power_down);
>
> diff --git a/include/linux/mhi.h b/include/linux/mhi.h
> index b16afd3..c9b36a3 100644
> --- a/include/linux/mhi.h
> +++ b/include/linux/mhi.h
> @@ -354,7 +354,6 @@ struct mhi_controller_config {
> * @index: Index of the MHI controller instance
> * @bounce_buf: Use of bounce buffer
> * @fbc_download: MHI host needs to do complete image transfer (optional)
> - * @pre_init: MHI host needs to do pre-initialization before power up
> * @wake_set: Device wakeup set flag
> * @irq_flags: irq flags passed to request_irq (optional)
> *
> @@ -447,7 +446,6 @@ struct mhi_controller {
> int index;
> bool bounce_buf;
> bool fbc_download;
> - bool pre_init;
> bool wake_set;
> unsigned long irq_flags;
> };
> --
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
> a Linux Foundation Collaborative Project
>
next prev parent reply other threads:[~2021-04-07 6:50 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-01 21:41 [RESEND PATCH] bus: mhi: core: Remove pre_init flag used for power purposes Bhaumik Bhatt
2021-04-02 18:20 ` Hemant Kumar
2021-04-07 5:07 ` Manivannan Sadhasivam
2021-05-04 17:33 ` Jeffrey Hugo
2021-04-07 6:50 ` Manivannan Sadhasivam [this message]
2021-05-26 19:03 ` patchwork-bot+linux-arm-msm
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210407065034.GK8675@work \
--to=manivannan.sadhasivam@linaro.org \
--cc=bbhatt@codeaurora.org \
--cc=carl.yin@quectel.com \
--cc=hemantk@codeaurora.org \
--cc=jhugo@codeaurora.org \
--cc=kvalo@codeaurora.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=loic.poulain@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.