mirror_ubuntu-kernels/include/linux/mmc
Kevin Liu 52983382c7 mmc: sdhci: enhance preset value function
4d55c5a1 ("mmc: sdhci: enable preset value after uhs initialization")
added preset value support and enabled it by default during sd card init.

Below are the enhancements introduced by this patch:

1. In current code, preset value is enabled after setting clock finished,
which means the clock is manually set by driver firstly and then suddenly
switched to preset value at this point. So the first setting is useless
and unnecessary. What's more, the first clock setting may differ from the
preset one.  The better way is enable preset value just after switch to
UHS mode so the preset value can take effect immediately. So move preset
value enable from mmc_sd_init_card to sdhci_set_ios which will be called
during set timing.

2. In current code, preset value is disabled at the beginning of
mmc_attach_sd.  It's too late since low freq (400khz) should be set in
mmc_power_up.  So move preset value disable to sdhci_set_ios which will
be called during power up.

3. host->clock and ios->drv_type should also be updated according to the
preset value if it's enabled. Current code missed this.

4. This patch also introduce a quirk to disable preset value in case
preset value doesn't work.

This patch has been verified on sdhci-pxav3 platform with both preset
enabled and disabled.

Signed-off-by: Kevin Liu <kliu5@marvell.com>
Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <cjb@laptop.org>
2013-02-24 14:37:11 -05:00
..
boot.h mmc: Standardize header file inclusion checks. 2011-07-20 17:20:48 -04:00
card.h mmc: correct the EXCEPTION_EVENTS_STATUS value in comment 2013-02-24 14:36:52 -05:00
core.h mmc: fix async request mechanism for sequential read scenarios 2013-02-11 13:28:49 -05:00
dw_mmc.h mmc: dw_mmc: Remove DW_MCI_QUIRK_NO_WRITE_PROTECT 2013-02-24 14:36:55 -05:00
host.h mmc: sdhci: enhance preset value function 2013-02-24 14:37:11 -05:00
mmc.h mmc: core: Expose access to RPMB partition 2012-12-06 13:54:46 -05:00
pm.h mmc: Standardize header file inclusion checks. 2011-07-20 17:20:48 -04:00
sd.h mmc: Standardize header file inclusion checks. 2011-07-20 17:20:48 -04:00
sdhci-pci-data.h mmc: sdhci-pci: add platform data 2012-01-11 23:58:47 -05:00
sdhci-spear.h Viresh has moved 2012-06-20 14:39:36 -07:00
sdhci.h mmc: sdhci: enhance preset value function 2013-02-24 14:37:11 -05:00
sdio_func.h mmc: Standardize header file inclusion checks. 2011-07-20 17:20:48 -04:00
sdio_ids.h mmc: Standardize header file inclusion checks. 2011-07-20 17:20:48 -04:00
sdio.h mmc: sdio: fix setting card data bus width as 4-bit 2012-06-06 09:22:53 -04:00
sh_mmcif.h Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2012-07-24 17:12:54 -07:00
sh_mobile_sdhi.h mmc: sh_mobile_sdhi: support caps2 flags 2012-07-21 00:02:19 -04:00
slot-gpio.h mmc: core: add WP pin handler to slot functions 2012-07-21 00:02:18 -04:00
tmio.h mmc: sdhi: Add write16_hook 2011-07-20 17:20:57 -04:00