* Shilimkar, Santosh <santosh.shilimkar@xxxxxx> [081001 14:09]: > > -----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 ?-- Looks OK, I'll add it and queue it up for upstream too. Tony -- 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