[PATCH resent v2 1/2] ioport : add DEFINE_RES_DMA_SIZE_NAMED macro

Russell King - ARM Linux linux at arm.linux.org.uk
Sun Feb 5 07:34:15 EST 2012


On Sun, Feb 05, 2012 at 07:53:31PM +0800, Huang Shijie wrote:
> Does any one have any comments about this patch?

Yes.  Having a flat numberspace for DMAs invites the same problems that
we have with the flat IRQ numberspace when it comes to having multiple
DMA controllers.

With DMA engine drivers, channels are allocated using a match function
and unspecified match data.  While a linear numberspace can be used,
that sets itself up for clashing between different DMA controllers
especially if the numberspace overlaps.

What's missing from this patch set is an illustration of how this will
be used.

Another issue here is that having the peripheral drivers know about the
exact match function and what data the DMA engines require ties the
periperal drivers to their respective DMA engine.  One of the points of
DMA engine is to separate that knowledge, so that the same peripheral IP
can be re-used with different DMA engines.

To encode knowledge of the DMA engine into the peripheral driver basically
destroys the purpose of having a DMA engine API.

So, I believe that _if_ we are going down the path of using the DMA engine
API for our SoCs, we really don't want to invent a linear DMA numberspace
by putting DMA numbers into resources.



More information about the linux-arm-kernel mailing list