Following the work done here [1], this set provides support for the remoteproc core to release resources associated with a remote processor without having to switch it off. That way a platform driver can be removed or the applcation processor power cycled while the remote processor is still operating. The only thing that changes in this revision are the last two patches where device tree bindings to control how to handle attached remote processors have been added. More specifically two bindings are being proposed: "autonomous_on_core_reboot": When rproc_cdev_release() or rproc_del() are called and the remote processor has been attached to, it will be detached from (rather than turned off) if "autonomous_on_core_reboot" is specified in the DT. "autonomous_on_remote_crash": When a remote processor that has been attached to crashes, it will be detached from if "autonomous_on_remote_crash" is specified in the DT. It is _not_ used in this set and presented to show how I intend to organise things. I spent a fair amount of time coming up with the name for the bindings and would welcome other ideas. I will write a proper yaml file and CC the linux-kernel mailing list once we have an agreement on the naming convention. Applies cleanly on v5.10-rc1 Thanks, Mathieu [1]. https://lkml.org/lkml/2020/7/14/1600 Mathieu Poirier (14): remoteproc: Re-check state in rproc_shutdown() remoteproc: Remove useless check in rproc_del() remoteproc: Add new RPROC_ATTACHED state remoteproc: Properly represent the attached state remoteproc: Properly deal with a kernel panic when attached remoteproc: Add new detach() remoteproc operation remoteproc: Introduce function __rproc_detach() remoteproc: Introduce function rproc_detach() remoteproc: Rename function rproc_actuate() remoteproc: Add return value to function rproc_shutdown() remoteproc: Properly deal with a stop request when attached remoteproc: Properly deal with detach request remoteproc: Add automation flags remoteproc: Refactor rproc delete and cdev release path drivers/remoteproc/remoteproc_cdev.c | 24 +++- drivers/remoteproc/remoteproc_core.c | 183 +++++++++++++++++++++----- drivers/remoteproc/remoteproc_sysfs.c | 17 ++- include/linux/remoteproc.h | 19 ++- 4 files changed, 199 insertions(+), 44 deletions(-) -- 2.25.1