Commit 63e555d9 authored by Ciprian Costea's avatar Ciprian Costea Committed by Ulf Hansson

mmc: sdhci-esdhc-imx: obtain the 'per' clock rate after its enablement

The I.MX SDHCI driver assumes that the frequency of the 'per' clock
can be obtained even on disabled clocks, which is not always the case.

According to 'clk_get_rate' documentation, it is only valid
once the clock source has been enabled.
Signed-off-by: default avatarCiprian Costea <ciprianmarian.costea@oss.nxp.com>
Reviewed-by: default avatarHaibo Chen <haibo.chen@nxp.com>
Acked-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Link: https://lore.kernel.org/r/20240708121018.246476-3-ciprianmarian.costea@oss.nxp.comSigned-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent a52b67bd
......@@ -1709,7 +1709,6 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
}
pltfm_host->clk = imx_data->clk_per;
pltfm_host->clock = clk_get_rate(pltfm_host->clk);
err = clk_prepare_enable(imx_data->clk_per);
if (err)
goto free_sdhci;
......@@ -1720,6 +1719,13 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
if (err)
goto disable_ipg_clk;
pltfm_host->clock = clk_get_rate(pltfm_host->clk);
if (!pltfm_host->clock) {
dev_err(mmc_dev(host->mmc), "could not get clk rate\n");
err = -EINVAL;
goto disable_ahb_clk;
}
imx_data->pinctrl = devm_pinctrl_get(&pdev->dev);
if (IS_ERR(imx_data->pinctrl))
dev_warn(mmc_dev(host->mmc), "could not get pinctrl\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment