summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVenkatraman S <svenkatr@ti.com>2010-07-12 20:27:51 +0530
committerRicardo Perez Olivares <x0081762@ti.com>2010-07-14 20:43:10 -0500
commit5f6b80a3aa81237f72188886c582308525f1c56c (patch)
tree92be55941a19c8f876d17b310435f0955fe9daef
parent575b8f6a18702876975ca6fd5ad2f5a46e79039d (diff)
hsmmc: setup further transfers only on block completion interruptti-2.6.34-omap4-L24.7-p5
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 <svenkatr@ti.com>
-rw-r--r--drivers/mmc/host/omap_hsmmc.c6
1 files 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;