RE: [PATCH] ARM: OMAP3: DMA: Fix for sDMA Errata 1.113

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----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

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux