Messages in this thread | | | Date | Thu, 12 Apr 2012 23:33:28 +0200 (CEST) | From | Guennadi Liakhovetski <> | Subject | Re: [PATCH/RFC] dmaengine: add a slave parameter to __dma_request_channel() |
| |
On Tue, 3 Apr 2012, Linus Walleij wrote:
> On Fri, Mar 30, 2012 at 12:38 PM, Russell King - ARM Linux > <linux@arm.linux.org.uk> 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.
Now, how do we proceed from here? Do I understand it right, that Russell would like to implement his ideas? Any idea when this is likely to happen? If not too soon, maybe we could / should work out an intermediate solution? How about, for example: I resubmit my patch, but don't claim it for general use, rather keep it sh-own (even though the generic part will have no hardware-specific code in it). Then we can implement both sh driver on top of that. Of course, the dubious use of the struct dma_chan::private field will remain. But it is there now anyway, so, this will not introduce any new uses of .private or extend the existing one. And once we have a generic way to request specific DMA channels, we'll switch the shdma driver(s) to it too.
Thanks Guennadi
> > 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 >
--- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/
| |