25 lines
811 B
Diff
25 lines
811 B
Diff
|
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
|
||
|
index ada1a3e..306b4ac 100644
|
||
|
--- a/drivers/mmc/host/sdhci.c
|
||
|
+++ b/drivers/mmc/host/sdhci.c
|
||
|
@@ -1715,7 +1715,8 @@ static void sdhci_enable_sdio_irq(struct mmc_host *mmc, int enable)
|
||
|
struct sdhci_host *host = mmc_priv(mmc);
|
||
|
unsigned long flags;
|
||
|
|
||
|
- sdhci_runtime_pm_get(host);
|
||
|
+ if (enable)
|
||
|
+ sdhci_runtime_pm_get(host);
|
||
|
|
||
|
spin_lock_irqsave(&host->lock, flags);
|
||
|
if (enable)
|
||
|
@@ -1726,7 +1727,8 @@ static void sdhci_enable_sdio_irq(struct mmc_host *mmc, int enable)
|
||
|
sdhci_enable_sdio_irq_nolock(host, enable);
|
||
|
spin_unlock_irqrestore(&host->lock, flags);
|
||
|
|
||
|
- sdhci_runtime_pm_put(host);
|
||
|
+ if (!enable)
|
||
|
+ sdhci_runtime_pm_put(host);
|
||
|
}
|
||
|
|
||
|
static int sdhci_do_start_signal_voltage_switch(struct sdhci_host *host,
|
||
|
|