linux/drivers/mmc/host
James Hogan e6f34e2fd3 mmc: dw_mmc: setpower on MMC_POWER_{UP,OFF}
Call the setpower platform callback in response to set_ios with
ios->power_mode == MMC_POWER_UP or MMC_POWER_OFF, instead of from the
card detect work function.

This appears to fix a problem I have where a card stuck in a funny state
doesn't get properly cleared by the power being turned off, presumably
due to lack of power sequencing. This resulted in the following log
messages after boot:

mmc0: error -110 whilst initialising SD card
mmc_host mmc0: Bus speed (slot 0) = 99840000Hz (slot req 300000Hz, actual 298922HZ div = 167)
mmc0: error -110 whilst initialising SD card
mmc_host mmc0: Bus speed (slot 0) = 99840000Hz (slot req 200000Hz, actual 199680HZ div = 250)
mmc0: error -110 whilst initialising SD card
mmc_host mmc0: Bus speed (slot 0) = 99840000Hz (slot req 195765Hz, actual 195764HZ div = 255)
mmc0: error -110 whilst initialising SD card
mmc_host mmc0: Bus speed (slot 0) = 99840000Hz (slot req 400000Hz, actual 399360HZ div = 125)
mmc0: error -110 whilst initialising SD card
mmc_host mmc0: Bus speed (slot 0) = 99840000Hz (slot req 300000Hz, actual 298922HZ div = 167)

