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 <[email protected]> --- 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 _______________________________________________ Gta04-owner mailing list [email protected] http://lists.goldelico.com/mailman/listinfo.cgi/gta04-owner
