summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShengjiu Wang <shengjiu.wang@nxp.com>2025-12-18 10:17:50 +0300
committerMathieu Poirier <mathieu.poirier@linaro.org>2026-01-06 00:09:31 +0300
commitb490ddf27be28e64a39c08ae643d7b22561beaf6 (patch)
tree4d770d4e65e1f9274f998905d38090a2d7467485
parent332c03279bc81a1a88d8dc5dd23f3c956d99d882 (diff)
downloadlinux-b490ddf27be28e64a39c08ae643d7b22561beaf6.tar.xz
remoteproc: imx_dsp_rproc: Only reset carveout memory at RPROC_OFFLINE state
Do not reset memory at suspend and resume stage, because some memory is used to save the software state for resume, if it is cleared, the resume operation can fail. Fixes: c4c432dfb00f ("remoteproc: imx_dsp_rproc: Add support of recovery and coredump process") Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com> Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com> Reviewed-by: Iuliana Prodan <iuliana.prodan@nxp.com> Link: https://lore.kernel.org/r/20251218071750.2692132-1-shengjiu.wang@nxp.com Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
-rw-r--r--drivers/remoteproc/imx_dsp_rproc.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/remoteproc/imx_dsp_rproc.c b/drivers/remoteproc/imx_dsp_rproc.c
index 8426d7af9c75..008741af9f11 100644
--- a/drivers/remoteproc/imx_dsp_rproc.c
+++ b/drivers/remoteproc/imx_dsp_rproc.c
@@ -1000,9 +1000,11 @@ static int imx_dsp_rproc_load(struct rproc *rproc, const struct firmware *fw)
* Clear buffers after pm rumtime for internal ocram is not
* accessible if power and clock are not enabled.
*/
- list_for_each_entry(carveout, &rproc->carveouts, node) {
- if (carveout->va)
- memset(carveout->va, 0, carveout->len);
+ if (rproc->state == RPROC_OFFLINE) {
+ list_for_each_entry(carveout, &rproc->carveouts, node) {
+ if (carveout->va)
+ memset(carveout->va, 0, carveout->len);
+ }
}
ret = imx_dsp_rproc_elf_load_segments(rproc, fw);