diff mbox series

[3/5] pinctrl: mvebu: Use devm_clk_get_enabled() helpers

Message ID 20240829064900.19909-1-wangjianzheng@vivo.com (mailing list archive)
State New
Headers show
Series [1/5] pinctrl: sunxi: Use devm_clk_get_enabled() helpers | expand

Commit Message

Wang Jianzheng Aug. 29, 2024, 6:48 a.m. UTC
The devm_clk_get_enabled() helpers:
    - call devm_clk_get()
    - call clk_prepare_enable() and register what is needed in order to
     call clk_disable_unprepare() when needed, as a managed resource.

This simplifies the code and avoids the calls to clk_disable_unprepare().

Signed-off-by: Wang Jianzheng <wangjianzheng@vivo.com>
---
 drivers/pinctrl/mvebu/pinctrl-dove.c | 45 +++++++++-------------------
 1 file changed, 14 insertions(+), 31 deletions(-)

Comments

Andrew Lunn Aug. 29, 2024, 12:58 p.m. UTC | #1
On Thu, Aug 29, 2024 at 02:48:59PM +0800, Wang Jianzheng wrote:
> The devm_clk_get_enabled() helpers:
>     - call devm_clk_get()
>     - call clk_prepare_enable() and register what is needed in order to
>      call clk_disable_unprepare() when needed, as a managed resource.
> 
> This simplifies the code and avoids the calls to clk_disable_unprepare().
> 
> Signed-off-by: Wang Jianzheng <wangjianzheng@vivo.com>
> ---
>  drivers/pinctrl/mvebu/pinctrl-dove.c | 45 +++++++++-------------------
>  1 file changed, 14 insertions(+), 31 deletions(-)
> 
> diff --git a/drivers/pinctrl/mvebu/pinctrl-dove.c b/drivers/pinctrl/mvebu/pinctrl-dove.c
> index dce601d99372..1c2a292ebbd9 100644
> --- a/drivers/pinctrl/mvebu/pinctrl-dove.c
> +++ b/drivers/pinctrl/mvebu/pinctrl-dove.c
> @@ -767,7 +767,7 @@ static int dove_pinctrl_probe(struct platform_device *pdev)
>  	struct resource fb_res;
>  	struct mvebu_mpp_ctrl_data *mpp_data;
>  	void __iomem *base;
> -	int i, ret;
> +	int i;
>  
>  	pdev->dev.platform_data = (void *)device_get_match_data(&pdev->dev);
>  
> @@ -775,25 +775,20 @@ static int dove_pinctrl_probe(struct platform_device *pdev)
>  	 * General MPP Configuration Register is part of pdma registers.
>  	 * grab clk to make sure it is ticking.
>  	 */
> -	clk = devm_clk_get(&pdev->dev, NULL);
> +	clk = devm_clk_get_enabled(&pdev->dev, NULL);
>  	if (IS_ERR(clk)) {
>  		dev_err(&pdev->dev, "Unable to get pdma clock");
>  		return PTR_ERR(clk);
>  	}
> -	clk_prepare_enable(clk);
>  
>  	base = devm_platform_get_and_ioremap_resource(pdev, 0, &mpp_res);
> -	if (IS_ERR(base)) {
> -		ret = PTR_ERR(base);
> -		goto err_probe;
> -	}
> +	if (IS_ERR(base))
> +		return PTR_ERR(base);

It appears that in patch 3 you add all these goto err_probe, and now
you delete them?

Please reverse the order of these two patches!

    Andrew

---
pw-bot: cr
diff mbox series

Patch

diff --git a/drivers/pinctrl/mvebu/pinctrl-dove.c b/drivers/pinctrl/mvebu/pinctrl-dove.c
index dce601d99372..1c2a292ebbd9 100644
--- a/drivers/pinctrl/mvebu/pinctrl-dove.c
+++ b/drivers/pinctrl/mvebu/pinctrl-dove.c
@@ -767,7 +767,7 @@  static int dove_pinctrl_probe(struct platform_device *pdev)
 	struct resource fb_res;
 	struct mvebu_mpp_ctrl_data *mpp_data;
 	void __iomem *base;
