Re: [PATCH/RFC] dmaengine: add a slave parameter to __dma_request_channel()

From: Linus Walleij
Date: Tue Apr 03 2012 - 16:44:27 EST


On Fri, Mar 30, 2012 at 12:38 PM, Russell King - ARM Linux
<linux@xxxxxxxxxxxxxxxx> wrote:

> Actually, I think that's the key thing: the handshake lines should be
> the data involved in channel selection and nothing else - though as I've
> pointed out already, there's the complication for external MUXing between
> the DMA engine and the peripheral which makes that non-trivial.

I think you're onto something here, and it sounds it could be made
elegant to me.

As for muxed request signals, we would need to hook in some
cascading framework if we want it all generic.

On the Nomadik 8815 (which I now have up and running)
the system has two PL080 instances, each with 16 channels.
However the same request lines are *partly* routed to *both*
PL080 instances. This would be one of the things we could
solve with a line-oriented approach, say we have this set
of DMA lines, and then defined a group of lines per
DMAC instance, then by stating that this device has this
request line we can infer the suitable DMA slave engines
and select one with a free channel to run the transfer.

It does require some upfront code, but I'm sure it can be
made to work.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/