The error code returned on clock failures is a stale value of ret, which is likely to be zero.
Signed-off-by: Ahmad Fatoum <a.fat...@pengutronix.de> --- drivers/mci/am654-sdhci.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/drivers/mci/am654-sdhci.c b/drivers/mci/am654-sdhci.c index b4735952515f..3e637c56850f 100644 --- a/drivers/mci/am654-sdhci.c +++ b/drivers/mci/am654-sdhci.c @@ -575,21 +575,13 @@ static int am654_sdhci_probe(struct device *dev) return PTR_ERR(plat->base); } - plat->clk = clk_get(dev, "clk_xin"); - if (IS_ERR(plat->clk)) { - dev_err(dev, "failed to get clock\n"); - return ret; - } + plat->clk = clk_get_enabled(dev, "clk_xin"); + if (IS_ERR(plat->clk)) + return dev_errp_probe(dev, plat->clk, "failed to get clock\n"); - clk_enable(plat->clk); - - plat->clk_ahb = clk_get(dev, "clk_ahb"); - if (IS_ERR(plat->clk_ahb)) { - dev_err(dev, "failed to get ahb clock\n"); - return ret; - } - - clk_enable(plat->clk_ahb); + plat->clk_ahb = clk_get_enabled(dev, "clk_ahb"); + if (IS_ERR(plat->clk_ahb)) + return dev_errp_probe(dev, plat->clk, "failed to get ahb clock\n"); mci = &plat->mci; mci->f_max = clk_get_rate(plat->clk); -- 2.39.5