mmc: sdhci: Do not unnecessarily enable wakeup for SDIO card interrupt
authorAdrian Hunter <adrian.hunter@intel.com>
Tue, 27 Feb 2018 12:51:24 +0000 (14:51 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 5 Mar 2018 12:04:32 +0000 (13:04 +0100)
Do not enable wakeup for SDIO card interrupt unless the SDIO function
driver has requested it which is indicated by mmc_card_wake_sdio_irq().

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci.c

index 996845c..2ededa7 100644 (file)
@@ -2928,8 +2928,13 @@ static bool sdhci_enable_irq_wakeups(struct sdhci_host *host)
                irq_val |= SDHCI_INT_CARD_INSERT | SDHCI_INT_CARD_REMOVE;
        }
 
-       wake_val |= SDHCI_WAKE_ON_INT;
-       irq_val |= SDHCI_INT_CARD_INT;
+       if (mmc_card_wake_sdio_irq(host->mmc)) {
+               wake_val |= SDHCI_WAKE_ON_INT;
+               irq_val |= SDHCI_INT_CARD_INT;
+       }
+
+       if (!irq_val)
+               return false;
 
        val = sdhci_readb(host, SDHCI_WAKE_UP_CONTROL);
        val &= ~mask;