Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a0ad3087 authored by Michael Trimarchi's avatar Michael Trimarchi Committed by Ulf Hansson
Browse files

mmc: sdhci-esdhc-imx: Changes the order of how clocks are being re-enabled



runtime_resume() should re-enable the clocks in reverse order comparing with
runtime_suspend()

Signed-off-by: default avatarMichael Trimarchi <michael@amarulasolutions.com>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 371d39fa
Loading
Loading
Loading
Loading
+9 −7
Original line number Diff line number Diff line
@@ -1411,31 +1411,33 @@ static int sdhci_esdhc_runtime_resume(struct device *dev)
	struct pltfm_imx_data *imx_data = sdhci_pltfm_priv(pltfm_host);
	int err;

	err = clk_prepare_enable(imx_data->clk_ahb);
	if (err)
		return err;

	if (!sdhci_sdio_irq_enabled(host)) {
		err = clk_prepare_enable(imx_data->clk_per);
		if (err)
			return err;
			goto disable_ahb_clk;
		err = clk_prepare_enable(imx_data->clk_ipg);
		if (err)
			goto disable_per_clk;
	}
	err = clk_prepare_enable(imx_data->clk_ahb);
	if (err)
		goto disable_ipg_clk;

	err = sdhci_runtime_resume_host(host);
	if (err)
		goto disable_ahb_clk;
		goto disable_ipg_clk;

	return 0;

disable_ahb_clk:
	clk_disable_unprepare(imx_data->clk_ahb);
disable_ipg_clk:
	if (!sdhci_sdio_irq_enabled(host))
		clk_disable_unprepare(imx_data->clk_ipg);
disable_per_clk:
	if (!sdhci_sdio_irq_enabled(host))
		clk_disable_unprepare(imx_data->clk_per);
disable_ahb_clk:
	clk_disable_unprepare(imx_data->clk_ahb);
	return err;
}
#endif