]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
memory: ti-aemif: use devm_clk_get_enabled() and shrink the code
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Fri, 9 Aug 2024 14:15:55 +0000 (16:15 +0200)
committerKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Mon, 12 Aug 2024 10:32:10 +0000 (12:32 +0200)
Remove several lines of code and a jump label by using the managed
variant of clk_get() that also prepares and enables the clock (and
disables and unprepares it on driver detach).

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Link: https://lore.kernel.org/r/20240809-ti-aemif-v1-2-27b1e5001390@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
drivers/memory/ti-aemif.c

index b92cab455cbbc61600d80bb083e641d124a968d1..fbe0786f5ac44a46b1e415adbd97873c509b0793 100644 (file)
@@ -338,26 +338,20 @@ static int aemif_probe(struct platform_device *pdev)
 
        platform_set_drvdata(pdev, aemif);
 
-       aemif->clk = devm_clk_get(dev, NULL);
+       aemif->clk = devm_clk_get_enabled(dev, NULL);
        if (IS_ERR(aemif->clk)) {
                dev_err(dev, "cannot get clock 'aemif'\n");
                return PTR_ERR(aemif->clk);
        }
 
-       ret = clk_prepare_enable(aemif->clk);
-       if (ret)
-               return ret;
-
        aemif->clk_rate = clk_get_rate(aemif->clk) / MSEC_PER_SEC;
 
        if (np && of_device_is_compatible(np, "ti,da850-aemif"))
                aemif->cs_offset = 2;
 
        aemif->base = devm_platform_ioremap_resource(pdev, 0);
-       if (IS_ERR(aemif->base)) {
-               ret = PTR_ERR(aemif->base);
-               goto error;
-       }
+       if (IS_ERR(aemif->base))
+               return PTR_ERR(aemif->base);
 
        if (np) {
                /*
@@ -370,7 +364,7 @@ static int aemif_probe(struct platform_device *pdev)
                        ret = of_aemif_parse_abus_config(pdev, child_np);
                        if (ret < 0) {
                                of_node_put(child_np);
-                               goto error;
+                               return ret;
                        }
                }
        }
@@ -380,7 +374,7 @@ static int aemif_probe(struct platform_device *pdev)
                if (ret < 0) {
                        dev_err(dev, "Error configuring chip select %d\n",
                                aemif->cs_data[i].cs);
-                       goto error;
+                       return ret;
                }
        }
 
@@ -393,27 +387,16 @@ static int aemif_probe(struct platform_device *pdev)
                        ret = of_platform_populate(child_np, NULL, NULL, dev);
                        if (ret < 0) {
                                of_node_put(child_np);
-                               goto error;
+                               return ret;
                        }
                }
        }
 
        return 0;
-error:
-       clk_disable_unprepare(aemif->clk);
-       return ret;
-}
-
-static void aemif_remove(struct platform_device *pdev)
-{
-       struct aemif_device *aemif = platform_get_drvdata(pdev);
-
-       clk_disable_unprepare(aemif->clk);
 }
 
 static struct platform_driver aemif_driver = {
        .probe = aemif_probe,
-       .remove_new = aemif_remove,
        .driver = {
                .name = "ti-aemif",
                .of_match_table = of_match_ptr(aemif_of_match),