Re: [PATCH 2/2] OMAP3: DMA: Errata: sDMA FIFO draining does not finish

Nishanth Menon
2010-10-01T08:21:15Z

Peter Ujfalusi had written, on 10/01/2010 01:39 AM, the following:
[...]
>
> Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
> ---
> arch/arm/plat-omap/dma.c | 35 +++++++++++++++++++++++++++++++-
> arch/arm/plat-omap/include/plat/dma.h | 3 ++
> 2 files changed, 36 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c
> index 7115884..590cb47 100644
> --- a/arch/arm/plat-omap/dma.c
> +++ b/arch/arm/plat-omap/dma.c
> @@ -30,6 +30,7 @@
> #include <linux/irq.h>
> #include <linux/io.h>
> #include <linux/slab.h>
> +#include <linux/delay.h>
>
> #include <asm/system.h>
> #include <mach/hardware.h>
> @@ -1018,8 +1019,38 @@ void omap_stop_dma(int lch)
> dma_write(0, CICR(lch));
>
> l = dma_read(CCR(lch));
> - l &= ~OMAP_DMA_CCR_EN;
> - dma_write(l, CCR(lch));
> + /* OMAP3 Errata: sDMA FIFO draining does not finish */
would be informative to give the iXYZ id as well for some of these
erratas might scale across processors.
> + if (cpu_is_omap34xx() && (l & OMAP_DMA_CCR_SEL_SRC_DST_SYNC)) {

does it make sense to use an dma_errata variable and populate it?
--
Regards,
Nishanth Menon