linux/drivers/mmc/host
Daniel Drake 87b87a3fc0 mmc: sdhci: refine non-removable card checking for card detection
Commit c79396c191 ("mmc: sdhci: prevent card detection activity
for non-removable cards") disables card detection where the cards
are marked as non-removable.

This makes sense, but the implementation detail of calling
mmc_card_is_removable() causes some problems, because
mmc_card_is_removable() is overloaded with CONFIG_MMC_UNSAFE_RESUME
semantics.

In the OLPC XO case, we need CONFIG_MMC_UNSAFE_RESUME because our root
filesystem is stored on SD, but we also have external SD card slots
where we want automatic card detection.

Refine the check to only apply to hosts marked as MMC_CAP_NONREMOVABLE,
which is defined to mean that the card is *really* nonremovable. This
could be revisited in future if we find a way to improve
CONFIG_MMC_UNSAFE_RESUME semantics.

Signed-off-by: Daniel Drake <dsd@laptop.org>
Acked-by: Chuanxiao Dong <chuanxiao.dong@intel.com>
[stable@: please apply to 3.3-stable]
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
2012-04-20 20:44:25 -04:00
..
at91_mci.c ARM: at91: code removal of CAP9 SoC 2012-02-03 13:33:05 +01:00
at91_mci.h mmc: at91_mci: move register header from include/ to drivers/ 2011-07-21 10:35:08 -04:00
atmel-mci-regs.h mmc: atmel-mci: add support for odd clock dividers 2012-04-05 20:32:22 -04:00
atmel-mci.c mmc: atmel-mci: add support for odd clock dividers 2012-04-05 20:32:22 -04:00
au1xmmc.c MIPS: Alchemy: Au1300 SoC support 2011-12-07 22:02:05 +00:00
bfin_sdh.c mmc: convert drivers/mmc/host/* to use module_platform_driver() 2012-01-11 23:58:42 -05:00
cb710-mmc.c mmc: convert drivers/mmc/host/* to use module_platform_driver() 2012-01-11 23:58:42 -05:00
cb710-mmc.h mmc: Driver for CB710/720 memory card reader (MMC part) 2009-06-13 22:42:58 +02:00
davinci_mmc.c mmc: davinci: Poll status for small size transfers 2012-03-27 12:20:11 -04:00
dw_mmc-pci.c mmc: Support of PCI mode in the dw_mmc driver 2012-03-25 19:33:44 -04:00
dw_mmc-pltfm.c mmc: Support of PCI mode in the dw_mmc driver 2012-03-25 19:33:44 -04:00
dw_mmc.c mmc: dw_mmc: Fix switch from DMA to PIO 2012-04-20 20:30:37 -04:00
dw_mmc.h mmc: Support of PCI mode in the dw_mmc driver 2012-03-25 19:33:44 -04:00
imxmmc.c mmc: replace printk with appropriate display macro 2011-10-26 16:32:22 -04:00
imxmmc.h
jz4740_mmc.c mmc: convert drivers/mmc/host/* to use module_platform_driver() 2012-01-11 23:58:42 -05:00
Kconfig MMC highlights for 3.4: 2012-03-28 20:59:45 -07:00
Makefile mmc: Support of PCI mode in the dw_mmc driver 2012-03-25 19:33:44 -04:00
mmc_spi.c mmc: Remove redundant spi driver bus initialization 2012-01-11 23:58:42 -05:00
mmci.c Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-03-29 15:34:57 -07:00
mmci.h ARM: 7280/1: mmc: mmci: Cache MMCICLOCK and MMCIPOWER register 2012-02-02 17:02:15 +00:00
msm_sdcc.c mmc: remove the second argument of k[un]map_atomic() 2012-01-11 23:58:42 -05:00
msm_sdcc.h mmc: msm_sdcc: Use MCI_INT_MASK0 for PIO interrupts 2011-10-26 15:43:37 -04:00
mvsdio.c ARM: Orion: Get address map from plat-orion instead of via platform_data 2011-12-13 18:46:55 -05:00
mvsdio.h mmc: SDIO driver for Marvell SoCs 2009-03-24 21:30:03 +01:00
mxcmmc.c dmaengine/dma_slave: introduce inline wrappers 2012-03-21 19:20:22 +05:30
mxs-mmc.c MTD merge for 3.4 2012-03-30 17:31:56 -07:00
of_mmc_spi.c mmc: of_mmc_spi: fix little endian support 2012-02-13 20:38:58 -05:00
omap_hsmmc.c mmc: omap_hsmmc: Get rid of of_have_populated_dt() usage 2012-04-20 20:29:08 -04:00
omap.c misc latin1 to utf8 conversions 2012-01-02 13:04:55 +01:00
pxamci.c mmc: convert drivers/mmc/host/* to use module_platform_driver() 2012-01-11 23:58:42 -05:00
pxamci.h
s3cmci.c mmc: Fix typo in s3cmci.c 2012-02-05 17:14:47 +01:00
s3cmci.h s3cmci: DMA fixes 2009-10-01 16:11:15 -07:00
sdhci-cns3xxx.c mmc: convert drivers/mmc/host/* to use module_platform_driver() 2012-01-11 23:58:42 -05:00
sdhci-dove.c mmc: sdhci-dove: Fix compile error by including module.h 2012-04-05 20:32:33 -04:00
sdhci-esdhc-imx.c Merge branch 'next/fixes-non-critical' into next/drivers 2012-03-20 22:42:24 +00:00
sdhci-esdhc.h mmc: sdhci-esdhc: Change delay after setting clock from 100ms to 1ms 2012-01-11 23:58:41 -05:00
sdhci-of-esdhc.c mmc: esdhc: Workaround for data crc error on p1010rdb 2012-03-25 19:33:45 -04:00
sdhci-of-hlwd.c mmc: convert drivers/mmc/host/* to use module_platform_driver() 2012-01-11 23:58:42 -05:00
sdhci-pci-data.c mmc: sdhci-pci: add platform data 2012-01-11 23:58:47 -05:00
sdhci-pci.c Revert "mmc: sdhci-pci: Add MSI support" 2012-04-05 20:32:32 -04:00
sdhci-pltfm.c mmc: esdhc: set the timeout to the max value 2012-02-13 20:38:59 -05:00
sdhci-pltfm.h mmc: sdhci: remove "state" argument from sdhci_suspend_host 2011-12-19 15:50:11 -08:00
sdhci-pxav2.c mmc: convert drivers/mmc/host/* to use module_platform_driver() 2012-01-11 23:58:42 -05:00
sdhci-pxav3.c mmc: convert drivers/mmc/host/* to use module_platform_driver() 2012-01-11 23:58:42 -05:00
sdhci-s3c.c mmc: sdhci-s3c: Enable runtime power management 2012-04-05 20:32:20 -04:00
sdhci-spear.c mmc: sdhci-spear: add pm callbacks to support hibernation 2012-03-27 12:20:03 -04:00
sdhci-tegra.c MMC highlights for 3.4: 2012-03-28 20:59:45 -07:00
sdhci.c mmc: sdhci: refine non-removable card checking for card detection 2012-04-20 20:44:25 -04:00
sdhci.h mmc: sdhci: Add platform suspend/resume hooks. 2012-03-25 19:33:44 -04: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: Simplify calculation of mmc->f_min 2012-04-05 20:32:24 -04:00
sh_mobile_sdhi.c mmc: sh_mobile_sdhi: support modular mmc-core with non-standard hotplug 2012-03-27 12:20:19 -04: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: cosmetic: prettify the tmio_mmc_set_ios() function 2012-03-27 12:20:18 -04:00
tmio_mmc.c mmc: convert drivers/mmc/host/* to use module_platform_driver() 2012-01-11 23:58:42 -05: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: replace printk with appropriate display macro 2011-10-26 16:32:22 -04:00
vub300.c module_param: make bool parameters really bool (drivers & misc) 2012-01-13 09:32:20 +10:30
wbsd.c mmc: replace printk with appropriate display macro 2011-10-26 16:32:22 -04:00
wbsd.h