> -----Original Message----- > From: Shilimkar, Santosh > Sent: Thursday, September 25, 2008 3:31 PM > To: linux-omap@xxxxxxxxxxxxxxx > Cc: Pandita, Vikram > Subject: [PATCH] ARM: OMAP3: DMA: Fix for sDMA Errata 1.113 > > From: Santosh Shilimkar <santosh.shilimkar@xxxxxx> > > SDMA channel is not disabled after transaction error. So > explicitly disable it. > > Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxx> > Acked By : Nishant kamat <nskamat@xxxxxx> > --- > Index: linux-omap-2.6/arch/arm/plat-omap/dma.c > =================================================================== > --- linux-omap-2.6.orig/arch/arm/plat-omap/dma.c 2008-09-23 16:41:23.000000000 +0530 > +++ linux-omap-2.6/arch/arm/plat-omap/dma.c 2008-09-25 14:54:00.162059260 +0530 > @@ -1849,9 +1849,22 @@ static int omap2_dma_handle_ch(int ch) > printk(KERN_INFO > "DMA synchronization event drop occurred > with device " > "%d\n", dma_chan[ch].dev_id); > - if (unlikely(status & OMAP2_DMA_TRANS_ERR_IRQ)) > + if (unlikely(status & OMAP2_DMA_TRANS_ERR_IRQ)) { > printk(KERN_INFO "DMA transaction error with > device %d\n", > dma_chan[ch].dev_id); > + if (cpu_class_is_omap2()) { > + /* Errata: sDMA Channel is not disabled > + * after a transaction error. So we explicitely > + * disable the channel > + */ > + u32 ccr; > + > + ccr = dma_read(CCR(ch)); > + ccr &= ~OMAP_DMA_CCR_EN; > + dma_write(ccr, CCR(ch)); > + dma_chan[ch].flags &= ~OMAP_DMA_ACTIVE; > + } > + } > if (unlikely(status & OMAP2_DMA_SECURE_ERR_IRQ)) > printk(KERN_INFO "DMA secure error with device %d\n", > dma_chan[ch].dev_id); Tony, What about this patch ?-- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html