[PATCH 2/3] memory: ti-aemif: use devm_clk_get_enabled() and shrink the code

From: Bartosz Golaszewski
Date: Fri Aug 09 2024 - 10:16:20 EST


From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>

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@xxxxxxxxxx>
---
drivers/memory/ti-aemif.c | 29 ++++++-----------------------
1 file changed, 6 insertions(+), 23 deletions(-)

diff --git a/drivers/memory/ti-aemif.c b/drivers/memory/ti-aemif.c
index b92cab455cbb..fbe0786f5ac4 100644
--- a/drivers/memory/ti-aemif.c
+++ b/drivers/memory/ti-aemif.c
@@ -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),

--
2.43.0