aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDong Aisheng <b29396@freescale.com>2014-01-13 05:27:58 -0500
committerNitin Garg <nitin.garg@freescale.com>2014-04-16 09:47:36 -0400
commit8ab4df685975e93f12a65f000c83708f8886553c (patch)
tree6304da6438eb9f54424a76dfae97efaa4c643388
parent3ecde06cf9c14d134289c8b3d52297904b6487bf (diff)
ENGR00295184-7 mmc: sdhci: do not enable card cd wakeup for gpio case
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>
-rw-r--r--drivers/mmc/host/sdhci.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 72ba46d4db82..beb3fc94947b 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -2546,6 +2546,7 @@ out:
2546#ifdef CONFIG_PM 2546#ifdef CONFIG_PM
2547void sdhci_enable_irq_wakeups(struct sdhci_host *host) 2547void sdhci_enable_irq_wakeups(struct sdhci_host *host)
2548{ 2548{
2549 int gpio_cd = mmc_gpio_get_cd(host->mmc);
2549 u8 val; 2550 u8 val;
2550 u8 mask = SDHCI_WAKE_ON_INSERT | SDHCI_WAKE_ON_REMOVE 2551 u8 mask = SDHCI_WAKE_ON_INSERT | SDHCI_WAKE_ON_REMOVE
2551 | SDHCI_WAKE_ON_INT; 2552 | SDHCI_WAKE_ON_INT;
@@ -2553,7 +2554,8 @@ void sdhci_enable_irq_wakeups(struct sdhci_host *host)
2553 val = sdhci_readb(host, SDHCI_WAKE_UP_CONTROL); 2554 val = sdhci_readb(host, SDHCI_WAKE_UP_CONTROL);
2554 val |= mask ; 2555 val |= mask ;
2555 /* Avoid fake wake up */ 2556 /* Avoid fake wake up */
2556 if (host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) 2557 if (host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION ||
2558 !IS_ERR_VALUE(gpio_cd))
2557 val &= ~(SDHCI_WAKE_ON_INSERT | SDHCI_WAKE_ON_REMOVE); 2559 val &= ~(SDHCI_WAKE_ON_INSERT | SDHCI_WAKE_ON_REMOVE);
2558 sdhci_writeb(host, val, SDHCI_WAKE_UP_CONTROL); 2560 sdhci_writeb(host, val, SDHCI_WAKE_UP_CONTROL);
2559} 2561}