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.
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
drivers/remoteproc/imx_rproc.c | 25 +++++++------------------
1 file changed, 7 insertions(+), 18 deletions(-)
diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c
index 5fa729f4286f6ac939357c32fef41d7d97e5f860..ed8395b097d07d02e5323550ff497819f9b95ad6 100644
--- a/drivers/remoteproc/imx_rproc.c
+++ b/drivers/remoteproc/imx_rproc.c
@@ -323,14 +323,11 @@ static int imx_rproc_start(struct rproc *rproc)
if (ret)
return ret;
- if (dcfg->ops && dcfg->ops->start) {
+ if (dcfg->ops && dcfg->ops->start)
ret = dcfg->ops->start(rproc);
- goto start_ret;
- }
-
- return -EOPNOTSUPP;
+ else
+ return -EOPNOTSUPP;
-start_ret:
if (ret)
dev_err(dev, "Failed to enable remote core!\n");
@@ -380,14 +377,11 @@ static int imx_rproc_stop(struct rproc *rproc)
struct device *dev = priv->dev;
int ret;
- if (dcfg->ops && dcfg->ops->stop) {
+ if (dcfg->ops && dcfg->ops->stop)
ret = dcfg->ops->stop(rproc);
- goto stop_ret;
- }
-
- return -EOPNOTSUPP;
+ else
+ return -EOPNOTSUPP;
-stop_ret:
if (ret)
dev_err(dev, "Failed to stop remote core\n");
else
@@ -1000,13 +994,8 @@ static int imx_rproc_detect_mode(struct imx_rproc *priv)
if (dcfg->ops && dcfg->ops->detect_mode)
return dcfg->ops->detect_mode(priv->rproc);
- switch (dcfg->method) {
- case IMX_RPROC_NONE:
+ if (dcfg->method == IMX_RPROC_NONE)
priv->rproc->state = RPROC_DETACHED;
- return 0;
- default:
- break;
- }
return 0;
}
--
2.37.1
On Mon, Sep 08, 2025 at 09:07:39PM +0800, Peng Fan wrote: > 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. > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > --- > drivers/remoteproc/imx_rproc.c | 25 +++++++------------------ > 1 file changed, 7 insertions(+), 18 deletions(-) > > diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c > index 5fa729f4286f6ac939357c32fef41d7d97e5f860..ed8395b097d07d02e5323550ff497819f9b95ad6 100644 > --- a/drivers/remoteproc/imx_rproc.c > +++ b/drivers/remoteproc/imx_rproc.c > @@ -323,14 +323,11 @@ static int imx_rproc_start(struct rproc *rproc) > if (ret) > return ret; > > - if (dcfg->ops && dcfg->ops->start) { > + if (dcfg->ops && dcfg->ops->start) > ret = dcfg->ops->start(rproc); > - goto start_ret; > - } > - > - return -EOPNOTSUPP; > + else > + return -EOPNOTSUPP; Here I would simply refactor this to: if (!dcfg->ops || !dcfg->ops_start) return -EONOTSUPP; Otherwise this patchset is going in the right direction. Thanks, Mathieu > > -start_ret: > if (ret) > dev_err(dev, "Failed to enable remote core!\n"); > > @@ -380,14 +377,11 @@ static int imx_rproc_stop(struct rproc *rproc) > struct device *dev = priv->dev; > int ret; > > - if (dcfg->ops && dcfg->ops->stop) { > + if (dcfg->ops && dcfg->ops->stop) > ret = dcfg->ops->stop(rproc); > - goto stop_ret; > - } > - > - return -EOPNOTSUPP; > + else > + return -EOPNOTSUPP; > > -stop_ret: > if (ret) > dev_err(dev, "Failed to stop remote core\n"); > else > @@ -1000,13 +994,8 @@ static int imx_rproc_detect_mode(struct imx_rproc *priv) > if (dcfg->ops && dcfg->ops->detect_mode) > return dcfg->ops->detect_mode(priv->rproc); > > - switch (dcfg->method) { > - case IMX_RPROC_NONE: > + if (dcfg->method == IMX_RPROC_NONE) > priv->rproc->state = RPROC_DETACHED; > - return 0; > - default: > - break; > - } > > return 0; > } > > -- > 2.37.1 >
On Mon, Sep 08, 2025 at 09:07:39PM +0800, Peng Fan wrote: > 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. > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > --- > drivers/remoteproc/imx_rproc.c | 25 +++++++------------------ > 1 file changed, 7 insertions(+), 18 deletions(-) > > diff --git a/drivers/remoteproc/imx_rproc.c b/drivers/remoteproc/imx_rproc.c > index 5fa729f4286f6ac939357c32fef41d7d97e5f860..ed8395b097d07d02e5323550ff497819f9b95ad6 100644 > --- a/drivers/remoteproc/imx_rproc.c > +++ b/drivers/remoteproc/imx_rproc.c > @@ -323,14 +323,11 @@ static int imx_rproc_start(struct rproc *rproc) > if (ret) > return ret; > > - if (dcfg->ops && dcfg->ops->start) { > + if (dcfg->ops && dcfg->ops->start) > ret = dcfg->ops->start(rproc); > - goto start_ret; > - } > - > - return -EOPNOTSUPP; > + else > + return -EOPNOTSUPP; > > -start_ret: > if (ret) > dev_err(dev, "Failed to enable remote core!\n"); > > @@ -380,14 +377,11 @@ static int imx_rproc_stop(struct rproc *rproc) > struct device *dev = priv->dev; > int ret; > > - if (dcfg->ops && dcfg->ops->stop) { > + if (dcfg->ops && dcfg->ops->stop) > ret = dcfg->ops->stop(rproc); > - goto stop_ret; > - } > - > - return -EOPNOTSUPP; > + else > + return -EOPNOTSUPP; > > -stop_ret: > if (ret) > dev_err(dev, "Failed to stop remote core\n"); > else > @@ -1000,13 +994,8 @@ static int imx_rproc_detect_mode(struct imx_rproc *priv) > if (dcfg->ops && dcfg->ops->detect_mode) > return dcfg->ops->detect_mode(priv->rproc); > > - switch (dcfg->method) { > - case IMX_RPROC_NONE: > + if (dcfg->method == IMX_RPROC_NONE) Is it possible remove "method"? Can you check dcfg->ops->dectect_mode NULL here? Frank Li > priv->rproc->state = RPROC_DETACHED; > - return 0; > - default: > - break; > - } > > return 0; > } > > -- > 2.37.1 >
On Mon, Sep 08, 2025 at 11:03:46AM -0400, Frank Li wrote: >On Mon, Sep 08, 2025 at 09:07:39PM +0800, Peng Fan wrote: [...] >> if (dcfg->ops && dcfg->ops->detect_mode) >> return dcfg->ops->detect_mode(priv->rproc); >> >> - switch (dcfg->method) { >> - case IMX_RPROC_NONE: >> + if (dcfg->method == IMX_RPROC_NONE) > >Is it possible remove "method"? Can you check dcfg->ops->dectect_mode NULL >here? Yeah. we could do as below. if (dcfg->ops && dcfg->ops->detect_mode) return dcfg->ops->detect_mode(priv->rproc); else priv->rproc->state = RPROC_DETACHED; Thanks, Peng > >Frank Li >> priv->rproc->state = RPROC_DETACHED; >> - return 0; >> - default: >> - break; >> - } >> >> return 0; >> } >> >> -- >> 2.37.1 >>
© 2016 - 2025 Red Hat, Inc.