Skip to contentSkip to conversation

dw_dmac: repair driver for use with AVR32 (AP7000)

PATCH In review Hein Tibosch 1 participant 1 message Sep 2, 2012

lore
Share & tools
lore
#0 lore raw

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

v3 was based and tested on 3.5.2. the patches didn't apply to the latest kernel because dw_dmac.c has had some changes since then. Now it is based and tested on linux-3.6-rc4

From: Hein Tibosch <[email protected]>

v4: now based and tested on 3.6-rc4

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 |    4 ++++
 drivers/dma/Kconfig                 |   11 +++++++++++
 drivers/dma/dw_dmac.c               |   13 +++++++------
 drivers/dma/dw_dmac_regs.h          |   14 ++++++++++++++
 include/linux/dw_dmac.h             |    3 +++
 5 files changed, 39 insertions(+), 6 deletions(-)