[Gta04-owner] [PATCH] omap_hsmmc: hackish try to enable sdio interrupts

Andreas Kemnade andreas at kemnade.info
Fri Dec 18 20:17:44 CET 2015


This patch disables the wakeup irq check and adds an additional
pm_runtime_get/pm_runtime_put to avoid fclk being switched off
which is needed to notify omap hsmmc about the irq.
A better would be to use the wakeup_irq thing to get noticed
about an irq independant of the omap_hsmmc module, so fclk
can be enabled after that.
This is considered only as a proof-of-concept-patch

Signed-off-by: Andreas Kemnade <andreas at kemnade.info>
---
 drivers/mmc/host/omap_hsmmc.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 7fb0753..f2877f9 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -1727,6 +1727,7 @@ static void omap_hsmmc_enable_sdio_irq(struct mmc_host *mmc, int enable)
 	con = OMAP_HSMMC_READ(host->base, CON);
 	irq_mask = OMAP_HSMMC_READ(host->base, ISE);
 	if (enable) {
+	        pm_runtime_get_sync(host->dev);
 		host->flags |= HSMMC_SDIO_IRQ_ENABLED;
 		irq_mask |= CIRQ_EN;
 		con |= CTPL | CLKEXTFREE;
@@ -1734,6 +1735,7 @@ static void omap_hsmmc_enable_sdio_irq(struct mmc_host *mmc, int enable)
 		host->flags &= ~HSMMC_SDIO_IRQ_ENABLED;
 		irq_mask &= ~CIRQ_EN;
 		con &= ~(CTPL | CLKEXTFREE);
+	        pm_runtime_put(host->dev);
 	}
 	OMAP_HSMMC_WRITE(host->base, CON, con);
 	OMAP_HSMMC_WRITE(host->base, IE, irq_mask);
@@ -2199,7 +2201,7 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
 	 * are moving to DT based booting anyways.
 	 */
 	ret = omap_hsmmc_configure_wake_irq(host);
-	if (!ret)
+//	if (!ret)
 		mmc->caps |= MMC_CAP_SDIO_IRQ;
 
 	omap_hsmmc_protect_card(host);
-- 
1.7.10.4



More information about the Gta04-owner mailing list