aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 a983ba0349fb..7d275e72903a 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -1823,6 +1823,9 @@ static void sdhci_enable_sdio_irq(struct mmc_host *mmc, int enable)
1823 struct sdhci_host *host = mmc_priv(mmc); 1823 struct sdhci_host *host = mmc_priv(mmc);
1824 unsigned long flags; 1824 unsigned long flags;
1825 1825
1826 if (enable)
1827 pm_runtime_get_noresume(host->mmc->parent);
1828
1826 spin_lock_irqsave(&host->lock, flags); 1829 spin_lock_irqsave(&host->lock, flags);
1827 if (enable) 1830 if (enable)
1828 host->flags |= SDHCI_SDIO_IRQ_ENABLED; 1831 host->flags |= SDHCI_SDIO_IRQ_ENABLED;
@@ -1831,6 +1834,9 @@ static void sdhci_enable_sdio_irq(struct mmc_host *mmc, int enable)
1831 1834
1832 sdhci_enable_sdio_irq_nolock(host, enable); 1835 sdhci_enable_sdio_irq_nolock(host, enable);
1833 spin_unlock_irqrestore(&host->lock, flags); 1836 spin_unlock_irqrestore(&host->lock, flags);
1837
1838 if (!enable)
1839 pm_runtime_put_noidle(host->mmc->parent);
1834} 1840}
1835 1841
1836static int sdhci_start_signal_voltage_switch(struct mmc_host *mmc, 1842static int sdhci_start_signal_voltage_switch(struct mmc_host *mmc,