On 06/11/2012 04:57 PM, Mark Brown wrote:
On Mon, Jun 11, 2012 at 02:24:09PM +0100, Russell King - ARM Linux wrote:
What we need to do is to get rid of this idea that reporting the residue is optional for DMA engine drivers. Let's make it absolutely required in order to support cyclic transfers.
I tend to agree, if we are going to let things not implement this we need to provide an out of bounds way for them to signal that they don't support it and make it an error to use the interface at all. Otherwise the interface complexity increases as you get into special cases and so on. We only need to fix the drivers that are used with ASoC immediately and there's not so many of them which is easier than being forced to get every driver upgraded at once.
I think the previous discussions have made it clear that we don't want to make it optional for drivers to implement residue reporting for cyclic transfers.
Another option is to provide the current implementation of the pcm_pointer as a standalone legacy function, which can be used by the old platforms until their dmaengine drivers have cached up. And add a new residue-only implementation which will be mandatory for new drivers. That would make it more explicit that those platforms are sort of broken and need to be fixed. After all of them have been fixed the legacy pcm_pointer implementation can be removed.
I still think though that residue should never be reported as 0 for active cyclic transfers.
- Lars