Skip to content

Commit e65a9ed

Browse files
MrVanmathieupoirier
authored andcommitted
remoteproc: imx_rproc: Clean up after ops introduction
With the switch-case in imx_rproc_{start,stop}{} removed, simplify the code logic by removing 'goto'. The last switch-case in imx_rproc_detect_mode() are no longer needed and can be removed. This cleanup improves code readability and aligns with the new ops-based design. No functional changes. Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com> Signed-off-by: Peng Fan <peng.fan@nxp.com> Link: https://lore.kernel.org/r/20250910-imx-rproc-cleanup-v2-6-10386685b8a9@nxp.com Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
1 parent ecadd76 commit e65a9ed

1 file changed

Lines changed: 12 additions & 22 deletions

File tree

drivers/remoteproc/imx_rproc.c

Lines changed: 12 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -323,14 +323,10 @@ static int imx_rproc_start(struct rproc *rproc)
323323
if (ret)
324324
return ret;
325325

326-
if (dcfg->ops && dcfg->ops->start) {
327-
ret = dcfg->ops->start(rproc);
328-
goto start_ret;
329-
}
330-
331-
return -EOPNOTSUPP;
326+
if (!dcfg->ops || !dcfg->ops->start)
327+
return -EOPNOTSUPP;
332328

333-
start_ret:
329+
ret = dcfg->ops->start(rproc);
334330
if (ret)
335331
dev_err(dev, "Failed to enable remote core!\n");
336332

@@ -380,14 +376,10 @@ static int imx_rproc_stop(struct rproc *rproc)
380376
struct device *dev = priv->dev;
381377
int ret;
382378

383-
if (dcfg->ops && dcfg->ops->stop) {
384-
ret = dcfg->ops->stop(rproc);
385-
goto stop_ret;
386-
}
387-
388-
return -EOPNOTSUPP;
379+
if (!dcfg->ops || !dcfg->ops->stop)
380+
return -EOPNOTSUPP;
389381

390-
stop_ret:
382+
ret = dcfg->ops->stop(rproc);
391383
if (ret)
392384
dev_err(dev, "Failed to stop remote core\n");
393385
else
@@ -997,18 +989,16 @@ static int imx_rproc_detect_mode(struct imx_rproc *priv)
997989
{
998990
const struct imx_rproc_dcfg *dcfg = priv->dcfg;
999991

1000-
if (dcfg->ops && dcfg->ops->detect_mode)
1001-
return dcfg->ops->detect_mode(priv->rproc);
1002-
1003-
switch (dcfg->method) {
1004-
case IMX_RPROC_NONE:
992+
/*
993+
* To i.MX{7,8} ULP, Linux is under control of RTOS, no need
994+
* dcfg->ops or dcfg->ops->detect_mode, it is state RPROC_DETACHED.
995+
*/
996+
if (!dcfg->ops || !dcfg->ops->detect_mode) {
1005997
priv->rproc->state = RPROC_DETACHED;
1006998
return 0;
1007-
default:
1008-
break;
1009999
}
10101000

1011-
return 0;
1001+
return dcfg->ops->detect_mode(priv->rproc);
10121002
}
10131003

10141004
static int imx_rproc_clk_enable(struct imx_rproc *priv)

0 commit comments

Comments
 (0)