different but related problem. I don't have access to OMAP2420 errata but
I believe this old workaround here is put for a reason but unfortunately
a wrong bit was typed and problem showed up only now.
v2: Issue is applicaple only to OMAP2420 and ES1.0 of OMAP2430. Thanks to
G, Manjunath Kondaiah <manjugk@ti.com> for noticing.
Signed-off-by: Jarkko Nikula <jhnikula@gmail.com>
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
---
arch/arm/plat-omap/dma.c | 5 +++--
arch/arm/plat-omap/include/plat/dma.h | 1 +
2 files changed, 4 insertions(+), 2 deletions(-)
@@ -999,8 +999,9 @@ void omap_start_dma(int lch)
* Errata: On ES2.0 BUFFERING disable must be set.
* This will always fail on ES1.0
*/
- if (cpu_is_omap24xx())
- l |= OMAP_DMA_CCR_EN;
+ if (cpu_is_omap2420() ||
+ (cpu_is_omap2430() && (omap_type() == OMAP2430_REV_ES1_0)))
+ l |= OMAP_DMA_CCR_BUFFERING_DISABLE;
l |= OMAP_DMA_CCR_EN;
dma_write(l, CCR(lch));
@@ -335,6 +335,7 @@
#define OMAP2_DMA_MISALIGNED_ERR_IRQ (1 << 11)
#define OMAP_DMA_CCR_EN (1 << 7)
+#define OMAP_DMA_CCR_BUFFERING_DISABLE (1 << 25)
#define OMAP_DMA_DATA_TYPE_S8 0x00
#define OMAP_DMA_DATA_TYPE_S16 0x01