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

Reply via email to