linux/arch/arm/plat-omap
Russell King 354535845f ARM: OMAP: fix DMA vs memory ordering
Using coherent DMA memory with the OMAP DMA engine results in
unpredictable behaviour due to memory ordering issues; as things stand,
there is no guarantee that data written to coherent DMA memory will be
visible to the DMA hardware.

This is because the OMAP dma_write() accessor contains no barriers,
necessary on ARMv6 and above.  The effect of this can be seen in comments
in the OMAP serial driver, which incorrectly talks about cache flushing
for the coherent DMA stuff.

Rather than adding barriers to the accessors, add it in the DMA support
code just before we enable DMA, and just after we disable DMA.  This
avoids having barriers for every DMA register access.

Acked-by: Tony Lindgren <tony@atomide.com>
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-04-23 16:54:21 +01:00
..
include/plat Fix regression for bad uart muxing and oops when PM is not set. 2012-04-18 21:24:00 -07:00
Kconfig ARM: fix __io macro for PCMCIA 2012-04-05 11:29:55 -07:00
Makefile OMAP: mcbsp: Move core driver under sound/soc/omap 2012-03-12 13:34:19 +00:00
clock.c ARM: OMAP: clock: cleanup CPUfreq leftovers, fix build errors 2012-04-14 17:49:07 -07:00
common.c Merge commit 'v3.3-rc6' 2012-03-06 13:20:31 +02:00
counter_32k.c ARM: OMAP: Remove plat/io.h by splitting it into mach/io.h and mach/hardware.h 2012-02-24 10:34:35 -08:00
debug-devices.c
debug-leds.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
devices.c ARM: Add arm_memblock_steal() to allocate memory away from the kernel 2012-01-13 15:02:35 +00:00
dma.c ARM: OMAP: fix DMA vs memory ordering 2012-04-23 16:54:21 +01:00
dmtimer.c ARM: global cleanups 2012-03-27 16:03:32 -07:00
fb.c ARM: OMAP2+: Fix compile error when FB_OMAP2 is not set 2012-03-09 09:53:21 +02:00
i2c.c ARM: OMAP: I2C: Fix omap_register_i2c_bus() return value on success 2011-11-04 17:41:07 -07:00
mailbox.c ARM: OMAP: mailbox: trivial whitespace fix 2012-03-05 16:11:03 -08:00
mux.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
ocpi.c
omap-pm-noop.c ARM: OMAP: omap_device: remove omap_device_parent 2012-03-05 15:38:02 -08:00
omap_device.c ARM: device tree work 2012-03-27 16:47:35 -07:00
sram.c ARM: OMAP: sram: fix BUG in dpll code for !PM case 2012-04-17 10:21:58 -07:00
sram.h
usb.c ARM: OMAP: Remove plat/io.h by splitting it into mach/io.h and mach/hardware.h 2012-02-24 10:34:35 -08:00