]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
memory: pl172: simplify with devm_clk_get_enabled()
authorKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Fri, 23 Aug 2024 10:16:00 +0000 (12:16 +0200)
committerKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Sun, 25 Aug 2024 09:02:16 +0000 (11:02 +0200)
Use devm_clk_get_enabled() to drop clock prepare/unprepare parts and
make code simpler.  Change to dev_err_probe() in handling clk_get_rate()
error to make it even simpler.

Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Vladimir Zapolskiy <vz@mleia.com>
Link: https://lore.kernel.org/r/20240823-b4-cleanup-h-guard-v1-5-01668915bd55@linaro.org
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
drivers/memory/pl172.c

index 390012401f642f639ae026db453032db8432c09d..db5fbee34077c566c9ba91f35800ad6da7473939 100644 (file)
@@ -216,28 +216,20 @@ static int pl172_probe(struct amba_device *adev, const struct amba_id *id)
        if (!pl172)
                return -ENOMEM;
 
-       pl172->clk = devm_clk_get(dev, "mpmcclk");
+       pl172->clk = devm_clk_get_enabled(dev, "mpmcclk");
        if (IS_ERR(pl172->clk))
                return dev_err_probe(dev, PTR_ERR(pl172->clk),
                                     "no mpmcclk provided clock\n");
 
-       ret = clk_prepare_enable(pl172->clk);
-       if (ret) {
-               dev_err(dev, "unable to mpmcclk enable clock\n");
-               return ret;
-       }
-
        pl172->rate = clk_get_rate(pl172->clk) / MSEC_PER_SEC;
-       if (!pl172->rate) {
-               dev_err(dev, "unable to get mpmcclk clock rate\n");
-               ret = -EINVAL;
-               goto err_clk_enable;
-       }
+       if (!pl172->rate)
+               return dev_err_probe(dev, -EINVAL,
+                                    "unable to get mpmcclk clock rate\n");
 
        ret = amba_request_regions(adev, NULL);
        if (ret) {
                dev_err(dev, "unable to request AMBA regions\n");
-               goto err_clk_enable;
+               return ret;
        }
 
        pl172->base = devm_ioremap(dev, adev->res.start,
@@ -267,16 +259,11 @@ static int pl172_probe(struct amba_device *adev, const struct amba_id *id)
 
 err_no_ioremap:
        amba_release_regions(adev);
-err_clk_enable:
-       clk_disable_unprepare(pl172->clk);
        return ret;
 }
 
 static void pl172_remove(struct amba_device *adev)
 {
-       struct pl172_data *pl172 = amba_get_drvdata(adev);
-
-       clk_disable_unprepare(pl172->clk);
        amba_release_regions(adev);
 }