|
@@ -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
|