[lkml]   [2012]   [Mar]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH/RFC] dmaengine: add a slave parameter to __dma_request_channel()
On Wed, Mar 7, 2012 at 10:30 AM, Russell King - ARM Linux
<> wrote:

> The code required to support slave device transfers is very much the same
> for each driver (that's partly because I'm writing my drivers in the same
> way.)  Essentially, slave channels aren't physical channels themselves,
> but virtual channels which get assigned to physical channels at some point.

Actually in the COH901318 driver each device has a dedicated physical
channel. It looks like some hardware engineer took the PL080 VHDL
code and just copy/pasted as many instances of the channel engine as
was needed to provide a unique channel for each device.

I've been scratching my head over that when I've thought about
merging the two drivers, because the register set and LLI is actually
very similar.

> I would really like to see some common infrastructure for handling these
> virtual channels so I don't have to write yet another version of that code,
> and that's something I'll be working on.

Please go ahead with this! We have the same problem in the
DMA40 driver basically, but in this thing the hardware actually takes
care of the virtual-over-physical channel arbitration if you want to,
which makes the "virtual" channels have physical registers and
confusing things a bit.

(However in the DMA40 case it may be some point in actually trying to
just use the physical channels in that driver and have the dmaengine core
arbitrate these under some circumstances, we already have some
special flags to lock down certain physical channels.)

Linus Walleij
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

 \ /
  Last update: 2012-03-07 10:57    [W:0.115 / U:1.292 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site