summaryrefslogtreecommitdiff
path: root/drivers/memory
diff options
context:
space:
mode:
authorJiawen Liu <1298662399@qq.com>2026-09-04 14:01:35 +0400
committerKrzysztof Kozlowski <krzk@kernel.org>2026-09-11 08:54:19 +0200
commitcce46902ea9fcd585cd200fffa3166f63bc571f1 (patch)
tree48a935759ff1dddb95f47e268bc5adafad31eb00 /drivers/memory
parent8676f8e6dc8da769d5192135992a78853f9ea048 (diff)
downloadlinux-next-cce46902ea9fcd585cd200fffa3166f63bc571f1.tar.gz
linux-next-cce46902ea9fcd585cd200fffa3166f63bc571f1.zip
memory: exynos5422-dmc: handle clock enable failures
Check the return values of clk_prepare_enable() for fout_bpll and mout_bpll. If enabling fout_bpll fails, propagate the error. If enabling mout_bpll fails, disable fout_bpll before returning. This keeps the clock enable count balanced on probe error paths. Fixes: 6e7674c3c6df ("memory: Add DMC driver for Exynos5422") Signed-off-by: Jiawen Liu <1298662399@qq.com> Reviewed-by: Lukasz Luba <lukasz.luba@arm.com> Link: https://patch.msgid.link/tencent_B0189529F550458590E3BA614EAB800FBF08@qq.com Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Diffstat (limited to 'drivers/memory')
-rw-r--r--drivers/memory/samsung/exynos5422-dmc.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/memory/samsung/exynos5422-dmc.c b/drivers/memory/samsung/exynos5422-dmc.c
index 788d49c688b1..98c319552583 100644
--- a/drivers/memory/samsung/exynos5422-dmc.c
+++ b/drivers/memory/samsung/exynos5422-dmc.c
@@ -1297,8 +1297,15 @@ static int exynos5_dmc_init_clks(struct exynos5_dmc *dmc)
if (ret)
return ret;
- clk_prepare_enable(dmc->fout_bpll);
- clk_prepare_enable(dmc->mout_bpll);
+ ret = clk_prepare_enable(dmc->fout_bpll);
+ if (ret)
+ return ret;
+
+ ret = clk_prepare_enable(dmc->mout_bpll);
+ if (ret) {
+ clk_disable_unprepare(dmc->fout_bpll);
+ return ret;
+ }
/*
* Some bootloaders do not set clock routes correctly.