summaryrefslogtreecommitdiff
path: root/drivers/mmc/host/sdhci.c
diff options
context:
space:
mode:
authorPavan Kunapuli <pkunapuli@nvidia.com>2011-11-18 18:01:47 +0530
committerDan Willemsen <dwillemsen@nvidia.com>2011-11-30 21:50:14 -0800
commit8e3dbb524afe2dfa9257d2930229944dd0e7bead (patch)
treee97b3e7746973113f989489c3f19c94fb186d48d /drivers/mmc/host/sdhci.c
parent8413a501cfde39be20e5adadcb26d16b307a75df (diff)
sdhci: Don't set SDIO card intr in resume by default
Enable SDIO card interrupt in resume only if it is set before suspend. Bug 902633 Change-Id: I2ade8c204ddfa97e41d5c0e5bec67d07e68f81ad Signed-off-by: Pavan Kunapuli <pkunapuli@nvidia.com> Reviewed-on: http://git-master/r/66099 Reviewed-by: Sachin Nikam <snikam@nvidia.com> Rebase-Id: Rb2ba0ae696df9104840566a794780730d6da845f
Diffstat (limited to 'drivers/mmc/host/sdhci.c')
-rw-r--r--drivers/mmc/host/sdhci.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 0291ab37b4b9..05dde5f46ac0 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -2307,6 +2307,10 @@ int sdhci_suspend_host(struct sdhci_host *host, pm_message_t state)
if (mmc->card && (mmc->card->type != MMC_TYPE_SDIO))
ret = mmc_suspend_host(host->mmc);
+ if (host->flags & MMC_PM_KEEP_POWER)
+ host->card_int_set = sdhci_readl(host, SDHCI_INT_ENABLE) &
+ SDHCI_INT_CARD_INT;
+
sdhci_mask_irqs(host, SDHCI_INT_ALL_MASK);
if (host->vmmc)
@@ -2350,7 +2354,8 @@ int sdhci_resume_host(struct sdhci_host *host)
/* Enable card interrupt as it is overwritten in sdhci_init */
if ((mmc->caps & MMC_CAP_SDIO_IRQ) &&
(mmc->pm_flags & MMC_PM_KEEP_POWER))
- mmc->ops->enable_sdio_irq(mmc, true);
+ if (host->card_int_set)
+ mmc->ops->enable_sdio_irq(mmc, true);
}
}