-	int i, ret;
+	int i;
 
 	pdev->dev.platform_data = (void *)device_get_match_data(&pdev->dev);
 
@@ -775,25 +775,20 @@  static int dove_pinctrl_probe(struct platform_device *pdev)
 	 * General MPP Configuration Register is part of pdma registers.
 	 * grab clk to make sure it is ticking.
 	 */
-	clk = devm_clk_get(&pdev->dev, NULL);
+	clk = devm_clk_get_enabled(&pdev->dev, NULL);
 	if (IS_ERR(clk)) {
 		dev_err(&pdev->dev, "Unable to get pdma clock");
 		return PTR_ERR(clk);
 	}
-	clk_prepare_enable(clk);
 
 	base = devm_platform_get_and_ioremap_resource(pdev, 0, &mpp_res);
-	if (IS_ERR(base)) {
-		ret = PTR_ERR(base);
-		goto err_probe;
-	}
+	if (IS_ERR(base))
+		return PTR_ERR(base);
 
 	mpp_data = devm_kcalloc(&pdev->dev, dove_pinctrl_info.ncontrols,
 				sizeof(*mpp_data), GFP_KERNEL);
-	if (!mpp_data) {
-		ret = -ENOMEM;
-		goto err_probe;
-	}
+	if (!mpp_data)
+		return -ENOMEM;
 
 	dove_pinctrl_info.control_data = mpp_data;
 	for (i = 0; i < ARRAY_SIZE(dove_mpp_controls); i++)
@@ -812,10 +807,8 @@  static int dove_pinctrl_probe(struct platform_device *pdev)
 	}
 
 	mpp4_base = devm_ioremap_resource(&pdev->dev, res);
-	if (IS_ERR(mpp4_base)) {
-		ret = PTR_ERR(mpp4_base);
-		goto err_probe;
-	}
+	if (IS_ERR(mpp4_base))
+		return PTR_ERR(mpp4_base);
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 2);
 	if (!res) {
@@ -826,10 +819,8 @@  static int dove_pinctrl_probe(struct platform_device *pdev)
 	}
 
 	pmu_base = devm_ioremap_resource(&pdev->dev, res);
-	if (IS_ERR(pmu_base)) {
-		ret = PTR_ERR(pmu_base);
-		goto err_probe;
-	}
+	if (IS_ERR(pmu_base))
+		return PTR_ERR(pmu_base);
 
 	gconfmap = syscon_regmap_lookup_by_compatible("marvell,dove-global-config");
 	if (IS_ERR(gconfmap)) {
@@ -839,17 +830,12 @@  static int dove_pinctrl_probe(struct platform_device *pdev)
 		adjust_resource(&fb_res,
 			(mpp_res->start & INT_REGS_MASK) + GC_REGS_OFFS, 0x14);
 		gc_base = devm_ioremap_resource(&pdev->dev, &fb_res);
-		if (IS_ERR(gc_base)) {
-			ret = PTR_ERR(gc_base);
-			goto err_probe;
-		}
-
+		if (IS_ERR(gc_base))
+			return PTR_ERR(gc_base);
 		gconfmap = devm_regmap_init_mmio(&pdev->dev,
 						 gc_base, &gc_regmap_config);
-		if (IS_ERR(gconfmap)) {
-			ret = PTR_ERR(gconfmap);
-			goto err_probe;
-		}
+		if (IS_ERR(gconfmap))
+			return PTR_ERR(gconfmap);
 	}
 
 	/* Warn on any missing DT resource */
@@ -857,9 +843,6 @@  static int dove_pinctrl_probe(struct platform_device *pdev)
 		dev_warn(&pdev->dev, FW_BUG "Missing pinctrl regs in DTB. Please update your firmware.\n");
 
 	return mvebu_pinctrl_probe(pdev);
-err_probe:
-	clk_disable_unprepare(clk);
-	return ret;
 }
 
 static struct platform_driver dove_pinctrl_driver = {