]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
remoteproc: imx_rproc: Clean up after ops introduction
authorPeng Fan <peng.fan@nxp.com>
Wed, 10 Sep 2025 07:11:50 +0000 (15:11 +0800)
committerMathieu Poirier <mathieu.poirier@linaro.org>
Mon, 15 Sep 2025 16:05:59 +0000 (10:05 -0600)
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>
drivers/remoteproc/imx_rproc.c

index 5fa729f4286f6ac939357c32fef41d7d97e5f860..bb25221a4a8987ff427d68e2a5535f0e156b0097 100644 (file)
@@ -323,14 +323,10 @@ static int imx_rproc_start(struct rproc *rproc)
        if (ret)
                return 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:
+       ret = dcfg->ops->start(rproc);
        if (ret)
                dev_err(dev, "Failed to enable remote core!\n");
 
@@ -380,14 +376,10 @@ static int imx_rproc_stop(struct rproc *rproc)
        struct device *dev = priv->dev;
        int ret;
 
-       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:
+       ret = dcfg->ops->stop(rproc);
        if (ret)
                dev_err(dev, "Failed to stop remote core\n");
        else
@@ -997,18 +989,16 @@ static int imx_rproc_detect_mode(struct imx_rproc *priv)
 {
        const struct imx_rproc_dcfg *dcfg = priv->dcfg;
 
-       if (dcfg->ops && dcfg->ops->detect_mode)
-               return dcfg->ops->detect_mode(priv->rproc);
-
-       switch (dcfg->method) {
-       case IMX_RPROC_NONE:
+       /*
+        * To i.MX{7,8} ULP, Linux is under control of RTOS, no need
+        * dcfg->ops or dcfg->ops->detect_mode, it is state RPROC_DETACHED.
+        */
+       if (!dcfg->ops || !dcfg->ops->detect_mode) {
                priv->rproc->state = RPROC_DETACHED;
                return 0;
-       default:
-               break;
        }
 
-       return 0;
+       return dcfg->ops->detect_mode(priv->rproc);
 }
 
 static int imx_rproc_clk_enable(struct imx_rproc *priv)