If other informative DMA interrupts are enabled
        for the channel used by hsmmc, those are incorrectly
        treated as block completion. This patch lets only
        the block completion interrupt to be processed.

Signed-off-by: Venkatraman S <svenk...@ti.com>
---
 drivers/mmc/host/omap_hsmmc.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index b032828..d2901f8 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -1273,8 +1273,11 @@ static void omap_hsmmc_dma_cb(int lch, u16 ch_status, 
void *cb_data)
        struct mmc_data *data = host->mrq->data;
        int dma_ch, req_in_progress;
 
-       if (ch_status & OMAP2_DMA_MISALIGNED_ERR_IRQ)
-               dev_dbg(mmc_dev(host->mmc), "MISALIGNED_ADRS_ERR\n");
+       if (!(ch_status & OMAP_DMA_BLOCK_IRQ)) {
+               dev_warn(mmc_dev(host->mmc), "unexpected dma status %x\n",
+                       ch_status);
+               return;
+       }
 
        spin_lock(&host->irq_lock);
        if (host->dma_ch < 0) {
-- 
1.6.3.3

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to