projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
762333e
)
omap hsmmc: fix processing of all dma interrupts as block completion
author
Venkatraman S
<
[email protected]
>
Wed, 11 Aug 2010 01:01:54 +0000
(18:01 -0700)
committer
Linus Torvalds
<
[email protected]
>
Wed, 11 Aug 2010 15:59:04 +0000
(08:59 -0700)
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]
>
Acked-by: Madhusudhan Chikkature <
[email protected]
>
Cc: <
[email protected]
>
Signed-off-by: Andrew Morton <
[email protected]
>
Signed-off-by: Linus Torvalds <
[email protected]
>
drivers/mmc/host/omap_hsmmc.c
patch
|
blob
|
history
diff --git
a/drivers/mmc/host/omap_hsmmc.c
b/drivers/mmc/host/omap_hsmmc.c
index ee1a3093048ee7f83567062fff280543ec37c0ec..dc57ef6aef4f5b9ab86c72a3c83f2376f5f6f764 100644
(file)
--- a/
drivers/mmc/host/omap_hsmmc.c
+++ b/
drivers/mmc/host/omap_hsmmc.c
@@
-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) {