omap hsmmc: fix processing of all dma interrupts as block completion
Subsystems (2)
PATCH 48/177 omap hsmmc: fix processing of all dma interrupts as block completion
From: Venkatraman S <[email protected]>
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 <[email protected]>
Cc <[email protected]>
Signed-off-by Andrew Morton <[email protected]>
---
drivers/mmc/host/omap_hsmmc.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
drivers/mmc/host/omap_hsmmc.c renamed from drivers/mmc/host/omap_hsmmc.c~omap-hsmmc-fix-processing-of-all-dma-interrupts-as-block-completion +5 -2
@@ -1273,8 +1273,11 @@ static void omap_hsmmc_dma_cb(int lch, ustruct 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 ) {
_