git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branches 'sh/wdt', 'sh/pci-express-async' and 'common/serial-rework' into sh...
[pandora-kernel.git]
/
arch
/
arm
/
plat-omap
/
dma.c
diff --git
a/arch/arm/plat-omap/dma.c
b/arch/arm/plat-omap/dma.c
index
c4b2b47
..
8536308
100644
(file)
--- a/
arch/arm/plat-omap/dma.c
+++ b/
arch/arm/plat-omap/dma.c
@@
-53,7
+53,7
@@
enum { DMA_CHAIN_STARTED, DMA_CHAIN_NOTSTARTED };
#endif
#define OMAP_DMA_ACTIVE 0x01
#endif
#define OMAP_DMA_ACTIVE 0x01
-#define OMAP2_DMA_CSR_CLEAR_MASK 0xff
e
+#define OMAP2_DMA_CSR_CLEAR_MASK 0xff
ffffff
#define OMAP_FUNC_MUX_ARM_BASE (0xfffe1000 + 0xec)
#define OMAP_FUNC_MUX_ARM_BASE (0xfffe1000 + 0xec)
@@
-1873,7
+1873,7
@@
static int omap2_dma_handle_ch(int ch)
printk(KERN_INFO "DMA misaligned error with device %d\n",
dma_chan[ch].dev_id);
printk(KERN_INFO "DMA misaligned error with device %d\n",
dma_chan[ch].dev_id);
- p->dma_write(
OMAP2_DMA_CSR_CLEAR_MASK
, CSR, ch);
+ p->dma_write(
status
, CSR, ch);
p->dma_write(1 << ch, IRQSTATUS_L0, ch);
/* read back the register to flush the write */
p->dma_read(IRQSTATUS_L0, ch);
p->dma_write(1 << ch, IRQSTATUS_L0, ch);
/* read back the register to flush the write */
p->dma_read(IRQSTATUS_L0, ch);
@@
-1893,10
+1893,9
@@
static int omap2_dma_handle_ch(int ch)
OMAP_DMA_CHAIN_INCQHEAD(chain_id);
status = p->dma_read(CSR, ch);
OMAP_DMA_CHAIN_INCQHEAD(chain_id);
status = p->dma_read(CSR, ch);
+ p->dma_write(status, CSR, ch);
}
}
- p->dma_write(status, CSR, ch);
-
if (likely(dma_chan[ch].callback != NULL))
dma_chan[ch].callback(ch, status, dma_chan[ch].data);
if (likely(dma_chan[ch].callback != NULL))
dma_chan[ch].callback(ch, status, dma_chan[ch].data);