omap hsmmc: fix processing of all dma interrupts as block completion
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 <svenkatr@ti.com> Acked-by: Madhusudhan Chikkature <madhu.cr@ti.com> Cc: <linux-mmc@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
762333e344
commit
f3584e5e6f
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue