Re: [PATCH] dmaengine: add dmanegine slave map api's

From: Linus Walleij
Date: Tue Sep 18 2012 - 08:20:50 EST


On Tue, Sep 18, 2012 at 5:18 AM, Vinod Koul <vinod.koul@xxxxxxxxxxxxxxx> wrote:
> On Mon, 2012-09-17 at 22:57 +0100, Russell King - ARM Linux wrote:
>>
>> Except that we expose one 'channel' per mux setting, so as far as DMA
>> engine goes, the mux number _is_ the channel number - which is the same
>> approach taken by the PL08x and sa11x0 DMA engine drivers. It is the
>> only sane approach to dealing with N hardware channels vs >>N clients.
> Sure that makes things easy in dmaengine code.
>
> So we allocate channel number given by slave id (if set) or first free
> channel. This would also mean people need to update their drivers to use
> virtual channel which indeed is a good idea :)

Yeah, then just to complicate the world the DMA40 has "logical channels",
which is basically hardware-virtual channels multiplexed over physical
channels (so the hardware does some round-robin and queueing).

So we're actually a bit like:
clients = logical HW channels > physical channels
...

And since using logical channels has a performance impact we
have hacks in place to lock down a physical channel for a certain
client like MMC.

But we're probably the odd exception here so nevermind.
One day we may test to rip out the logical channel handling and
use Russell's virtual channel lib to run the show as an experiment.

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/