Message ID | 20240809060132.308642-1-b-padhi@ti.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | remoteproc: k3-r5: Delay notification of wakeup event | expand |
On Fri, Aug 09, 2024 at 11:31:32AM +0530, Beleswar Padhi wrote: > From: Udit Kumar <u-kumar1@ti.com> > > Few times, core1 was scheduled to boot first before core0, which leads > to error: > > 'k3_r5_rproc_start: can not start core 1 before core 0'. > > This was happening due to some scheduling between prepare and start > callback. The probe function waits for event, which is getting > triggered by prepare callback. To avoid above condition move event > trigger to start instead of prepare callback. I can see the race condition. > > Fixes: 61f6f68447ab ("remoteproc: k3-r5: Wait for core0 power-up before powering up core1") > Signed-off-by: Udit Kumar <u-kumar1@ti.com> > [ Applied wakeup event trigger only for Split-Mode booted rprocs ] > Signed-off-by: Beleswar Padhi <b-padhi@ti.com> > --- > drivers/remoteproc/ti_k3_r5_remoteproc.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/remoteproc/ti_k3_r5_remoteproc.c b/drivers/remoteproc/ti_k3_r5_remoteproc.c > index 39a47540c590..f1710a61247f 100644 > --- a/drivers/remoteproc/ti_k3_r5_remoteproc.c > +++ b/drivers/remoteproc/ti_k3_r5_remoteproc.c > @@ -464,8 +464,6 @@ static int k3_r5_rproc_prepare(struct rproc *rproc) > ret); > return ret; > } > - core->released_from_reset = true; > - wake_up_interruptible(&cluster->core_transition); > > /* > * Newer IP revisions like on J7200 SoCs support h/w auto-initialization > @@ -587,6 +585,9 @@ static int k3_r5_rproc_start(struct rproc *rproc) > ret = k3_r5_core_run(core); > if (ret) > goto put_mbox; > + > + core->released_from_reset = true; > + wake_up_interruptible(&cluster->core_transition); This patch doesn't apply due to recent changes made to the k3-r5 driver. Please rebase and resubmit. Thanks, Mathieu > } > > return 0; > -- > 2.34.1 >
diff --git a/drivers/remoteproc/ti_k3_r5_remoteproc.c b/drivers/remoteproc/ti_k3_r5_remoteproc.c index 39a47540c590..f1710a61247f 100644 --- a/drivers/remoteproc/ti_k3_r5_remoteproc.c +++ b/drivers/remoteproc/ti_k3_r5_remoteproc.c @@ -464,8 +464,6 @@ static int k3_r5_rproc_prepare(struct rproc *rproc) ret); return ret; } - core->released_from_reset = true; - wake_up_interruptible(&cluster->core_transition); /* * Newer IP revisions like on J7200 SoCs support h/w auto-initialization @@ -587,6 +585,9 @@ static int k3_r5_rproc_start(struct rproc *rproc) ret = k3_r5_core_run(core); if (ret) goto put_mbox; + + core->released_from_reset = true; + wake_up_interruptible(&cluster->core_transition); } return 0;