mmc: sdhci-esdhc-imx: SDHCI_CARD_PRESENT does not get cleared
authorShawn Guo <shawn.guo@linaro.org>
Tue, 21 Jun 2011 14:41:49 +0000 (22:41 +0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 5 Aug 2011 04:58:31 +0000 (21:58 -0700)
commit 803862a6f7de4939e0a557214e5e4b37e36f87ff upstream.

The function esdhc_readl_le intends to clear bit SDHCI_CARD_PRESENT,
when the card detect gpio tells there is no card.  But it does not
clear the bit actually.  The patch gives a fix on that.

Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
Acked-by: Wolfram Sang <w.sang@pengutronix.de>
Signed-off-by: Chris Ball <cjb@laptop.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/mmc/host/sdhci-esdhc-imx.c

index a19967d..ba31abe 100644 (file)
@@ -74,7 +74,7 @@ static u32 esdhc_readl_le(struct sdhci_host *host, int reg)
                if (boarddata && gpio_is_valid(boarddata->cd_gpio)
                                && gpio_get_value(boarddata->cd_gpio))
                        /* no card, if a valid gpio says so... */
-                       val &= SDHCI_CARD_PRESENT;
+                       val &= ~SDHCI_CARD_PRESENT;
                else
                        /* ... in all other cases assume card is present */
                        val |= SDHCI_CARD_PRESENT;