aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mmc
diff options
context:
space:
mode:
authorSujit Reddy Thumma <sthumma@codeaurora.org>2012-02-04 16:14:50 -0500
committerChris Ball <cjb@laptop.org>2012-02-13 20:38:58 -0500
commit2c4967f741e87cdd63de7271b97807041dccbf3b (patch)
treee9792b49e457393d275db4ab3948fa95f1ef57d6 /include/linux/mmc
parentb6bf30d912ddc9a3ac2ce264a04e3ec6d4e74a34 (diff)
mmc: core: Ensure clocks are always enabled before host interaction
Ensure clocks are always enabled before any interaction with the host controller driver. This makes sure that there is no race between host execution and the core layer turning off clocks in different context with clock gating framework. Signed-off-by: Sujit Reddy Thumma <sthumma@codeaurora.org> Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Per Forlin <per.forlin@stericsson.com> Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'include/linux/mmc')
-rw-r--r--include/linux/mmc/host.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
index 0beba1e5e1ed..73e5ee8e9ca2 100644
--- a/include/linux/mmc/host.h
+++ b/include/linux/mmc/host.h
@@ -444,4 +444,23 @@ static inline int mmc_boot_partition_access(struct mmc_host *host)
444 return !(host->caps2 & MMC_CAP2_BOOTPART_NOACC); 444 return !(host->caps2 & MMC_CAP2_BOOTPART_NOACC);
445} 445}
446 446
447#ifdef CONFIG_MMC_CLKGATE
448void mmc_host_clk_hold(struct mmc_host *host);
449void mmc_host_clk_release(struct mmc_host *host);
450unsigned int mmc_host_clk_rate(struct mmc_host *host);
451
452#else
453static inline void mmc_host_clk_hold(struct mmc_host *host)
454{
455}
456
457static inline void mmc_host_clk_release(struct mmc_host *host)
458{
459}
460
461static inline unsigned int mmc_host_clk_rate(struct mmc_host *host)
462{
463 return host->ios.clock;
464}
465#endif
447#endif /* LINUX_MMC_HOST_H */ 466#endif /* LINUX_MMC_HOST_H */