summaryrefslogtreecommitdiff
path: root/drivers/mmc
diff options
context:
space:
mode:
authorDong Aisheng <b29396@freescale.com>2013-11-15 17:54:36 +0800
committerNitin Garg <nitin.garg@freescale.com>2014-04-16 08:47:22 -0500
commit1e9d4fcadfd079f3376b4e0496b3bef5f2fe2e81 (patch)
tree6010b566bcbc5f3fd893e22264d3fd7de98b5843 /drivers/mmc
parent620cf8d909237e42d57e213d8afd56cca6f345be (diff)
ENGR00289279 mmc: sdhci: get runtime pm when sdio irq is enabled
SDIO cards may need clock to send the card interrupt to host. Thus, we get runtime pm when sdio irq is enabled to prevent the clock resource is released and put it when sdio irq is disabled. Signed-off-by: Dong Aisheng <b29396@freescale.com>
Diffstat (limited to 'drivers/mmc')
-rw-r--r--drivers/mmc/host/sdhci.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index c229bb5f76e4..fc63c23a1d6b 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -1697,6 +1697,9 @@ static int sdhci_get_ro(struct mmc_host *mmc)
static void sdhci_enable_sdio_irq_nolock(struct sdhci_host *host, int enable)
{
+ if (enable)
+ sdhci_runtime_pm_get(host);
+
if (host->flags & SDHCI_DEVICE_DEAD)
goto out;
@@ -1715,6 +1718,9 @@ static void sdhci_enable_sdio_irq_nolock(struct sdhci_host *host, int enable)
sdhci_mask_irqs(host, SDHCI_INT_CARD_INT);
out:
mmiowb();
+
+ if (!enable)
+ sdhci_runtime_pm_put(host);
}
static void sdhci_enable_sdio_irq(struct mmc_host *mmc, int enable)