]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00295184-7 mmc: sdhci: do not enable card cd wakeup for gpio case
authorDong Aisheng <b29396@freescale.com>
Mon, 13 Jan 2014 10:27:58 +0000 (18:27 +0800)
committerDong Aisheng <b29396@freescale.com>
Wed, 15 Jan 2014 07:06:03 +0000 (15:06 +0800)
Do not need to enable the controller card cd interrupt wakeup
if using GPIO as card detect since it's meaningless.

Signed-off-by: Dong Aisheng <b29396@freescale.com>
drivers/mmc/host/sdhci.c

index 72ba46d4db820b7eda987b193f599a18a481072d..beb3fc94947b77ea90724d2ba8c20f40293c4c6b 100644 (file)
@@ -2546,6 +2546,7 @@ out:
 #ifdef CONFIG_PM
 void sdhci_enable_irq_wakeups(struct sdhci_host *host)
 {
+       int gpio_cd = mmc_gpio_get_cd(host->mmc);
        u8 val;
        u8 mask = SDHCI_WAKE_ON_INSERT | SDHCI_WAKE_ON_REMOVE
                        | SDHCI_WAKE_ON_INT;
@@ -2553,7 +2554,8 @@ void sdhci_enable_irq_wakeups(struct sdhci_host *host)
        val = sdhci_readb(host, SDHCI_WAKE_UP_CONTROL);
        val |= mask ;
        /* Avoid fake wake up */
-       if (host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION)
+       if (host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION ||
+               !IS_ERR_VALUE(gpio_cd))
                val &= ~(SDHCI_WAKE_ON_INSERT | SDHCI_WAKE_ON_REMOVE);
        sdhci_writeb(host, val, SDHCI_WAKE_UP_CONTROL);
 }