From 7b725c102e1ddfbaca5856af7c286bfd626363ea Mon Sep 17 00:00:00 2001 From: Dong Aisheng Date: Thu, 5 Sep 2013 18:30:47 +0800 Subject: [PATCH] ENGR00278504-2 mmc: sdhci-esdhc-imx: add broken auto cmd23 for imx6q The auto cmd23 can not work well on imx6q with an eMMC cards. The error message is: mmc0: Timeout waiting for hardware interrupt The root cause is still unkown. This is a workaround and the quirk will be removed once we find the root cause and fix the issue later. Signed-off-by: Dong Aisheng --- drivers/mmc/host/sdhci-esdhc-imx.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c index d5f0d59e1310..9313067c05b8 100644 --- a/drivers/mmc/host/sdhci-esdhc-imx.c +++ b/drivers/mmc/host/sdhci-esdhc-imx.c @@ -564,8 +564,11 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev) * The imx6q ROM code will change the default watermark level setting * to something insane. Change it back here. */ - if (is_imx6q_usdhc(imx_data)) + if (is_imx6q_usdhc(imx_data)) { writel(0x08100810, host->ioaddr + ESDHC_WTMK_LVL); + /* FIXME: ACMD23 can not work well on imx6q */ + host->quirks2 |= SDHCI_QUIRK2_BROKEN_AUTO_CMD23; + } boarddata = &imx_data->boarddata; if (sdhci_esdhc_imx_probe_dt(pdev, boarddata) < 0) { -- 2.39.5