mmc: sdhci-of-esdhc: enable interrupt mode to detect card
authorYangbo Lu <yangbo.lu@freescale.com>
Mon, 1 Jun 2015 05:47:12 +0000 (13:47 +0800)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 1 Jun 2015 07:07:18 +0000 (09:07 +0200)
Enable interrupt mode to detect card instead of polling mode
for P1020/P4080/P5020/P5040/T1040 by removing the quirk
SDHCI_QUIRK_BROKEN_CARD_DETECTION. This could improve data
transferring performance and avoid the call trace caused by
polling card status sometime.

Signed-off-by: Yangbo Lu <yangbo.lu@freescale.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci-of-esdhc.c

index 1804bdbdb1454d31c4807ca2d96dd31acad43c5c..797be7549a15c01a0e9acda2b0adaccb0a6c9416 100644 (file)
@@ -361,6 +361,13 @@ static int sdhci_esdhc_probe(struct platform_device *pdev)
        sdhci_get_of_property(pdev);
 
        np = pdev->dev.of_node;
+       if (of_device_is_compatible(np, "fsl,p5040-esdhc") ||
+           of_device_is_compatible(np, "fsl,p5020-esdhc") ||
+           of_device_is_compatible(np, "fsl,p4080-esdhc") ||
+           of_device_is_compatible(np, "fsl,p1020-esdhc") ||
+           of_device_is_compatible(np, "fsl,t1040-esdhc"))
+               host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION;
+
        if (of_device_is_compatible(np, "fsl,p2020-esdhc")) {
                /*
                 * Freescale messed up with P2020 as it has a non-standard