remoteproc: stm32: Improve crash recovery time
authorArnaud Pouliquen <arnaud.pouliquen@foss.st.com>
Tue, 21 Dec 2021 14:31:29 +0000 (15:31 +0100)
committerMathieu Poirier <mathieu.poirier@linaro.org>
Mon, 3 Jan 2022 18:40:45 +0000 (11:40 -0700)
When a stop is requested on a crash, it is useless to try to shutdown it
gracefully, it is crashed.

In this case don't send the STM32_MBX_SHUTDOWN mailbox message that
will block the recovery during 500 ms, waiting an answer from the
coprocessor.

Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
Link: https://lore.kernel.org/r/20211221143129.18415-1-arnaud.pouliquen@foss.st.com
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
drivers/remoteproc/stm32_rproc.c

index b643efcf995a1beb57c1cd29169a8c87a2cf1347..7d782ed9e589642bd568efb9e7b8eb158c52e3a6 100644 (file)
@@ -494,7 +494,7 @@ static int stm32_rproc_stop(struct rproc *rproc)
        int err, idx;
 
        /* request shutdown of the remote processor */
-       if (rproc->state != RPROC_OFFLINE) {
+       if (rproc->state != RPROC_OFFLINE && rproc->state != RPROC_CRASHED) {
                idx = stm32_rproc_mbox_idx(rproc, STM32_MBX_SHUTDOWN);
                if (idx >= 0 && ddata->mb[idx].chan) {
                        err = mbox_send_message(ddata->mb[idx].chan, "detach");