[Sound-open-firmware] Questions about the DAI DMA/pipeline flow

Paul Olaru paul.olaru at nxp.com
Thu Sep 5 09:03:07 CEST 2019


Hello, I'm currently having issues with implementing the DAI DMA driver on my platform.
Whenever the DAI component calls start(), the preload transfer finishes too quickly and
The callback, pipeline_schedule_copy() (called by dai_cb), encounters an issue about the copy
task being already queued. Then I see that the copy task doesn't run again (the scheduler
must believe it's already done working and that extra schedule() needs to be ignored).

What should be the way to go from this? Should I investigate why the preload finishes
too quickly? Should I do some hacks to delay the finishing of the preload? Should I tweak
the buffer sizes (the current transfer buffer size is exactly 384 bytes, which works out as
48 samples per channel, 2 channels, 4 byte wide samples, AKA exactly 1ms).

Should I try to figure out a way to make the scheduler run pipeline_copy() again after the
current (preload) one finishes?


More information about the Sound-open-firmware mailing list