• Jassi Brar's avatar
    DMAEngine: Define interleaved transfer request api · b14dab79
    Jassi Brar authored
    Define a new api that could be used for doing fancy data transfers
    like interleaved to contiguous copy and vice-versa.
    Traditional SG_list based transfers tend to be very inefficient in
    such cases as where the interleave and chunk are only a few bytes,
    which call for a very condensed api to convey pattern of the transfer.
    This api supports all 4 variants of scatter-gather and contiguous transfer.
    
    Of course, neither can this api help transfers that don't lend to DMA by
    nature, i.e, scattered tiny read/writes with no periodic pattern.
    
    Also since now we support SLAVE channels that might not provide
    device_prep_slave_sg callback but device_prep_interleaved_dma,
    remove the BUG_ON check.
    Signed-off-by: default avatarJassi Brar <jaswinder.singh@linaro.org>
    Acked-by: default avatarBarry Song <Baohua.Song@csr.com>
    [renamed dmaxfer_template to dma_interleaved_template
     did fixup after the enum dma_transfer_merge]
    Signed-off-by: default avatarVinod Koul <vinod.koul@linux.intel.com>
    b14dab79
dmaengine.txt 7.56 KB