diff mbox

ASoC: ux500: adjust devm usage

Message ID 1437333136-20908-1-git-send-email-Julia.Lawall@lip6.fr (mailing list archive)
State Accepted
Commit 4313489c25622b05adac55dbb9590fb5674c3f45
Headers show

Commit Message

Julia Lawall July 19, 2015, 7:12 p.m. UTC
The explicit call to devm_regulator_put in the probe and remove functions
does not seem to be necessary.  In particular, the functions
prcmu_qos_remove_requirement and ux500_msp_i2s_cleanup_msp in the remove
function seem to do nothing that can interfere with devm_regulator_put,
making it safe to allow devm_regulator_put to occur after the end of the
remove function.

Convert the calls to clk_get to devm_clk_get, and remove the corresponding
calls to clk_put in the probe and remove functions.

Replace various gotos by direct returns, and drop unneeded labels.

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>

---
 sound/soc/ux500/ux500_msp_dai.c |   29 ++++++++++-------------------
 1 file changed, 10 insertions(+), 19 deletions(-)

Comments

Ulf Hansson July 20, 2015, 11:25 a.m. UTC | #1
On 19 July 2015 at 21:12, Julia Lawall <Julia.Lawall@lip6.fr> wrote:
> The explicit call to devm_regulator_put in the probe and remove functions
> does not seem to be necessary.  In particular, the functions
> prcmu_qos_remove_requirement and ux500_msp_i2s_cleanup_msp in the remove
> function seem to do nothing that can interfere with devm_regulator_put,
> making it safe to allow devm_regulator_put to occur after the end of the
> remove function.
>
> Convert the calls to clk_get to devm_clk_get, and remove the corresponding
> calls to clk_put in the probe and remove functions.
>
> Replace various gotos by direct returns, and drop unneeded labels.
>
> Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>

Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>

Kind regards
Uffe

>
> ---
>  sound/soc/ux500/ux500_msp_dai.c |   29 ++++++++++-------------------
>  1 file changed, 10 insertions(+), 19 deletions(-)
>
> diff --git a/sound/soc/ux500/ux500_msp_dai.c b/sound/soc/ux500/ux500_msp_dai.c
> index 978f2d7..f5df08d 100644
> --- a/sound/soc/ux500/ux500_msp_dai.c
> +++ b/sound/soc/ux500/ux500_msp_dai.c
> @@ -773,20 +773,22 @@ static int ux500_msp_drv_probe(struct platform_device *pdev)
>         }
>         prcmu_qos_add_requirement(PRCMU_QOS_APE_OPP, (char *)pdev->name, 50);
>
> -       drvdata->pclk = clk_get(&pdev->dev, "apb_pclk");
> +       drvdata->pclk = devm_clk_get(&pdev->dev, "apb_pclk");
>         if (IS_ERR(drvdata->pclk)) {
>                 ret = (int)PTR_ERR(drvdata->pclk);
> -               dev_err(&pdev->dev, "%s: ERROR: clk_get of pclk failed (%d)!\n",
> +               dev_err(&pdev->dev,
> +                       "%s: ERROR: devm_clk_get of pclk failed (%d)!\n",
>                         __func__, ret);
> -               goto err_pclk;
> +               return ret;
>         }
>
> -       drvdata->clk = clk_get(&pdev->dev, NULL);
> +       drvdata->clk = devm_clk_get(&pdev->dev, NULL);
>         if (IS_ERR(drvdata->clk)) {
>                 ret = (int)PTR_ERR(drvdata->clk);
> -               dev_err(&pdev->dev, "%s: ERROR: clk_get failed (%d)!\n",
> +               dev_err(&pdev->dev,
> +                       "%s: ERROR: devm_clk_get failed (%d)!\n",
>                         __func__, ret);
> -               goto err_clk;
> +               return ret;
>         }
>
>         ret = ux500_msp_i2s_init_msp(pdev, &drvdata->msp,
> @@ -795,7 +797,7 @@ static int ux500_msp_drv_probe(struct platform_device *pdev)
>                 dev_err(&pdev->dev,
>                         "%s: ERROR: Failed to init MSP-struct (%d)!",
>                         __func__, ret);
> -               goto err_init_msp;
> +               return ret;
>         }
>         dev_set_drvdata(&pdev->dev, drvdata);
>
> @@ -804,7 +806,7 @@ static int ux500_msp_drv_probe(struct platform_device *pdev)
>         if (ret < 0) {
>                 dev_err(&pdev->dev, "Error: %s: Failed to register MSP%d!\n",
>                         __func__, drvdata->msp->id);
> -               goto err_init_msp;
> +               return ret;
>         }
>
>         ret = ux500_pcm_register_platform(pdev);
> @@ -819,13 +821,6 @@ static int ux500_msp_drv_probe(struct platform_device *pdev)
>
>  err_reg_plat:
>         snd_soc_unregister_component(&pdev->dev);
> -err_init_msp:
> -       clk_put(drvdata->clk);
> -err_clk:
> -       clk_put(drvdata->pclk);
> -err_pclk:
> -       devm_regulator_put(drvdata->reg_vape);
> -
>         return ret;
>  }
>
> @@ -837,12 +832,8 @@ static int ux500_msp_drv_remove(struct platform_device *pdev)
>
>         snd_soc_unregister_component(&pdev->dev);
>
> -       devm_regulator_put(drvdata->reg_vape);
>         prcmu_qos_remove_requirement(PRCMU_QOS_APE_OPP, "ux500_msp_i2s");
>
> -       clk_put(drvdata->clk);
> -       clk_put(drvdata->pclk);
> -
>         ux500_msp_i2s_cleanup_msp(pdev, drvdata->msp);
>
>         return 0;
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
diff mbox

Patch

diff --git a/sound/soc/ux500/ux500_msp_dai.c b/sound/soc/ux500/ux500_msp_dai.c
index 978f2d7..f5df08d 100644
--- a/sound/soc/ux500/ux500_msp_dai.c
+++ b/sound/soc/ux500/ux500_msp_dai.c
@@ -773,20 +773,22 @@  static int ux500_msp_drv_probe(struct platform_device *pdev)
 	}
 	prcmu_qos_add_requirement(PRCMU_QOS_APE_OPP, (char *)pdev->name, 50);
 
