diff options
author | Tero Kristo <t-kristo@ti.com> | 2021-06-11 11:45:04 +0300 |
---|---|---|
committer | Lokesh Vutla <lokeshvutla@ti.com> | 2021-06-11 16:34:52 +0530 |
commit | 25805b6f0cf29cbb8db15ae2f0d4801c2f349985 (patch) | |
tree | be872990b61b3957e93735288262cc71fcf90e28 | |
parent | 99214c1f4825a3d2b88ebde1ad48b315c04f16fa (diff) | |
download | u-boot-25805b6f0cf29cbb8db15ae2f0d4801c2f349985.zip u-boot-25805b6f0cf29cbb8db15ae2f0d4801c2f349985.tar.gz u-boot-25805b6f0cf29cbb8db15ae2f0d4801c2f349985.tar.bz2 |
remoteproc: k3-r5: remove sysfw PM calls if not supported
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-kristo@ti.com>
Signed-off-by: Tero Kristo <kristo@kernel.org>
-rw-r--r-- | drivers/remoteproc/ti_k3_r5f_rproc.c | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/drivers/remoteproc/ti_k3_r5f_rproc.c b/drivers/remoteproc/ti_k3_r5f_rproc.c index 3c569a3..6f3e12d 100644 --- a/drivers/remoteproc/ti_k3_r5f_rproc.c +++ b/drivers/remoteproc/ti_k3_r5f_rproc.c @@ -804,19 +804,27 @@ static int k3_r5f_probe(struct udevice *dev) return ret; } - ret = core->tsp.sci->ops.dev_ops.is_on(core->tsp.sci, core->tsp.dev_id, - &r_state, &core->in_use); - if (ret) - 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. + */ + if (!IS_ENABLED(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) + return ret; - if (core->in_use) { - dev_info(dev, "Core %d is already in use. No rproc commands work\n", - core->tsp.proc_id); - return 0; - } + if (core->in_use) { + dev_info(dev, "Core %d is already in use. No rproc commands work\n", + core->tsp.proc_id); + return 0; + } - /* Make sure Local reset is asserted. Redundant? */ - reset_assert(&core->reset); + /* Make sure Local reset is asserted. Redundant? */ + reset_assert(&core->reset); + } ret = k3_r5f_rproc_configure(core); if (ret) { |