From: Tero Kristo <t-kri...@ti.com>

With the sysfw rearch, sysfw PM calls are no longer available from SPL
level. To properly support this, remove the is_on checks and the reset
assertion from the R5 remoteproc driver as these are not supported.
Attempting to access unavailable services will cause the device to hang.

Signed-off-by: Tero Kristo <t-kri...@ti.com>
Signed-off-by: Tero Kristo <kri...@kernel.org>
---
 drivers/remoteproc/ti_k3_r5f_rproc.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/remoteproc/ti_k3_r5f_rproc.c 
b/drivers/remoteproc/ti_k3_r5f_rproc.c
index 3c569a3b7b..c8c30b9020 100644
--- a/drivers/remoteproc/ti_k3_r5f_rproc.c
+++ b/drivers/remoteproc/ti_k3_r5f_rproc.c
@@ -781,7 +781,9 @@ static int k3_r5f_probe(struct udevice *dev)
 {
        struct k3_r5f_cluster *cluster = dev_get_priv(dev->parent);
        struct k3_r5f_core *core = dev_get_priv(dev);
+#ifndef CONFIG_K3_DM_FW
        bool r_state;
+#endif
        int ret;
 
        dev_dbg(dev, "%s\n", __func__);
@@ -804,6 +806,12 @@ static int k3_r5f_probe(struct udevice *dev)
                return ret;
        }
 
+       /*
+        * The PM functionality is not supported by the firmware during
+        * SPL execution with the separated DM firmware image. The following
+        * piece of code is not compiled in that case.
+        */
+#ifndef CONFIG_K3_DM_FW
        ret = core->tsp.sci->ops.dev_ops.is_on(core->tsp.sci, core->tsp.dev_id,
                                               &r_state, &core->in_use);
        if (ret)
@@ -817,6 +825,7 @@ static int k3_r5f_probe(struct udevice *dev)
 
        /* Make sure Local reset is asserted. Redundant? */
        reset_assert(&core->reset);
+#endif
 
        ret = k3_r5f_rproc_configure(core);
        if (ret) {
-- 
2.17.1

Reply via email to