[Sound-open-firmware] Questions about the DMA driver flow in SOF

Paul Olaru paul.olaru at nxp.com
Thu Aug 29 16:26:56 CEST 2019


I need to understand the general flow on how a DMA driver should
Work in SOF. In particular what each callback should do.

I get channel_get, channel_put, start, stop, pause, release (although
I don't quite get the nuance between stop and pause, or between
start and release; thankfully I hope it's not important if I treat them
the same). I get most of the others too, at least for the most part.

What I don't get at all is how the copy callback should work. In the
DW DMA driver it seems to just run the callback and do something
based on what the callback set in next, in HDA it seems to wait for
the host buffer to be full or empty (I think this one may be the more
intuitive one?) and the link HDA DMA seems to again just run the
callback.

What should the copy callback really do? Is it different between a
host DMA and a DAI DMA?


More information about the Sound-open-firmware mailing list