From: Russell King Date: Wed, 14 Dec 2005 14:57:35 +0000 (+0000) Subject: [MMC] Explain the internals of mmc_power_up() X-Git-Tag: v2.6.15-rc6~64^2 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=45f8245b972e360c19aec9032e2a2033b8ac3719;p=linux-2.6 [MMC] Explain the internals of mmc_power_up() It seems that people get confused about what is happening in mmc_power_up(). Add a comment to make it clear why we have a two stage process. Signed-off-by: Russell King --- diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index b586a83a9b..eb41391e06 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -679,7 +679,15 @@ static void mmc_idle_cards(struct mmc_host *host) } /* - * Apply power to the MMC stack. + * Apply power to the MMC stack. This is a two-stage process. + * First, we enable power to the card without the clock running. + * We then wait a bit for the power to stabilise. Finally, + * enable the bus drivers and clock to the card. + * + * We must _NOT_ enable the clock prior to power stablising. + * + * If a host does all the power sequencing itself, ignore the + * initial MMC_POWER_UP stage. */ static void mmc_power_up(struct mmc_host *host) {