[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