mmc: sdio: don't power up cards on system suspend
authorOhad Ben-Cohen <ohad@wizery.com>
Sun, 28 Nov 2010 05:21:30 +0000 (07:21 +0200)
committerChris Ball <cjb@laptop.org>
Sun, 9 Jan 2011 03:48:13 +0000 (22:48 -0500)
commite594573d790bd7e269f05955d316b88f7be0c14a
treecccb8d144f418c059db4f64cea5ec8442287b588
parent30201e7f3ac639fe98fcd25d40346b65dde9ecba
mmc: sdio: don't power up cards on system suspend

Initial SDIO runtime PM implementation took a conservative approach
of powering up cards (and fully reinitializing them) on system suspend,
just before the suspend handlers of the relevant drivers were executed.

To avoid redundant power and reinitialization cycles, this patch removes
this behavior: if a card is already powered off when system suspend kicks
in, it is left at that state.

If a card is active when a system sleep starts, everything is
straightforward and works exactly like before. But if the card was
already suspended before the sleep began, then when the MMC core powers
it back up on resume, its run-time PM status has to be updated to reflect
the actual post-system sleep status.

The technique to do that is borrowed from the I2C runtime PM
implementation (for more info see Documentation/power/runtime_pm.txt).

Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Reviewed-by: Chris Ball <cjb@laptop.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/core/core.c
drivers/mmc/core/sdio_bus.c