Signed-off-by: James Hogan <james.hogan@imgtec.com>
Acked-by: Seungwon Jeon <tgih.jun@samsung.com>
Acked-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Chris Ball <cjb@laptop.org>
2013-03-22 12:41:54 -04:00
..
android-goldfish.c mmc: goldfish: emulated MMC device 2013-02-24 14:37:04 -05:00
atmel-mci-regs.h mmc: atmel-mci: AP700x PDC is not connected to MCI 2012-10-03 10:05:23 -04:00
atmel-mci.c ARM: arm-soc: Header cleanups 2012-12-12 11:45:16 -08:00
au1xmmc.c mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
bfin_sdh.c mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
cb710-mmc.c mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
cb710-mmc.h
davinci_mmc.c mmc: davinci_mmc: use module_platform_driver_probe() 2013-03-22 12:29:01 -04:00
dw_mmc-exynos.c mmc: dw_mmc: Make dw_mci_exynos_probe static 2013-03-12 07:48:36 -04:00
dw_mmc-pci.c Drivers: mmc: remove __dev* attributes. 2013-01-03 15:57:14 -08:00
dw_mmc-pltfm.c mmc: Convert to devm_ioremap_resource() 2013-01-25 12:21:47 -08:00
dw_mmc-pltfm.h mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
dw_mmc.c mmc: dw_mmc: setpower on MMC_POWER_{UP,OFF} 2013-03-22 12:41:54 -04:00
dw_mmc.h mmc: dw_mmc: add support for implementation specific callbacks 2012-10-03 10:05:19 -04:00
jz4740_mmc.c mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
Kconfig MMC highlights for 3.9: 2013-02-26 09:31:09 -08:00
Makefile mmc: goldfish: emulated MMC device 2013-02-24 14:37:04 -05:00
mmc_spi.c mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
mmci.c ARM: 7630/1: mmc: mmci: Fixup and cleanup code for DMA handling 2013-01-28 14:14:48 +00:00
mmci.h ARM: 7631/1: mmc: mmci: Add new VE MMCI variant 2013-01-28 14:11:53 +00:00
msm_sdcc.c ARM: msm: move platform_data definitions 2012-09-14 11:17:35 +02:00
msm_sdcc.h mmc: msm_sdcc: Use MCI_INT_MASK0 for PIO interrupts 2011-10-26 15:43:37 -04:00
mvsdio.c mmc: mvsdio: use module_platform_driver_probe() 2013-03-22 12:29:12 -04:00
mvsdio.h
mxcmmc.c ARM: arm-soc: Cleanups on various subarchitectures 2012-12-12 11:51:39 -08:00
mxs-mmc.c MMC highlights for 3.9: 2013-02-26 09:31:09 -08:00
of_mmc_spi.c mmc: mmc_spi: Fix return value evaluation of irq_of_parse_and_map() 2013-02-24 14:37:10 -05:00
omap_hsmmc.c mmc: omap_hsmmc: support deferred probing for GPIOs 2013-03-22 11:51:49 -04:00
omap.c ARM: arm-soc: Header cleanups 2012-12-12 11:45:16 -08:00
pxamci.c mmc: remove use of __devinit 2012-11-28 12:28:18 -08:00
pxamci.h
rtsx_pci_sdmmc.c mmc: rtsx_pci_sdmmc: Don't execute power up sequence repeatedly 2013-03-22 12:35:42 -04:00
s3cmci.c mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
s3cmci.h
sdhci-acpi.c Drivers: mmc: remove __dev* attributes. 2013-01-03 15:57:14 -08:00
sdhci-bcm2835.c mmc: bcm2835: set SDHCI_QUIRK_DATA_TIMEOUT_USES_SDCLK 2013-02-24 14:37:16 -05:00
sdhci-cns3xxx.c mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
sdhci-dove.c Driver core updates for 3.8-rc1 2012-12-11 13:13:55 -08:00
sdhci-esdhc-imx.c mmc: sdhci-pltfm: Add a common clk API implementation of get_timeout_clock 2013-02-24 14:37:09 -05:00
sdhci-esdhc.h mmc: sdhci-esdhc: break out early if clock is 0 2012-09-04 13:58:06 -04:00
sdhci-of-esdhc.c Driver core updates for 3.8-rc1 2012-12-11 13:13:55 -08:00
sdhci-of-hlwd.c mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
sdhci-pci-data.c mmc: sdhci-pci: add platform data 2012-01-11 23:58:47 -05:00
sdhci-pci.c mmc: sdio: bind acpi with sdio function device 2013-03-22 12:26:54 -04:00
sdhci-pltfm.c mmc: sdhci-pltfm: Fix timeout on t4240's sdhci controller 2013-03-22 12:36:52 -04:00
sdhci-pltfm.h mmc: sdhci-pltfm: Add a common clk API implementation of get_timeout_clock 2013-02-24 14:37:09 -05:00
sdhci-pxav2.c mmc: sdhci-pltfm: Add a common clk API implementation of get_timeout_clock 2013-02-24 14:37:09 -05:00
sdhci-pxav3.c mmc: sdhci-pxav3: add pm runtime support 2013-02-24 14:37:13 -05:00
sdhci-s3c.c mmc: sdhci-s3c: let device core setup the default pin configuration 2013-03-22 12:33:21 -04:00
sdhci-spear.c Driver core updates for 3.8-rc1 2012-12-11 13:13:55 -08:00
sdhci-tegra.c mmc: tegra: use mmc_of_parse to get the support of standard MMC DT bindings 2013-03-19 13:10:09 -04:00
sdhci.c mmc: sdhci: Don't ignore regulator_enable() return value 2013-03-22 12:40:05 -04:00
sdhci.h mmc: sdhci: enhance preset value function 2013-02-24 14:37:11 -05:00
sdricoh_cs.c mmc: Add module.h to drivers/mmc users assuming implicit presence. 2011-10-26 16:32:19 -04:00
sh_mmcif.c mmc: sh_mmcif: use mmc_of_parse() to parse standard MMC DT bindings 2013-02-24 14:37:21 -05:00
sh_mobile_sdhi.c mmc: sh_mobile_sdhi: use managed resource allocations 2013-02-24 14:37:23 -05:00
tifm_sd.c Autogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999 BFCB D920 0E6C D1AD B8F1 2012-01-14 12:32:16 -08:00
tmio_mmc_dma.c Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-03-29 15:34:57 -07:00
tmio_mmc_pio.c mmc: tmio: add support for the VccQ regulator 2013-02-24 14:37:24 -05:00
tmio_mmc.c mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
tmio_mmc.h mmc: tmio_mmc: remove unused sdio_irq_enabled flag 2012-03-27 12:20:17 -04:00
ushc.c USB: convert some miscellanies drivers to use module_usb_driver() 2011-11-18 09:52:10 -08:00
via-sdmmc.c mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
vub300.c mmc: vub300: add missing usb_put_dev 2012-12-06 13:55:03 -05:00
wbsd.c mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
wbsd.h
wmt-sdmmc.c mmc: wmt-sdmmc: Use resource_size() 2013-03-22 12:38:46 -04:00