From: Venkatraman S <svenk...@ti.com>

If other informative interrupts are enabled for the DMA 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>
Acked-by: Madhusudhan Chikkature <madhu...@ti.com>
Cc: <linux-mmc@vger.kernel.org>
Signed-off-by: Andrew Morton <a...@linux-foundation.org>
---

 drivers/mmc/host/omap_hsmmc.c |    7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff -puN 
drivers/mmc/host/omap_hsmmc.c~omap-hsmmc-fix-processing-of-all-dma-interrupts-as-block-completion
 drivers/mmc/host/omap_hsmmc.c
--- 
a/drivers/mmc/host/omap_hsmmc.c~omap-hsmmc-fix-processing-of-all-dma-interrupts-as-block-completion
+++ a/drivers/mmc/host/omap_hsmmc.c
@@ -1273,8 +1273,11 @@ static void omap_hsmmc_dma_cb(int lch, u
        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) {
_
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" 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