[PATCH 0/5] ARM: PrimeCell DMA patches v3
Linus Walleij
linus.walleij at stericsson.com
Mon Mar 8 08:51:53 EST 2010
This is a third iteration of the PrimeCell DMA API on top of the
generic DMA devices (sibling to the DMA engine). It's based on
the suggestion from Russell to try and define a specific extension
subset for DMA devices.
Dan: if you prefer that any of these API:s go into the generic DMA
devices interface as optional calls or so, tell me and I'll
rewrite the patches with a DMA devices extension instead.
Now I have also implemented PL011 UART support so if you want to
scrutinize unreviewed material, go for patch number 4. The number
of extension API:s have gone from one to three. (See patch 1.)
I'm persisting on creating an interface on top of the DMA
devices since it is the best I can come up with for everone
else wanting to use DMA with these PrimeCells, the alternatives
as I see it would be to either:
Move the API extensions from <linux/amba/dma.h> to <plat/dma.h>
and rename config symbols accordingly, so the inserted DMA
code chunks will be for U300, Nomadik and Ux500 platforms only.
This means that PL011 carries a huge platform-specific #ifdef.
We will use DMA engine for COH 901 318 and also the Ux500 DMA
hardware named DMA40.
Or: Copy and fork mmci.c and amba-pl011.c into platform-specific
versions sharing much code with the original drivers. (Leading
to double bugfixing etc...)
None of the alternatives are very attractive, so I think this
is the most elegant solution for the time being, given that
other users like PL080 also can provide DMA engines. I think
this will be possible.
I will update the versions in the patch tracker soonish as
well unless there is some need of rewriting this.
Yours,
Linus Walleij
More information about the linux-arm-kernel
mailing list