-	drvdata->pclk = clk_get(&pdev->dev, "apb_pclk");
+	drvdata->pclk = devm_clk_get(&pdev->dev, "apb_pclk");
 	if (IS_ERR(drvdata->pclk)) {
 		ret = (int)PTR_ERR(drvdata->pclk);
-		dev_err(&pdev->dev, "%s: ERROR: clk_get of pclk failed (%d)!\n",
+		dev_err(&pdev->dev,
+			"%s: ERROR: devm_clk_get of pclk failed (%d)!\n",
 			__func__, ret);
-		goto err_pclk;
+		return ret;
 	}
 
-	drvdata->clk = clk_get(&pdev->dev, NULL);
+	drvdata->clk = devm_clk_get(&pdev->dev, NULL);
 	if (IS_ERR(drvdata->clk)) {
 		ret = (int)PTR_ERR(drvdata->clk);
-		dev_err(&pdev->dev, "%s: ERROR: clk_get failed (%d)!\n",
+		dev_err(&pdev->dev,
+			"%s: ERROR: devm_clk_get failed (%d)!\n",
 			__func__, ret);
-		goto err_clk;
+		return ret;
 	}
 
 	ret = ux500_msp_i2s_init_msp(pdev, &drvdata->msp,
@@ -795,7 +797,7 @@  static int ux500_msp_drv_probe(struct platform_device *pdev)
 		dev_err(&pdev->dev,
 			"%s: ERROR: Failed to init MSP-struct (%d)!",
 			__func__, ret);
-		goto err_init_msp;
+		return ret;
 	}
 	dev_set_drvdata(&pdev->dev, drvdata);
 
@@ -804,7 +806,7 @@  static int ux500_msp_drv_probe(struct platform_device *pdev)
 	if (ret < 0) {
 		dev_err(&pdev->dev, "Error: %s: Failed to register MSP%d!\n",
 			__func__, drvdata->msp->id);
-		goto err_init_msp;
+		return ret;
 	}
 
 	ret = ux500_pcm_register_platform(pdev);
@@ -819,13 +821,6 @@  static int ux500_msp_drv_probe(struct platform_device *pdev)
 
 err_reg_plat:
 	snd_soc_unregister_component(&pdev->dev);
-err_init_msp:
-	clk_put(drvdata->clk);
-err_clk:
-	clk_put(drvdata->pclk);
-err_pclk:
-	devm_regulator_put(drvdata->reg_vape);
-
 	return ret;
 }
 
@@ -837,12 +832,8 @@  static int ux500_msp_drv_remove(struct platform_device *pdev)
 
 	snd_soc_unregister_component(&pdev->dev);
 
-	devm_regulator_put(drvdata->reg_vape);
 	prcmu_qos_remove_requirement(PRCMU_QOS_APE_OPP, "ux500_msp_i2s");
 
-	clk_put(drvdata->clk);
-	clk_put(drvdata->pclk);
-
 	ux500_msp_i2s_cleanup_msp(pdev, drvdata->msp);
 
 	return 0;