dmaengine: mv_xor_v2: Use some clk_ helper functions to simplify code
authorChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Sun, 26 Mar 2023 07:06:38 +0000 (09:06 +0200)
committerVinod Koul <vkoul@kernel.org>
Fri, 31 Mar 2023 11:53:02 +0000 (17:23 +0530)
Use devm_clk_get_[optional_]enabled() instead of hand writing it.
It saves some LoC.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Link: https://lore.kernel.org/r/cc14e490f4e6002a17c9c7d283fe6a93179766c2.1679814350.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/mv_xor_v2.c

index 0991b82..cea8aa9 100644 (file)
@@ -739,32 +739,18 @@ static int mv_xor_v2_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       xor_dev->reg_clk = devm_clk_get(&pdev->dev, "reg");
-       if (PTR_ERR(xor_dev->reg_clk) != -ENOENT) {
-               if (!IS_ERR(xor_dev->reg_clk)) {
-                       ret = clk_prepare_enable(xor_dev->reg_clk);
-                       if (ret)
-                               return ret;
-               } else {
-                       return PTR_ERR(xor_dev->reg_clk);
-               }
-       }
+       xor_dev->reg_clk = devm_clk_get_optional_enabled(&pdev->dev, "reg");
+       if (IS_ERR(xor_dev->reg_clk))
+               return PTR_ERR(xor_dev->reg_clk);
 
-       xor_dev->clk = devm_clk_get(&pdev->dev, NULL);
-       if (PTR_ERR(xor_dev->clk) == -EPROBE_DEFER) {
-               ret = -EPROBE_DEFER;
-               goto disable_reg_clk;
-       }
-       if (!IS_ERR(xor_dev->clk)) {
-               ret = clk_prepare_enable(xor_dev->clk);
-               if (ret)
-                       goto disable_reg_clk;
-       }
+       xor_dev->clk = devm_clk_get_enabled(&pdev->dev, NULL);
+       if (IS_ERR(xor_dev->clk))
+               return PTR_ERR(xor_dev->clk);
 
        ret = platform_msi_domain_alloc_irqs(&pdev->dev, 1,
                                             mv_xor_v2_set_msi_msg);
        if (ret)
-               goto disable_clk;
+               return ret;
 
        xor_dev->irq = msi_get_virq(&pdev->dev, 0);
 
@@ -866,10 +852,6 @@ free_hw_desq:
                          xor_dev->hw_desq_virt, xor_dev->hw_desq);
 free_msi_irqs:
        platform_msi_domain_free_irqs(&pdev->dev);
-disable_clk:
-       clk_disable_unprepare(xor_dev->clk);
-disable_reg_clk:
-       clk_disable_unprepare(xor_dev->reg_clk);
        return ret;
 }
 
@@ -889,9 +871,6 @@ static int mv_xor_v2_remove(struct platform_device *pdev)
 
        tasklet_kill(&xor_dev->irq_tasklet);
 
-       clk_disable_unprepare(xor_dev->clk);
-       clk_disable_unprepare(xor_dev->reg_clk);
-
        return 0;
 }