summaryrefslogtreecommitdiff
path: root/drivers/mmc/host/omap_hsmmc.c
diff options
context:
space:
mode:
authorPaul Walmsley <paul@pwsan.com>2011-02-25 18:22:08 -0700
committerPaul Walmsley <paul@pwsan.com>2011-03-01 16:39:30 -0700
commita05dcdb98011a53d150d699ef8243754e2c9a61c (patch)
treef028211b138d966b293f930c510c7e30a01c0ca1 /drivers/mmc/host/omap_hsmmc.c
parentdd9c1549edef02290edced639f67b54a25abbe0e (diff)
MMC: omap_hsmmc: enable interface clock before calling mmc_host_enable()
The code path entered via mmc_host_enable() can include register accesses to the HSMMC IP block. For this to work, both the device interface clock and functional clock need to be enabled before mmc_host_enable() is called. However, omap_hsmmc_probe() calls mmc_host_enable() before enabling the device interface clock. Fix by calling mmc_host_enable() after the device interface clock is enabled. Signed-off-by: Paul Walmsley <paul@pwsan.com> Cc: Madhusudhan Chikkature Rajashekar <madhu.cr@ti.com> Cc: Adrian Hunter <adrian.hunter@nokia.com> Cc: Kishore Kadiyala <kishore.kadiyala@ti.com> Cc: Tero Kristo <Tero.Kristo@nokia.com> Acked-by: Madhusudhan Chikkature Rajashekar <madhu.cr@ti.com>
Diffstat (limited to 'drivers/mmc/host/omap_hsmmc.c')
-rw-r--r--drivers/mmc/host/omap_hsmmc.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 078fdf11af03..0cf0d89e4183 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -2101,14 +2101,14 @@ static int __init omap_hsmmc_probe(struct platform_device *pdev)
/* we start off in DISABLED state */
host->dpm_state = DISABLED;
- if (mmc_host_enable(host->mmc) != 0) {
+ if (clk_enable(host->iclk) != 0) {
clk_put(host->iclk);
clk_put(host->fclk);
goto err1;
}
- if (clk_enable(host->iclk) != 0) {
- mmc_host_disable(host->mmc);
+ if (mmc_host_enable(host->mmc) != 0) {
+ clk_disable(host->iclk);
clk_put(host->iclk);
clk_put(host->fclk);
goto err1;