linux/drivers/mmc/host
Srinivas Kandagatla 9c34b73dee mmc: mmci: Add Qcom specific rx_fifocnt logic.
MCIFIFOCNT register behaviour on Qcom chips is very different than the other
pl180 integrations. MCIFIFOCNT register contains the number of
words that are still waiting to be transferred through the FIFO. It keeps
decrementing once the host CPU reads the MCIFIFO. With the existing logic and
the MCIFIFOCNT behaviour, mmci_pio_read will loop forever, as the FIFOCNT
register will always return transfer size before reading the FIFO.

Also the data sheet states that "This register is only useful for debug
purposes and should not be used for normal operation since it does not reflect
data which may or may not be in the pipeline".

This patch implements a qcom specific get_rx_fifocnt function which is
implemented based on status register flags. Based on qcom_fifo flag in
variant data structure, the corresponding get_rx_fifocnt function is selected.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2014-07-09 11:25:57 +02:00
..
android-goldfish.c mmc: remove unnecessary platform_set_drvdata() 2013-05-26 14:23:23 -04: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 mmc: atmel-mci: incude asm/cacheclush.h 2014-06-12 10:50:14 +02:00
au1xmmc.c mmc: au1xmmc: Move away from using deprecated APIs 2013-10-30 20:26:35 -04:00
bfin_sdh.c mmc: bfin_sdh: Move away from using deprecated APIs 2013-10-30 20:26:36 -04:00
cb710-mmc.c mmc: cb710: Move away from using deprecated APIs 2013-10-30 20:26:37 -04:00
cb710-mmc.h mmc: host: use platform_{get,set}_drvdata() 2013-06-27 11:13:02 -04:00
davinci_mmc.c mmc: davinci: Remove redundant of_match_ptr 2014-02-25 15:42:55 -05:00
dw_mmc-exynos.c mmc: dw_mmc: exynos: Staticize dw_mci_exynos_pmops 2014-05-12 18:04:30 -04:00
dw_mmc-k3.c mmc: dw_mmc: fix possible build error 2014-03-03 14:00:56 -05:00
dw_mmc-pci.c mmc: dw_mmc-pci: enable bus-mastering mode 2013-08-25 00:10:12 -04:00
dw_mmc-pltfm.c mmc: dw_mmc: Add support for SOCFPGA's platform specific implementation 2014-02-26 21:30:12 -05:00
dw_mmc-pltfm.h mmc: remove use of __devexit 2012-11-28 12:28:18 -08:00
dw_mmc.c mmc: dw_mmc: Don't print data errors 2014-05-22 08:33:31 -04:00
dw_mmc.h mmc: dw_mmc: remove dw_mci_of_cd_gpio/wp_gpio() 2014-05-12 18:04:34 -04:00
jz4740_mmc.c mmc: jz4740: don't wait for PRG_DONE after stop command with R1 response 2014-05-12 18:08:22 -04:00
Kconfig mmc: simplify SDHCI Kconfig dependencies 2014-06-12 10:51:14 +02:00
Makefile The clock framework changes for 3.16 are pretty typical: mostly clock 2014-06-07 20:27:30 -07:00
mmc_spi.c drivers/mmc/host/mmc_spi.c: Use get/put_unaligned_be32 2014-05-16 14:26:52 -04:00
mmci.c mmc: mmci: Add Qcom specific rx_fifocnt logic. 2014-07-09 11:25:57 +02:00
mmci.h mmc: mmci: Add Qcom specific rx_fifocnt logic. 2014-07-09 11:25:57 +02:00
moxart-mmc.c mmc: moxart: Add MOXA ART SD/MMC driver 2014-05-12 18:05:16 -04:00
msm_sdcc.c mmc: msm_sdcc: Move away from using deprecated APIs 2013-10-30 20:26:41 -04:00
msm_sdcc.h
mvsdio.c mmc: mvsdio: avoid compiler warning 2014-06-12 10:50:27 +02:00
mvsdio.h
mxcmmc.c mmc: mxcmmc: Use mmc_regulator_get_supply() API 2014-05-12 18:08:24 -04:00
mxs-mmc.c mmc: mxs: fix card detection function for broken card detect 2014-05-12 18:08:22 -04:00
of_mmc_spi.c mmc: mmc_spi: Support CD/RO GPIOs 2013-08-24 23:45:22 -04:00
omap_hsmmc.c mmc: omap_hsmmc: split omap-dma header file 2014-05-22 08:40:44 -04:00
omap.c mmc: omap: Use DIV_ROUND_UP instead of open coded 2014-05-22 08:33:31 -04:00
pxamci.c mmc: pxamci: Remove redundant suspend and resume callbacks 2013-10-30 20:28:29 -04:00
pxamci.h
rtsx_pci_sdmmc.c MMC highlights for 3.16: 2014-06-10 14:35:22 -07:00
rtsx_usb_sdmmc.c mmc: rtsx: fix possible linking error if built-in 2014-05-12 18:08:23 -04:00
s3cmci.c ARM: s3c24xx: explicit dependency on <plat/gpio-cfg.h> 2014-01-14 15:24:54 +01:00
s3cmci.h
sdhci-acpi.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-bcm2835.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-bcm-kona.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-cns3xxx.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-dove.c mmc: sdhci-dove: use mmc_of_parse() and remove card_tasklet CD handler 2014-05-23 08:42:02 -04:00
sdhci-esdhc-imx.c mmc: sdhci-esdhc-imx: fix mmc ddr mode regression issue 2014-05-22 08:40:45 -04:00
sdhci-esdhc.h mmc: sdhci: convert sdhci_set_clock() into a library function 2014-05-22 07:26:32 -04:00
sdhci-msm.c mmc: sdhci-msm: Fix fallout from sdhci refactoring 2014-06-12 10:40:27 +02:00
sdhci-of-arasan.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-of-esdhc.c mmc: sdhci-of-esdhc: Fixup compile error 2014-05-23 09:16:53 -04:00
sdhci-of-hlwd.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-pci-data.c mmc: sdhci-pci: add platform data 2012-01-11 23:58:47 -05:00
sdhci-pci-o2micro.c mmc: sdhci-pci-o2micro: Add SeaBird SeaEagle SD3 support 2014-05-22 08:40:44 -04:00
sdhci-pci-o2micro.h mmc: sdhci-pci-o2micro: Add SeaBird SeaEagle SD3 support 2014-05-22 08:40:44 -04:00
sdhci-pci.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-pci.h mmc: sdhci-pci: Fix BYT sd card getting stuck in runtime suspend 2014-01-20 10:31:08 -05:00
sdhci-pltfm.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-pltfm.h mmc: sdhci-pltfm: export pltfm suspend/resume api 2014-01-13 12:48:06 -05:00
sdhci-pxav2.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-pxav3.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-s3c-regs.h mmc: sdhci-s3c: remove platform dependencies 2013-04-19 13:51:23 +02:00
sdhci-s3c.c mmc: sdhci-s3c: use mmc_of_parse and remove the card_tasklet 2014-06-04 18:59:12 -04:00
sdhci-sirf.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-spear.c mmc: sdhci: convert sdhci_set_uhs_signaling() into a library function 2014-05-22 08:33:11 -04:00
sdhci-tegra.c mmc: tegra: fix reporting of base clock frequency 2014-05-23 08:49:29 -04:00
sdhci.c mmc: sdhci: SD tuning is broken for some controllers 2014-05-22 08:40:46 -04:00
sdhci.h mmc: sdhci: remove platform_suspend/platform_resume callbacks 2014-05-22 08:33:28 -04:00
sdricoh_cs.c mmc: sdricoh_cs: Move away from using deprecated APIs 2013-10-30 20:28:32 -04:00
sh_mmcif.c mmc: sh_mmcif: clarify DDR timing mode between SD-UHS and eMMC 2014-04-20 16:59:52 -04:00
sh_mobile_sdhi.c mmc: sdhi: update sh_mobile_sdhi_of_data for r8a7791 2014-02-22 13:06:23 -05:00
sunxi-mmc.c mmc: sunxi: Add driver for SD/MMC hosts found on Allwinner sunxi SoCs 2014-06-03 16:52:34 -07:00
tifm_sd.c mmc: tifm_sd: Move away from using deprecated APIs 2013-10-30 20:28:23 -04:00
tmio_mmc_dma.c mmc: tmio: bus_shift become tmio_mmc_data member 2014-01-13 12:48:23 -05:00
tmio_mmc_pio.c mmc: tmio: Adapt to proper PM configs for exported functions 2014-02-13 22:58:09 -05:00
tmio_mmc.c mmc: tmio_mmc: Convert from legacy to modern PM ops 2014-02-13 22:58:01 -05:00
tmio_mmc.h mmc: tmio: Adapt to proper PM configs for exported functions 2014-02-13 22:58:09 -05:00
usdhi6rol0.c mmc: usdhi6rol0: fix compiler warnings 2014-06-12 10:38:50 +02:00
ushc.c mmc: ushc: Fix incorrect parameter in sizeof 2014-02-25 15:42:20 -05:00
via-sdmmc.c mmc: via-sdmmc: Move away from using deprecated APIs 2013-10-30 20:28:36 -04:00
vub300.c mmc: vub300: Move away from using deprecated APIs 2013-10-30 20:26:43 -04:00
wbsd.c mmc: wbsd: Silence compiler warning 2013-11-08 14:32:03 -05:00
wbsd.h
wmt-sdmmc.c mmc: wmt-sdmmc: Use GFP_KERNEL instead of hard-coded value 2014-05-22 08:40:40 -04:00