From 5f6b80a3aa81237f72188886c582308525f1c56c Mon Sep 17 00:00:00 2001 From: Venkatraman S Date: Mon, 12 Jul 2010 20:27:51 +0530 Subject: hsmmc: setup further transfers only on block completion interrupt Several types of interrupts could have been enabled for the DMA channel used by hsmmc. Only the block completion interrupt should be used to setup further dma transfers to the card, else it can lead to sync errors Signed-off-by: Venkatraman S --- drivers/mmc/host/omap_hsmmc.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 3e23560a4708..28108412e6aa 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -1299,8 +1299,10 @@ static void omap_hsmmc_dma_cb(int lch, u16 ch_status, void *data) { struct omap_hsmmc_host *host = data; - if (ch_status & OMAP2_DMA_MISALIGNED_ERR_IRQ) - dev_dbg(mmc_dev(host->mmc), "MISALIGNED_ADRS_ERR\n"); + if (!(ch_status & 0x20)) { + dev_dbg(mmc_dev(host->mmc), "invalid ch stat %x\n", ch_status); + return; + } if (host->dma_ch < 0) return; -- cgit v1.2.3