mmc: sdio: fix runtime PM anomalies by introducing MMC_CAP_POWER_OFF_CARD
authorOhad Ben-Cohen <ohad@wizery.com>
Fri, 19 Nov 2010 07:29:09 +0000 (09:29 +0200)
committerChris Ball <cjb@laptop.org>
Fri, 19 Nov 2010 22:07:01 +0000 (17:07 -0500)
commited919b0125b26dcc052e44836f66e7e1f5c49c7e
tree10abd2b197488ee2c75e693e9422668481e5e4ce
parent4d0812c37f2f6cf6fc7ca086b5a5e572cbbe7f6d
mmc: sdio: fix runtime PM anomalies by introducing MMC_CAP_POWER_OFF_CARD

Some board/card/host configurations are not capable of powering off the
card after boot.

To support such configurations, and to allow smoother transition to
runtime PM behavior, MMC_CAP_POWER_OFF_CARD is added, so hosts need to
explicitly indicate whether it's OK to power off their cards after boot.

SDIO core will enable runtime PM for a card only if that cap is set.
As a result, the card will be powered down after boot, and will only
be powered up again when a driver is loaded (and then it's up to the
driver to decide whether power will be kept or not).

This will prevent sdio_bus_probe() failures with setups that do not
support powering off the card.

Reported-and-tested-by: Daniel Drake <dsd@laptop.org>
Reported-and-tested-by: Arnd Hannemann <arnd@arndnet.de>
Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
drivers/mmc/core/sdio.c
drivers/mmc/core/sdio_bus.c
include/linux/mmc/host.h