Skip to contentSkip to conversation

dw_dmac: repair driver for use with AVR32 (AP7000)

PATCH Superseded Hein Tibosch 1 participant 1 message Sep 1, 2012

v3 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

v3 cover dw_dmac: repair driver for use with AVR32 (AP7000)

@Andrew: This is the third and hopefully final version of the dw_dmac patches. Now the small Atmel patch is included because of its dependency on the second dw_dmac patch. Sorry for the earlier confusion.

After some recent changes to dw_dmac, the driver got broken for the AVR32 platform for several reasons:

The accessors to i/o memory had become little-endian.
The maximum transfer width on the memory side was increased from 32 to 64 bits. This led to undefined behavior on the avr32 platform.

These patches will repair the driver so it can be used again on avr32. For other users of dw_dmac (ARM platform), nothing will change and no code has to be adapted.

The small patch for Atmel (at32ap700x.c) is included here because of its dependency on the second dw_dmac patch.

Thanks to all for reviewing, both people from Atmel and Linaro

Hein Tibosch (3):
dw_dmac: make driver endianness configurable
dw_dmac: max_mem_width limits value for SRC/DST_TR_WID register
avr32: at32ap700x: set DMA slave properties for MCI dw_dmac

 arch/avr32/mach-at32ap/at32ap700x.c |    5 +++++
 drivers/dma/Kconfig                 |   11 +++++++++++
 drivers/dma/dw_dmac.c               |   10 +++++++---
 drivers/dma/dw_dmac_regs.h          |   14 ++++++++++++++
 include/linux/dw_dmac.h             |    3 +++
 5 files changed, 40 insertions(+), 3 deletions(-)