[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.64.1204122325580.15801@axis700.grange>
Date: Thu, 12 Apr 2012 23:33:28 +0200 (CEST)
From: Guennadi Liakhovetski <g.liakhovetski@....de>
To: Linus Walleij <linus.walleij@...aro.org>
cc: Russell King - ARM Linux <linux@....linux.org.uk>,
Vinod Koul <vinod.koul@...el.com>,
linux-kernel@...r.kernel.org,
Jassi Brar <jassisinghbrar@...il.com>,
Magnus Damm <magnus.damm@...il.com>,
Paul Mundt <lethal@...ux-sh.org>
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@....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/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists