diff options
-rw-r--r-- | drivers/mmc/host/sdhci.c | 6 |
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 | ||
1836 | static int sdhci_start_signal_voltage_switch(struct mmc_host *mmc, | 1842 | static int sdhci_start_signal_voltage_switch(struct mmc_host *mmc, |