On Mon, Dec 05, 2011 at 06:35:58PM +0100, Ulf Hansson wrote:
> To decrease current consumption in suspend state the
> VCORE regulator, the MCLK and PCLK for the ARM PL18x
> are now disabled.
> 
> When resuming the resourses are re-enabled and
> register values for MMCICLOCK, MMCIPOWER and MMCIMASK0
> are restored.

I still do not agree with this.  The MMC core driver should be shutting
down the interface (turning off the MMC clock, disabling the MMC power).
And indeed it does:

int mmc_suspend_host(struct mmc_host *host)
{
...
        if (!err && !mmc_card_keep_power(host))
                mmc_power_off(host);
}

void mmc_power_off(struct mmc_host *host)
{
...
        host->ios.power_mode = MMC_POWER_OFF;
        host->ios.bus_width = MMC_BUS_WIDTH_1;
        host->ios.timing = MMC_TIMING_LEGACY;
        mmc_set_ios(host);
...
}

On ARM primecells we can _not_ go from power off to power on without
first going through the power up state, so this simple save-and-restore
will not do - we have to go through the proper power up sequence.

Why do you think that the MMC core is not shutting down the power and
clock registers on suspend?
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to