Thread (13 messages) 13 messages, 4 authors, 2017-01-03

[PATCH 1/2] soc: ti: Use remoteproc auto_boot feature

From: Suman Anna <hidden>
Date: 2016-12-23 16:56:06
Also in: linux-arm-msm, linux-remoteproc, lkml

Hi Sarang,

On 12/22/2016 06:07 PM, Sarangdhar Joshi wrote:
On 12/22/2016 5:02 AM, Bjorn Andersson wrote:
quoted
On Wed 21 Dec 19:16 PST 2016, Suman Anna wrote:
quoted
Hi Sarang,

On 12/15/2016 06:03 PM, Sarangdhar Joshi wrote:
quoted
The function wkup_m3_rproc_boot_thread waits for asynchronous
firmware loading to complete successfully before calling
rproc_boot(). The same can be achieved by just setting
rproc->auto_boot flag. Change this. As a result this change
removes wkup_m3_rproc_boot_thread and moves m3_ipc->sync_complete
initialization to the wkup_m3_ipc_probe().

Other than the current usage, the firmware_loading_complete is
only used in rproc_del() where it's no longer needed.  This
change is in preparation for removing firmware_loading_complete
completely.
Based on the comments so far, I am assuming that you are dropping this
series.
Following up on those comments only revealed that we have several other
similar race conditions, so I'm hoping that Sarangdhar will continue to
work on fixing those - and in this process get rid of this completion.
quoted
In any case, this series did break our PM stack. We definitely don't
want to auto-boot the wkup_m3_rproc device, that responsibility will
need to stay with the wkup_m3_ipc driver.
Reviewing the wkup_m3 situation again I see that as we have moved the
resource table parsing to the rproc_boot() path there's no longer any
need for the wkup_m3_ipc driver to wait for the remoteproc-core-internal
completion.

If rproc_get_by_phandle() returns non-NULL it is initialized. We still
don't want to call rproc_boot() from wkup_m3_ipc_probe(), so let's keep
the wkup_m3_rproc_boot_thread().
Did you mean it's okay to call rproc_boot() from wkup_m3_ipc_probe()?
rproc_boot() calls request_firmware() anyways and so there is no need to
wait for completion of asynchronous firmware loading.
No, please retain the kthread. I think you miss the purpose of this wait
for completion originally. Before all the core changes in 4.9, the
resource table is parsed in the first asynchronous loading step, and we
had to wait for that step to complete. Now that there's no table parsing
during the request_firmware_no_wait() for non auto-boot, we can get away
from the need for a synchronzition call.
quoted
Sarangdhar, could you update the wkup_m3_ipc patch to just drop the
wait_for_completion() call?
Sure, assuming we should still keep the rproc_boot() call in the kthread.
Yep.

regards
Suman
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help