diff options
| author | Jiawen Liu <1298662399@qq.com> | 2026-09-04 14:01:35 +0400 |
|---|---|---|
| committer | Krzysztof Kozlowski <krzk@kernel.org> | 2026-09-11 08:54:19 +0200 |
| commit | cce46902ea9fcd585cd200fffa3166f63bc571f1 (patch) | |
| tree | 48a935759ff1dddb95f47e268bc5adafad31eb00 | |
| parent | 8676f8e6dc8da769d5192135992a78853f9ea048 (diff) | |
| download | linux-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>
| -rw-r--r-- | drivers/memory/samsung/exynos5422-dmc.c | 11 |
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. |
