2010-08-10 13:10:40

by Sascha Hauer

[permalink] [raw]
Subject: dmaengine cyclic transfers

Hi All,

I'm just looking into implementing the Freescale i.MX SDMA engine in the
dmaengine API. One usecase of this dma engine is sound. After some
digging I found the following commit:

commit d9de451989a88a2003ca06e524aca4665c0c7f06
Author: Hans-Christian Egtvedt <[email protected]>
Date: Wed Apr 1 15:47:02 2009 +0200

dw_dmac: add cyclic API to DW DMA driver

This could be very useful for the SDMA engine aswell. What are the
reasons this is not implemented in the generic dmaengine API but as
an extension to a specific driver? Should I also implement it like
this or isn't it better to extend the dmaengine itself?

Sascha

--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |


2010-08-10 21:17:51

by Linus Walleij

[permalink] [raw]
Subject: Re: dmaengine cyclic transfers

2010/8/10 Sascha Hauer <[email protected]>:

> Author: Hans-Christian Egtvedt <[email protected]>
> Date: ? Wed Apr 1 15:47:02 2009 +0200
>
> ? ?dw_dmac: add cyclic API to DW DMA driver
>
> This could be very useful for the SDMA engine aswell. What are the
> reasons this is not implemented in the generic dmaengine API but as
> an extension to a specific driver?

No reasons what I know. There was a similar code snippet in Peter
Pearse's PL08x driver as well, I just didn't know what to do with it.

> Should I also implement it like
> this or isn't it better to extend the dmaengine itself?

This is going to be generally useful, so please extend the DMAengine
if I have my say. I actually miss two functions from the engine:

1) Single buffer slave transfers (without sglist)
2) Cyclic buffers (esp good for audio)

The first I have a patch for, will repost.

Yours,
Linus Walleij