[RFC] dmaengine: add new api for preparing simple slave transfer
Jassi Brar
jassisinghbrar at gmail.com
Thu Jun 9 14:58:25 EDT 2011
On Thu, Jun 9, 2011 at 6:09 PM, Raju, Sundaram <sundaram at ti.com> wrote:
> Generic buffer description:
> A generic buffer can be split into number of frames which contain number of chunks inside them. The frames need not be contiguous, nor do the chunks inside a frame.
>
> -------------------------------------------------------------------
> | Chunk 0 |ICG| Chunk 1 |ICG| ... |ICG| Chunk n | Frame 0
> -------------------------------------------------------------------
> | Inter Frame Gap |
> -------------------------------------------------------------------
> | Chunk 0 |ICG| Chunk 1 |ICG| ... |ICG| Chunk n | Frame 1
> -------------------------------------------------------------------
> | Inter Frame Gap |
> -------------------------------------------------------------------
> | ........ |
> -------------------------------------------------------------------
> | Inter Frame Gap |
> -------------------------------------------------------------------
> | Chunk 0 |ICG| Chunk 1 |ICG| ... |ICG| Chunk n | Frame m
> -------------------------------------------------------------------
IIUC the above figure, the work done by DMA controller remains the
same, either by
passing this as a transfer of the new type or as a normal sg-list - unless
the DMAC driver attempts to reorder the transfers or the DMAC h/w
natively supports
some form of sg-list.
For DMACs, that have no special support, different representation
wouldn't make a
difference.
And if the DMAC does support the kind of fancy scatter-gather, it
should be possible for
the dma api driver to analyze the submitted 'normal' sg-list and
program the transfers at one go.
Besides, it should be possible to have a 'template' sequence of
requests prepared
already because usually, for above mentioned scenario, the parameters
don't change across
items in a list.
More information about the linux-arm-kernel
mailing list