On Fri, Sep 14, 2012 at 12:28:28PM +0300, Peter Ujfalusi wrote:
I'm not sure about which flags should ASoC set for the two case we are going to have. I think it should be something like this:
unsigned long flags = DMA_CTRL_ACK;
if (!substream->runtime->no_period_wakeup) flags |= DMA_PREP_INTERRUPT;
That looks about right. I would encourage DMA_CTRL_ACK to always be set for slave stuff, because it will (according to my understanding of it) make the behaviour no different from the async_tx stuff... which is important when support for that stuff gets added.
We could, of course, set DMA_CTRL_ACK in the slave APIs beneath the user, but the user has access to tx->flags between the prepare and submit calls... And doing it in the submit callback will force DMA engine drivers to have two separate submission paths (as tx'es can't be acked at submission time.)