summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Pitre <nico@fluxnic.net>2010-03-05 22:43:34 +0100
committerLinus Torvalds <torvalds@linux-foundation.org>2010-03-06 20:26:37 +0100
commit40216842dca4fa485cb1aa5eb231149a4a57cc85 (patch)
tree25e51613412e3c8188d6476ec886a2f844d51714
parentsdio: don't use CMD[357] as part of a powered SDIO resume (diff)
downloadlinux-40216842dca4fa485cb1aa5eb231149a4a57cc85.tar.xz
linux-40216842dca4fa485cb1aa5eb231149a4a57cc85.zip
sdio: kick the interrupt thread upon a resume
Some SDIO cards may suspend while keeping function interrupts active especially in the powered suspend case. Upon resume we need to kick the SDIO interrupt thread to check for pending interrupts and to restart card IRQ detection at the host controller level. Signed-off-by: Nicolas Pitre <nico@marvell.com> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/mmc/core/sdio.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c
index 7d8ba64b0170..5840de106b69 100644
--- a/drivers/mmc/core/sdio.c
+++ b/drivers/mmc/core/sdio.c
@@ -441,6 +441,8 @@ static int mmc_sdio_resume(struct mmc_host *host)
mmc_claim_host(host);
err = mmc_sdio_init_card(host, host->ocr, host->card,
(host->pm_flags & MMC_PM_KEEP_POWER));
+ if (!err && host->sdio_irqs)
+ mmc_signal_sdio_irq(host);
mmc_release_host(host);
/*