[PATCH 0/4] remoteproc: k3-r5: Introduce suspend to ram support

Richard Genoud
2024-06-21T15:01:09Z

This series enables the suspend to ram with R5F remote processors on TI K3
platform.

The 1st patch is actually a fix, independent from the others

The 2nd patch introduces the suspend/resume handlers.
On suspend, the running rprocs will be stopped (or detached) and then
re-loaded in resume.
The logic behind this is:
- shutdown the cores that Linux started to save power in suspend.
- detach the cores that were started before Linux.

Then, the 3rd and 4th patches introduce the graceful shutdown of remote
procs. This will give them a chance to release resources and shut down
in a civilized manner.

Without this series, the suspend fails with:

omap-mailbox 31f81000.mailbox: fifo 1 has unexpected unread messages
omap-mailbox 31f81000.mailbox: PM: dpm_run_callback(): platform_pm_suspend returns -16
omap-mailbox 31f81000.mailbox: PM: platform_pm_suspend returned -16 after 16328 usecs
omap-mailbox 31f81000.mailbox: PM: failed to suspend: error -16

Patches 2 and 4 are based on work from Hari Nagalla <hnagalla@ti.com>.

@Hari, please feel free to add your Co-developed-by:/Signed-off-by:

Tested on J7200X SoM
Series is based on v6.10-rc4

Richard Genoud (4):
remoteproc: k3-r5: Fix IPC-only mode detection
remoteproc: k3-r5: Introduce PM suspend/resume handlers
remoteproc: k3-r5: k3_r5_rproc_stop: code reorder
remoteproc: k3-r5: support for graceful stop of remote cores

drivers/remoteproc/omap_remoteproc.h | 9 +-
drivers/remoteproc/ti_k3_r5_remoteproc.c | 196 +++++++++++++++++++++--
2 files changed, 188 insertions(+), 17 deletions(-)