From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: ohad@wizery.com, linux-remoteproc@vger.kernel.org,
linux-kernel@vger.kernel.org, loic.pallardy@st.com,
arnaud.pouliquen@st.com, s-anna@ti.com
Subject: Re: [PATCH v4 6/9] remoteproc: Refactor function rproc_boot()
Date: Mon, 22 Jun 2020 00:25:25 -0700 [thread overview]
Message-ID: <20200622072525.GH149351@builder.lan> (raw)
In-Reply-To: <20200601175139.22097-7-mathieu.poirier@linaro.org>
On Mon 01 Jun 10:51 PDT 2020, Mathieu Poirier wrote:
> Refactor function rproc_boot() to properly deal with scenarios
> where the remoteproc core needs to attach with a remote
> processor that has already been booted by an external entity.
>
> Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Regards,
Bjorn
> ---
> drivers/remoteproc/remoteproc_core.c | 28 +++++++++++++++++-----------
> 1 file changed, 17 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c
> index 0be8343dd851..48ddc29814be 100644
> --- a/drivers/remoteproc/remoteproc_core.c
> +++ b/drivers/remoteproc/remoteproc_core.c
> @@ -1503,7 +1503,7 @@ static int rproc_fw_boot(struct rproc *rproc, const struct firmware *fw)
> * Attach to remote processor - similar to rproc_fw_boot() but without
> * the steps that deal with the firmware image.
> */
> -static int __maybe_unused rproc_actuate(struct rproc *rproc)
> +static int rproc_actuate(struct rproc *rproc)
> {
> struct device *dev = &rproc->dev;
> int ret;
> @@ -1923,24 +1923,30 @@ int rproc_boot(struct rproc *rproc)
> goto unlock_mutex;
> }
>
> - /* skip the boot process if rproc is already powered up */
> + /* skip the boot or attach process if rproc is already powered up */
> if (atomic_inc_return(&rproc->power) > 1) {
> ret = 0;
> goto unlock_mutex;
> }
>
> - dev_info(dev, "powering up %s\n", rproc->name);
> + if (rproc->state == RPROC_DETACHED) {
> + dev_info(dev, "attaching to %s\n", rproc->name);
>
> - /* load firmware */
> - ret = request_firmware(&firmware_p, rproc->firmware, dev);
> - if (ret < 0) {
> - dev_err(dev, "request_firmware failed: %d\n", ret);
> - goto downref_rproc;
> - }
> + ret = rproc_actuate(rproc);
> + } else {
> + dev_info(dev, "powering up %s\n", rproc->name);
>
> - ret = rproc_fw_boot(rproc, firmware_p);
> + /* load firmware */
> + ret = request_firmware(&firmware_p, rproc->firmware, dev);
> + if (ret < 0) {
> + dev_err(dev, "request_firmware failed: %d\n", ret);
> + goto downref_rproc;
> + }
>
> - release_firmware(firmware_p);
> + ret = rproc_fw_boot(rproc, firmware_p);
> +
> + release_firmware(firmware_p);
> + }
>
> downref_rproc:
> if (ret)
> --
> 2.20.1
>
next prev parent reply other threads:[~2020-06-22 7:28 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-01 17:51 [PATCH v4 0/9] remoteproc: Add support for attaching with rproc Mathieu Poirier
2020-06-01 17:51 ` [PATCH v4 1/9] remoteproc: Add new RPROC_DETACHED state Mathieu Poirier
2020-06-22 6:25 ` Bjorn Andersson
2020-06-01 17:51 ` [PATCH v4 2/9] remoteproc: Add new attach() remoteproc operation Mathieu Poirier
2020-06-22 6:36 ` Bjorn Andersson
2020-06-01 17:51 ` [PATCH v4 3/9] remoteproc: Introducing function rproc_attach() Mathieu Poirier
2020-06-22 7:07 ` Bjorn Andersson
2020-06-22 7:18 ` Bjorn Andersson
2020-06-23 19:37 ` Mathieu Poirier
2020-06-01 17:51 ` [PATCH v4 4/9] remoteproc: Introducing function rproc_actuate() Mathieu Poirier
2020-06-22 7:18 ` Bjorn Andersson
2020-06-01 17:51 ` [PATCH v4 5/9] remoteproc: Introducing function rproc_validate() Mathieu Poirier
2020-06-22 7:25 ` Bjorn Andersson
2020-06-23 19:38 ` Mathieu Poirier
2020-06-01 17:51 ` [PATCH v4 6/9] remoteproc: Refactor function rproc_boot() Mathieu Poirier
2020-06-22 7:25 ` Bjorn Andersson [this message]
2020-06-01 17:51 ` [PATCH v4 7/9] remoteproc: Refactor function rproc_trigger_auto_boot() Mathieu Poirier
2020-06-22 7:25 ` Bjorn Andersson
2020-06-01 17:51 ` [PATCH v4 8/9] remoteproc: Refactor function rproc_free_vring() Mathieu Poirier
2020-06-22 7:27 ` Bjorn Andersson
2020-06-01 17:51 ` [PATCH v4 9/9] remoteproc: Properly handle firmware name when attaching Mathieu Poirier
2020-06-04 14:16 ` Arnaud POULIQUEN
2020-06-04 20:14 ` Mathieu Poirier
2020-06-22 7:33 ` Bjorn Andersson
2020-06-23 19:48 ` Mathieu Poirier
2020-06-23 20:09 ` Bjorn Andersson
2020-06-04 14:24 ` [PATCH v4 0/9] remoteproc: Add support for attaching with rproc Arnaud POULIQUEN
2020-06-04 20:27 ` Mathieu Poirier
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=20200622072525.GH149351@builder.lan \
--to=bjorn.andersson@linaro.org \
--cc=arnaud.pouliquen@st.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-remoteproc@vger.kernel.org \
--cc=loic.pallardy@st.com \
--cc=mathieu.poirier@linaro.org \
--cc=ohad@wizery.com \
--cc=s-anna@ti.com \
/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.