android_kernel_samsung_msm8976/drivers/mmc/core
Ritesh Harjani 226b74c3d2 mmc: sdio: Add MMC_CAP2_BROKEN_PWR_CYCLE & fix mmc_sdio_init_card
Power supply to card QCA9377 & QCA6574 is used for wlan and
bluetooth as well.

Now if SDIO card is switched to 1.8V signaling voltage, it will not
switch back to 3.3V without a power cycle. CMD0 will not make SD (SDIO)
card enter 3.3V signalling voltage. Since the power supply
for mentioned card is also used to power bluetooth along with
wlan, so card cannot be power cycled for wlan alone from such mmc
host

This patch adds a capability for such host which cannot power cycle
the card. Thus during resume of sdio (mmc_sdio_resume), it checks
if host has MMC_CAP2_BROKEN_PWR_CYCLE capability set. In case if this
capability is set we do mmc_sdio_power_restore.

This patch also fixes the resume path that if there is an oldcard
present and it's an UHS card then CMD11 may give no response. In that
case we need to switch only host signal voltage to 1.8V as card is
already in 1.8V.

Without this patch software assumes that card is switched to 3.3V on
power cycle and tries voltage switch sequence which fails
(because host driver will not control this power supply and thus
card will never enter into 3.3V supply). Thus UHS mode is not entered.

Change-Id: I1fae116fd3c5b3854761ac09da1ffec7f6ddfec9
Signed-off-by: Ritesh Harjani <riteshh@codeaurora.org>
Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
2016-07-29 15:12:08 -07:00
..
bus.c mmc: core: Add hs400 enhanced strobe mode support 2015-12-09 09:18:03 +05:30
bus.h
core.c mmc: sdio: Add MMC_CAP2_BROKEN_PWR_CYCLE & fix mmc_sdio_init_card 2016-07-29 15:12:08 -07:00
core.h mmc: core: revert recent changes in shutdown handling code 2015-10-12 09:43:40 +05:30
debugfs.c mmc: debugfs: Add HS400 timing mode info in debugfs 2016-02-15 22:04:49 -08:00
host.c mmc: host: set correct state when suspend fails 2016-04-13 03:56:29 -07:00
host.h
Kconfig
Makefile
mmc.c mmc: core: expose info about enhanced rpmb support 2015-12-23 11:23:34 +05:30
mmc_ops.c mmc: block: Add error handling to command queue host 2015-05-27 14:40:59 -07:00
mmc_ops.h mmc: block: Add error handling to command queue host 2015-05-27 14:40:59 -07:00
quirks.c mmc: core: Card specific custom settings for SDIO 2015-12-30 22:22:38 +05:30
sd.c mmc: core: disable clock scaling before mmc suspend 2015-11-27 01:55:46 -08:00
sd.h
sd_ops.c
sd_ops.h
sdio.c mmc: sdio: Add MMC_CAP2_BROKEN_PWR_CYCLE & fix mmc_sdio_init_card 2016-07-29 15:12:08 -07:00
sdio_bus.c
sdio_bus.h
sdio_cis.c
sdio_cis.h
sdio_io.c
sdio_irq.c
sdio_ops.c
sdio_ops.h
slot-gpio.c