On Mon, 2012-02-06 at 09:47 +0100, Lars-Peter Clausen wrote:
On 02/04/2012 07:40 PM, Vinod Koul wrote:
[...]
And while at it, I believe for this use, terminate_all is too strong an API to be used, perhaps we should introduce a STOP call, which just aborts the current descriptor but doesn't free it, or possibly move to submitted state/queue. And yes terminate_all should used in scenarios like free callback. That way it should map properly to ALSA PCM operations.
Yes, a call that would allow us to reset/restart a transfer would be nice. While we are at it: Another nice addition, which would be good for sound drivers is a callback, which reports the transfer's current position in the datastream. This allows us to implement a pointer callback with sub-period granularity and also allow us to implement the 'no period wakeup' feature. A lot of DMA controllers support reporting this, but as far as I can see there is currently no way to export this information using dmaengine.
What makes you think it's missing :-)
Pls see device_tx_status callback. You can return the descriptor position using this and enable "no wake mode"
- Lars