[PATCH v2 2/2] dmaengine: Add support for multiple descriptors for imx-dma.
javier Martin
javier.martin at vista-silicon.com
Thu Mar 1 05:28:18 EST 2012
Hi Sascha,
On 1 March 2012 11:19, Sascha Hauer <s.hauer at pengutronix.de> wrote:
> On Tue, Feb 28, 2012 at 05:08:18PM +0100, Javier Martin wrote:
>> dmaengine specifies the possibility that several descriptors
>> can be queued for transfer. It also indicates that tasklets
>> must be used for DMA callbacks.
>>
>> Signed-off-by: Javier Martin <javier.martin at vista-silicon.com>
>
> Have you tested this patch with audio?
Yes,
I have a test battery which tests audio, mmc, runs dmatest module and
a custom mem2mem video device I'm developing.
>
>> +static int imxdma_xfer_desc(struct imxdma_desc *d)
>> +{
>> + struct imxdma_channel *imxdmac = to_imxdma_chan(d->desc.chan);
>> + int ret;
>> +
>> + /* Configure and enable */
>> + switch (d->type) {
>> + case IMXDMA_DESC_MEMCPY:
>> + ret = imx_dma_config_channel(imxdmac->imxdma_channel,
>> + d->config_port, d->config_mem, 0, 0);
>> + if (ret < 0)
>> + return ret;
>> + ret = imx_dma_setup_single(imxdmac->imxdma_channel, d->src,
>> + d->len, d->dest, d->dmamode);
>> + if (ret < 0)
>> + return ret;
>> + break;
>> + case IMXDMA_DESC_CYCLIC:
>> + ret = imx_dma_setup_progression_handler(imxdmac->imxdma_channel,
>> + imxdma_progression);
>> + if (ret < 0)
>> + return ret;
>
> You fall through here. Is this intended? If yes, a comment would be good
> here.
Yes it is. cyclic is the same as slave_sg with the add-on of the
progression handler and a specific configuration of the sglist which
is done in 'imxdma_prep_dma_cyclic'.
Do you want me to send a new version with a comment on the matter?
--
Javier Martin
Vista Silicon S.L.
CDTUC - FASE C - Oficina S-345
Avda de los Castros s/n
39005- Santander. Cantabria. Spain
+34 942 25 32 60
www.vista-silicon.com
More information about the linux-arm-kernel
mailing list