lkml.org 
[lkml]   [2012]   [Apr]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [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/


    \
     
     \ /
      Last update: 2012-04-12 23:35    [W:3.257 / U:0.116 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site