This fourth iteration implements a solution that is fairly different from what was proposed in V3 and earlier versions. Three aspects have been revisited: 1) Only the scenario where the remoteproc core is attaching to the remote processor is implemented. Other scenarios where actions need to be taken when the remote processor is stopped or crashes will be considered in subsequent versions. 2) The introduction of a new RPROC_DETACHED state to be set by platform drivers when needing to attach to an already running remote processor. 3) New functions are introduced to replicate the functionality provided by rproc_fw_boot() and rproc_start(), minus operations related to firmware management. Enhancement to the documentation has been left out intentionally until it is agreed to move forward with this implementation. Applies cleanly on rproc-next(7dcef3988eed) and will be rebased on v5.8-rc1 when it comes out in two weeks. Thanks, Mathieu Mathieu Poirier (9): remoteproc: Add new RPROC_DETACHED state remoteproc: Add new attach() remoteproc operation remoteproc: Introducing function rproc_attach() remoteproc: Introducing function rproc_actuate() remoteproc: Introducing function rproc_validate() remoteproc: Refactor function rproc_boot() remoteproc: Refactor function rproc_trigger_auto_boot() remoteproc: Refactor function rproc_free_vring() remoteproc: Properly handle firmware name when attaching drivers/remoteproc/remoteproc_core.c | 226 +++++++++++++++++++++-- drivers/remoteproc/remoteproc_internal.h | 8 + drivers/remoteproc/remoteproc_sysfs.c | 17 +- include/linux/remoteproc.h | 9 +- 4 files changed, 243 insertions(+), 17 deletions(-) -- 2.20.1