[PATCH v10 14/33] remoteproc: k3-dsp: Correct Reset logic for devices without lresets

From: Beleswar Padhi
Date: Thu Apr 17 2025 - 14:23:28 EST


The k3_dsp_rproc_reset() function erroneously asserts the local reset
even for devices which do not support it. Even though it results in a
no-operation, Update the logic to explicitly assert the local reset for
devices that support it and only the global reset for those that do not.

Signed-off-by: Beleswar Padhi <b-padhi@xxxxxx>
---
v10: Changelog:
1. Split [v9 12/26] into [v10 14/33] and [v10 15/33] patches.

Link to v9:
https://lore.kernel.org/all/20250317120622.1746415-13-b-padhi@xxxxxx/

drivers/remoteproc/ti_k3_dsp_remoteproc.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)

diff --git a/drivers/remoteproc/ti_k3_dsp_remoteproc.c b/drivers/remoteproc/ti_k3_dsp_remoteproc.c
index 476f4e69d2c11..0a8c9e61393d2 100644
--- a/drivers/remoteproc/ti_k3_dsp_remoteproc.c
+++ b/drivers/remoteproc/ti_k3_dsp_remoteproc.c
@@ -30,15 +30,13 @@ static int k3_dsp_rproc_reset(struct k3_rproc *kproc)
struct device *dev = kproc->dev;
int ret;

- ret = reset_control_assert(kproc->reset);
- if (ret) {
- dev_err(dev, "local-reset assert failed (%pe)\n", ERR_PTR(ret));
+ if (kproc->data->uses_lreset) {
+ ret = reset_control_assert(kproc->reset);
+ if (ret)
+ dev_err(dev, "local-reset assert failed (%pe)\n", ERR_PTR(ret));
return ret;
}

- if (kproc->data->uses_lreset)
- return ret;
-
ret = kproc->ti_sci->ops.dev_ops.put_device(kproc->ti_sci,
kproc->ti_sci_id);
if (ret) {
--
2.34.1