summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2010-08-12 18:08:40 -0700
committerDan Willemsen <dwillemsen@nvidia.com>2013-09-14 00:47:03 -0700
commitff393f842bcecfadfe97f2408921329b991dfaaf (patch)
tree84acb602f452f555b3ea08a76ef34e5d054fd0dc
parent84f8da6b715ad56d13312ef6357acaf8367c8d47 (diff)
mmc: sdhci: enable/disable sdc irq instead of request/free
Was: mmc: sdhci: Skip mmc suspend/resume ops for SDIO device, enable/disable sdc irq instead of request/free, mask all sdc interrupts on suspend Change-Id: I3fb137363c6e639882b796aff8b80784c5256a71 Signed-off-by: Dmitry Shmidt <dimitrysh@google.com> [DW: removed the skip for SDIO, since we later revert] Signed-off-by: Dan Willemsen <dwillemsen@nvidia.com> Rebase-Id: Rf6edd4551a9a29c6d096ce593560d29a5dcd3b4d
-rw-r--r--drivers/mmc/host/sdhci.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 2ea429c27714..030d768bb0ea 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -2555,7 +2555,8 @@ int sdhci_suspend_host(struct sdhci_host *host)
if (!device_may_wakeup(mmc_dev(host->mmc))) {
sdhci_mask_irqs(host, SDHCI_INT_ALL_MASK);
- free_irq(host->irq, host);
+ if (host->irq)
+ disable_irq(host->irq);
} else {
sdhci_enable_irq_wakeups(host);
enable_irq_wake(host->irq);
@@ -2575,10 +2576,8 @@ int sdhci_resume_host(struct sdhci_host *host)
}
if (!device_may_wakeup(mmc_dev(host->mmc))) {
- ret = request_irq(host->irq, sdhci_irq, IRQF_SHARED,
- mmc_hostname(host->mmc), host);
- if (ret)
- return ret;
+ if (host->irq)
+ enable_irq(host->irq);
} else {
sdhci_disable_irq_wakeups(host);
disable_irq_wake(host->irq);