Skip to content

dw_dmac: repair driver for use with AVR32 (AP7000)

Hein Tibosch lkml 5 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v4 Latest3 patches 7 repliesIn review
  2. v33 patches 0 repliesSuperseded
  3. v2 posting 2/22 patches 4 repliesSuperseded
Earlier versions · 2
VersionPostedPatchesRepliesStatus
v2 posting 1/22 patches0 repliesSuperseded
v12 patches13 repliesSuperseded

Patches in v4 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/3dw_dmac: make driver endianness configurabledrivers/dma/Kconfig drivers/dma/dw_dmac_regs.h+25 -00 replies
2/3dw_dmac: max_mem_width limits value for SRC/DST_TR_WID registerdrivers/dma/dw_dmac.c include/linux/dw_dmac.h+10 -66 replies
3/3avr32: at32ap700x: set DMA slave properties for MCI dw_dmacarch/avr32/mach-at32ap/at32ap700x.c+4 -01 reply

Reviews trailers per patch

All 3 patches have a Reviewed-by or Acked-by.

PatchViresh KumarArnd BergmannHans-Christian Egtvedt
1/3A-b A-b R-b
2/3A-b
3/3A-b

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 3 reviewers.

Read the v4 thread

Cover letter [PATCH v4 0/3] 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(-)