]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
pinctrl: sunxi: Use devm_clk_get_enabled() helpers
authorWang Jianzheng <wangjianzheng@vivo.com>
Thu, 29 Aug 2024 06:47:37 +0000 (14:47 +0800)
committerLinus Walleij <linus.walleij@linaro.org>
Mon, 2 Sep 2024 08:06:13 +0000 (10:06 +0200)
sunxi sunxi_pinctrl_init_with_variant get, enable clk and
deinit_device disable and unprepare it.

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

Signed-off-by: Wang Jianzheng <wangjianzheng@vivo.com>
Link: https://lore.kernel.org/20240829064737.16169-1-wangjianzheng@vivo.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/sunxi/pinctrl-sunxi.c

index 73bcf806af0ec2d373cbe2b227dc286128bdf777..bde67ee31417f01fc95224ebdd707c4979e550bd 100644 (file)
@@ -1603,30 +1603,26 @@ int sunxi_pinctrl_init_with_variant(struct platform_device *pdev,
        }
 
        ret = of_clk_get_parent_count(node);
-       clk = devm_clk_get(&pdev->dev, ret == 1 ? NULL : "apb");
+       clk = devm_clk_get_enabled(&pdev->dev, ret == 1 ? NULL : "apb");
        if (IS_ERR(clk)) {
                ret = PTR_ERR(clk);
                goto gpiochip_error;
        }
 
-       ret = clk_prepare_enable(clk);
-       if (ret)
-               goto gpiochip_error;
-
        pctl->irq = devm_kcalloc(&pdev->dev,
                                 pctl->desc->irq_banks,
                                 sizeof(*pctl->irq),
                                 GFP_KERNEL);
        if (!pctl->irq) {
                ret = -ENOMEM;
-               goto clk_error;
+               goto gpiochip_error;
        }
 
        for (i = 0; i < pctl->desc->irq_banks; i++) {
                pctl->irq[i] = platform_get_irq(pdev, i);
                if (pctl->irq[i] < 0) {
                        ret = pctl->irq[i];
-                       goto clk_error;
+                       goto gpiochip_error;
                }
        }
 
@@ -1637,7 +1633,7 @@ int sunxi_pinctrl_init_with_variant(struct platform_device *pdev,
        if (!pctl->domain) {
                dev_err(&pdev->dev, "Couldn't register IRQ domain\n");
                ret = -ENOMEM;
-               goto clk_error;
+               goto gpiochip_error;
        }
 
        for (i = 0; i < (pctl->desc->irq_banks * IRQ_PER_BANK); i++) {
@@ -1669,8 +1665,6 @@ int sunxi_pinctrl_init_with_variant(struct platform_device *pdev,
 
        return 0;
 
-clk_error:
-       clk_disable_unprepare(clk);
 gpiochip_error:
        gpiochip_remove(pctl->chip);
        return ret;