summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeng Fan <peng.fan@nxp.com>2025-11-19 12:21:57 +0800
committerMathieu Poirier <mathieu.poirier@linaro.org>2025-11-19 09:16:55 -0700
commit6f880e7bd103c38d583326f176db8aae8c8b71c2 (patch)
tree7a275f2c376f0f083f5d8bba62b037510013b2f8
parent5c33a631a5780df70e2b392539a98e4a624cd752 (diff)
remoteproc: imx_dsp_rproc: Simplify start/stop error handling
Replace goto-based error handling with early return pattern in imx_dsp_rproc_{start,stop}() functions, and simplify if-else logic. No functional changes, only code structure improvements for better maintainability. Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com> Reviewed-by: Frank Li <Frank.Li@nxp.com> Link: https://lore.kernel.org/r/20251119-imx-dsp-2025-11-19-v4-12-adafd342d07b@nxp.com Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
-rw-r--r--drivers/remoteproc/imx_dsp_rproc.c39
1 files changed, 18 insertions, 21 deletions
diff --git a/drivers/remoteproc/imx_dsp_rproc.c b/drivers/remoteproc/imx_dsp_rproc.c
index 6237e8db2eff..1a1438823e7f 100644
--- a/drivers/remoteproc/imx_dsp_rproc.c
+++ b/drivers/remoteproc/imx_dsp_rproc.c
@@ -376,20 +376,19 @@ static int imx_dsp_rproc_start(struct rproc *rproc)
struct device *dev = rproc->dev.parent;
int ret;
- if (dcfg->ops && dcfg->ops->start) {
- ret = dcfg->ops->start(rproc);
- goto start_ret;
- }
-
- return -EOPNOTSUPP;
+ if (!dcfg->ops || !dcfg->ops->start)
+ return -EOPNOTSUPP;
-start_ret:
- if (ret)
+ ret = dcfg->ops->start(rproc);
+ if (ret) {
dev_err(dev, "Failed to enable remote core!\n");
- else if (priv->flags & WAIT_FW_READY)
+ return ret;
+ }
+
+ if (priv->flags & WAIT_FW_READY)
return imx_dsp_rproc_ready(rproc);
- return ret;
+ return 0;
}
static int imx_dsp_rproc_mmio_stop(struct rproc *rproc)
@@ -431,20 +430,18 @@ static int imx_dsp_rproc_stop(struct rproc *rproc)
return 0;
}
- if (dcfg->ops && dcfg->ops->stop) {
- ret = dcfg->ops->stop(rproc);
- goto stop_ret;
- }
-
- return -EOPNOTSUPP;
+ if (!dcfg->ops || !dcfg->ops->stop)
+ return -EOPNOTSUPP;
-stop_ret:
- if (ret)
+ ret = dcfg->ops->stop(rproc);
+ if (ret) {
dev_err(dev, "Failed to stop remote core\n");
- else
- priv->flags &= ~REMOTE_IS_READY;
+ return ret;
+ }
- return ret;
+ priv->flags &= ~REMOTE_IS_READY;
+
+ return 0;
}
/**