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.bal...@nxp.com>
Signed-off-by: Peng Fan <peng....@nxp.com>
---
 drivers/remoteproc/imx_rproc.c | 34 ++++++++++++----------------------
 1 file changed, 12 insertions(+), 22 deletions(-)

diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c
index 
5fa729f4286f6ac939357c32fef41d7d97e5f860..bb25221a4a8987ff427d68e2a5535f0e156b0097
 100644
--- a/drivers/remoteproc/imx_rproc.c
+++ b/drivers/remoteproc/imx_rproc.c
@@ -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)

-- 
2.37.1


Reply via email to