diff mbox series

[1/2] pwm: sti: Avoid conditional gotos

Message ID 20201111191449.409402-1-thierry.reding@gmail.com
State Accepted
Headers show
Series [1/2] pwm: sti: Avoid conditional gotos | expand

Commit Message

Thierry Reding Nov. 11, 2020, 7:14 p.m. UTC
Using gotos for conditional code complicates this code significantly.
Convert the code to simple conditional blocks to increase readability.

Suggested-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
---
 drivers/pwm/pwm-sti.c | 53 ++++++++++++++++++++-----------------------
 1 file changed, 24 insertions(+), 29 deletions(-)

Comments

Uwe Kleine-König Nov. 12, 2020, 7:56 a.m. UTC | #1
Hello Thierry,

On Wed, Nov 11, 2020 at 08:14:48PM +0100, Thierry Reding wrote:
> Using gotos for conditional code complicates this code significantly.
> Convert the code to simple conditional blocks to increase readability.
> 
> Suggested-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> Signed-off-by: Thierry Reding <thierry.reding@gmail.com>

Great you picked that up, thanks.

Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

Best regards
Uwe
Lee Jones Nov. 12, 2020, 8:59 a.m. UTC | #2
On Wed, 11 Nov 2020, Thierry Reding wrote:

> Using gotos for conditional code complicates this code significantly.
> Convert the code to simple conditional blocks to increase readability.
> 
> Suggested-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
> Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
> ---
>  drivers/pwm/pwm-sti.c | 53 ++++++++++++++++++++-----------------------
>  1 file changed, 24 insertions(+), 29 deletions(-)
> 
> diff --git a/drivers/pwm/pwm-sti.c b/drivers/pwm/pwm-sti.c
> index a1392255955f..c6c82724d327 100644
> --- a/drivers/pwm/pwm-sti.c
> +++ b/drivers/pwm/pwm-sti.c
> @@ -590,48 +590,43 @@ static int sti_pwm_probe(struct platform_device *pdev)
>  	if (ret)
>  		return ret;
>  
> -	if (!cdata->pwm_num_devs)
> -		goto skip_pwm;
> -
> -	pc->pwm_clk = of_clk_get_by_name(dev->of_node, "pwm");
> -	if (IS_ERR(pc->pwm_clk)) {
> -		dev_err(dev, "failed to get PWM clock\n");
> -		return PTR_ERR(pc->pwm_clk);
> -	}
> +	if (cdata->pwm_num_devs) {
> +		pc->pwm_clk = of_clk_get_by_name(dev->of_node, "pwm");
> +		if (IS_ERR(pc->pwm_clk)) {
> +			dev_err(dev, "failed to get PWM clock\n");
> +			return PTR_ERR(pc->pwm_clk);
> +		}
>  
> -	ret = clk_prepare(pc->pwm_clk);
> -	if (ret) {
> -		dev_err(dev, "failed to prepare clock\n");
> -		goto put_pwm_clk;
> +		ret = clk_prepare(pc->pwm_clk);
> +		if (ret) {
> +			dev_err(dev, "failed to prepare clock\n");
> +			goto put_pwm_clk;
> +		}
>  	}
>  
> -skip_pwm:
> -	if (!cdata->cpt_num_devs)
> -		goto skip_cpt;
> -
> -	pc->cpt_clk = of_clk_get_by_name(dev->of_node, "capture");
> -	if (IS_ERR(pc->cpt_clk)) {
> -		dev_err(dev, "failed to get PWM capture clock\n");
> -		ret = PTR_ERR(pc->cpt_clk);
> -		goto unprepare_pwm_clk;
> -	}
> +	if (cdata->cpt_num_devs) {
> +		pc->cpt_clk = of_clk_get_by_name(dev->of_node, "capture");
> +		if (IS_ERR(pc->cpt_clk)) {
> +			dev_err(dev, "failed to get PWM capture clock\n");
> +			ret = PTR_ERR(pc->cpt_clk);
> +			goto unprepare_pwm_clk;
> +		}
>  
> -	ret = clk_prepare(pc->cpt_clk);
> -	if (ret) {
> -		dev_err(dev, "failed to prepare clock\n");
> -		goto put_cpt_clk;
> +		ret = clk_prepare(pc->cpt_clk);
> +		if (ret) {
> +			dev_err(dev, "failed to prepare clock\n");
> +			goto put_cpt_clk;
> +		}
>  	}
>  
> -skip_cpt:
>  	pc->chip.dev = dev;
>  	pc->chip.ops = &sti_pwm_ops;
>  	pc->chip.base = -1;
>  	pc->chip.npwm = pc->cdata->pwm_num_devs;
>  
>  	ret = pwmchip_add(&pc->chip);
> -	if (ret < 0) {
> +	if (ret < 0)
>  		goto unprepare_cpt_clk;
> -	}

Sneaky!

Acked-by: Lee Jones <lee.jones@linaro.org>
diff mbox series

Patch

diff --git a/drivers/pwm/pwm-sti.c b/drivers/pwm/pwm-sti.c
index a1392255955f..c6c82724d327 100644
--- a/drivers/pwm/pwm-sti.c
+++ b/drivers/pwm/pwm-sti.c
@@ -590,48 +590,43 @@  static int sti_pwm_probe(struct platform_device *pdev)
 	if (ret)
 		return ret;
 
-	if (!cdata->pwm_num_devs)
-		goto skip_pwm;
-
-	pc->pwm_clk = of_clk_get_by_name(dev->of_node, "pwm");
-	if (IS_ERR(pc->pwm_clk)) {
-		dev_err(dev, "failed to get PWM clock\n");
-		return PTR_ERR(pc->pwm_clk);
-	}
+	if (cdata->pwm_num_devs) {
+		pc->pwm_clk = of_clk_get_by_name(dev->of_node, "pwm");
+		if (IS_ERR(pc->pwm_clk)) {
+			dev_err(dev, "failed to get PWM clock\n");
+			return PTR_ERR(pc->pwm_clk);
+		}
 
-	ret = clk_prepare(pc->pwm_clk);
-	if (ret) {
-		dev_err(dev, "failed to prepare clock\n");
-		goto put_pwm_clk;
+		ret = clk_prepare(pc->pwm_clk);
+		if (ret) {
+			dev_err(dev, "failed to prepare clock\n");
+			goto put_pwm_clk;
+		}
 	}
 
-skip_pwm:
-	if (!cdata->cpt_num_devs)
-		goto skip_cpt;
-
-	pc->cpt_clk = of_clk_get_by_name(dev->of_node, "capture");
-	if (IS_ERR(pc->cpt_clk)) {
-		dev_err(dev, "failed to get PWM capture clock\n");
-		ret = PTR_ERR(pc->cpt_clk);
-		goto unprepare_pwm_clk;
-	}
+	if (cdata->cpt_num_devs) {
+		pc->cpt_clk = of_clk_get_by_name(dev->of_node, "capture");
+		if (IS_ERR(pc->cpt_clk)) {
+			dev_err(dev, "failed to get PWM capture clock\n");
+			ret = PTR_ERR(pc->cpt_clk);
+			goto unprepare_pwm_clk;
+		}
 
-	ret = clk_prepare(pc->cpt_clk);
-	if (ret) {
-		dev_err(dev, "failed to prepare clock\n");
-		goto put_cpt_clk;
+		ret = clk_prepare(pc->cpt_clk);
+		if (ret) {
+			dev_err(dev, "failed to prepare clock\n");
+			goto put_cpt_clk;
+		}
 	}
 
-skip_cpt:
 	pc->chip.dev = dev;
 	pc->chip.ops = &sti_pwm_ops;
 	pc->chip.base = -1;
 	pc->chip.npwm = pc->cdata->pwm_num_devs;
 
 	ret = pwmchip_add(&pc->chip);
-	if (ret < 0) {
+	if (ret < 0)
 		goto unprepare_cpt_clk;
-	}
 
 	for (i = 0; i < cdata->cpt_num_devs; i++) {
 		struct sti_cpt_ddata *ddata;