Thread (6 messages) 6 messages, 2 authors, 2012-11-06

[RFC/PATCH] mmc: omap_hsmmc: introduce omap_hsmmc_prepare/complete

From: Venkatraman S <hidden>
Date: 2012-11-06 15:50:04
Also in: linux-mmc, linux-omap

On Mon, Oct 22, 2012 at 6:29 PM, Felipe Balbi [off-list ref] wrote:
prepare() is supposed to prevent new children from
being registered. On the MMC subsystem, children
(new cards) registration starts with the card
detect IRQ.

Move card detect IRQ disabling to prepare() so that
no new cards will be registered while we're trying
to suspend.

Likewise, move card detect IRQ enabling to complete()
so we only try to register new children after our MMC
IP is back up.

Signed-off-by: Felipe Balbi <redacted>
---

Venkat, do you think the patch below makes sense ?
Except for the minor nit mentioned below, it works well.
I'll include it in my patch series.
quoted hunk ↗ jump to hunk
cheers

 drivers/mmc/host/omap_hsmmc.c | 45 ++++++++++++++++++++++++-------------------
 1 file changed, 25 insertions(+), 20 deletions(-)
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 54bfd0c..4c8b41e 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -2022,6 +2022,26 @@ static int __devexit omap_hsmmc_remove(struct platform_device *pdev)
 }

 #ifdef CONFIG_PM
+static int omap_hsmmc_prepare(struct device *dev)
+{
+       struct omap_hsmmc_host *host = dev_get_drvdata(dev);
+
+       if (host->pdata->suspend)
+               return host->pdata->suspend(dev, host->slot_id);
+
+       return 0;
+}
+
+static int omap_hsmmc_complete(struct device *dev)
The .complete() function prototype requires to return void.
This one emits a compilation warning.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help