From 1e9d4fcadfd079f3376b4e0496b3bef5f2fe2e81 Mon Sep 17 00:00:00 2001 From: Dong Aisheng Date: Fri, 15 Nov 2013 17:54:36 +0800 Subject: 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 --- drivers/mmc/host/sdhci.c | 6 ++++++ 1 file changed, 6 insertions(+) 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) -- cgit v1.2.2