From: Iuliana Prodan <[email protected]> The DSP suspend path currently waits unconditionally for a suspend ack from the firmware. This breaks firmwares that do not implement the mailbox-based READY handshake, as the DSP never responds and system suspend fails with -EBUSY.
The driver already uses the WAIT_FW_READY flag to indicate that the firmware supports the READY handshake at boot. Apply the same logic during suspend: only wait for the suspend ack when the firmware is expected to support it. Signed-off-by: Iuliana Prodan <[email protected]> --- drivers/remoteproc/imx_dsp_rproc.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/remoteproc/imx_dsp_rproc.c b/drivers/remoteproc/imx_dsp_rproc.c index fc0470aa72c1..e25dbe32ef79 100644 --- a/drivers/remoteproc/imx_dsp_rproc.c +++ b/drivers/remoteproc/imx_dsp_rproc.c @@ -1327,10 +1327,11 @@ static int imx_dsp_suspend(struct device *dev) } /* - * DSP need to save the context at suspend. - * Here waiting the response for DSP, then power can be disabled. + * The DSP must save its context during suspend. + * Wait for a response from the DSP if required before disabling power. */ - if (!wait_for_completion_timeout(&priv->pm_comp, msecs_to_jiffies(100))) + if (priv->flags & WAIT_FW_READY && + !wait_for_completion_timeout(&priv->pm_comp, msecs_to_jiffies(100))) return -EBUSY; out: -- 2.34.1

