mmc: sdio: add a quirk for broken SDIO_CCCR_INTx polling
commite5624054c1726a16c13a89c08b2792aba3df06eb
authorBing Zhao <bzhao@marvell.com>
Tue, 26 Nov 2013 23:39:20 +0000 (26 15:39 -0800)
committerChris Ball <chris@printf.net>
Sat, 18 Jan 2014 03:55:01 +0000 (17 22:55 -0500)
tree2f54f5abf6337ed1571e6dd872a2e32164382f70
parent2b35bd83467df6f8284b9148d6f768148c3a5e5f
mmc: sdio: add a quirk for broken SDIO_CCCR_INTx polling

Polling SDIO_CCCR_INTx could create a fake interrupt with Marvell
SD8797 card. Add a quirk to handle this case. The fixup here is
to issue a dummy CMD52 read to function 0 register 0xff, and this
dummy read must be right after SDIO_CCCR_INTx is read.

Patch has been verified on a dw_mmc controller (Samsung Chromebook)
with MMC_CAP_SDIO_IRQ disabled.

Signed-off-by: Bing Zhao <bzhao@marvell.com>
Reviewed-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Doug Anderson <dianders@chromium.org>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Chris Ball <chris@printf.net>
drivers/mmc/core/quirks.c
drivers/mmc/core/sdio_irq.c
include/linux/mmc/card.h