Re: [PATCHv5] DMAEngine: Define interleaved transfer request api
From: Jassi Brar
Date: Fri Oct 14 2011 - 07:52:01 EST
On 14 October 2011 13:02, Barry Song <21cnbao@xxxxxxxxx> wrote:
>> diff --git a/Documentation/dmaengine.txt b/Documentation/dmaengine.txt
>> index 94b7e0f..962a2d3 100644
>> --- a/Documentation/dmaengine.txt
>> +++ b/Documentation/dmaengine.txt
>> @@ -75,6 +75,10 @@ The slave DMA usage consists of following steps:
>> slave_sg - DMA a list of scatter gather buffers from/to a peripheral
>> dma_cyclic - Perform a cyclic DMA operation from/to a peripheral till the
>> operation is explicitly stopped.
>> + interleaved_dma - This is common to Slave as well as M2M clients. For slave
>> + address of devices' fifo could be already known to the driver.
>> + Various types of operations could be expressed by setting
>> + appropriate values to the 'dmaxfer_template' members.
>>
>> A non-NULL return of this transfer API represents a "descriptor" for
>> the given transaction.
>> @@ -89,6 +93,10 @@ The slave DMA usage consists of following steps:
>> struct dma_chan *chan, dma_addr_t buf_addr, size_t buf_len,
>> size_t period_len, enum dma_data_direction direction);
>>
>> + struct dma_async_tx_descriptor *(*device_prep_interleaved_dma)(
>> + struct dma_chan *chan, struct dmaxfer_template *xt,
>> + unsigned long flags);
>> +
>
> what if i want a cyclic interleaved transfer? i think the cyclic
> interleaved transfer is what i want for audio dma.
>
... we need to restore 'bool frm_irq' and add new 'bool cyclic' that
would replay the transfer(i.e, reset dma-pointers to src_start & dst_start)
after 'numf' frames have been transferred.
--
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/