On Mon 01 Jun 10:51 PDT 2020, Mathieu Poirier wrote: > Refactor function rproc_trigger_auto_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@xxxxxxxxxx> Reviewed-by: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx> Regards, Bjorn > --- > drivers/remoteproc/remoteproc_core.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/drivers/remoteproc/remoteproc_core.c b/drivers/remoteproc/remoteproc_core.c > index 48ddc29814be..d32ac8f0c872 100644 > --- a/drivers/remoteproc/remoteproc_core.c > +++ b/drivers/remoteproc/remoteproc_core.c > @@ -1586,6 +1586,15 @@ static int rproc_trigger_auto_boot(struct rproc *rproc) > { > int ret; > > + /* > + * Since the remote processor is in a detached state, it has already > + * been booted by another entity. As such there is no point in waiting > + * for a firmware image to be loaded, we can simply initiate the process > + * of attaching to it immediately. > + */ > + if (rproc->state == RPROC_DETACHED) > + return rproc_boot(rproc); > + > /* > * We're initiating an asynchronous firmware loading, so we can > * be built-in kernel code, without hanging the boot process. > -- > 2.20.1 >