mirror of https://github.com/thesofproject/sof.git
1fa1001e24
To stop/suspend an active DMA channel: 1. Stop the DMA service request at the peripheral first (stop the DAI); 2. Disable the hardware service request on the appropriate DMA channel. For start/resume: 1. Enable the DMA service request on the appropriate channel; 2. Enable the DMA service request at the peripheral (enable DAI). When the start/stop order for DMA and DAI is different, on multiple start/stop runs for playback or record or combined, we get an underrun/overflow. That's because the DAI makes a DMA request, before the DMA channel is enabled. Some platforms cannot just simple disable DMA channel during the transfer, because it will hang the whole DMA controller. Therefore, for DMA_SUSPEND_DRAIN, stop the DMA first and let the DAI drain the FIFO in order to stop the channel as soon as possible. Fixes: #3809 Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com> |
||
---|---|---|
.github | ||
doc | ||
installer | ||
keys | ||
rimage@d1f91efdc1 | ||
scripts | ||
smex | ||
src | ||
test | ||
tools | ||
zephyr | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
CMakeLists.txt | ||
CODEOWNERS | ||
Kconfig | ||
LICENCE | ||
README.md |
README.md
Sound Open Firmware
Status
Documentation
See docs
Running the tests
See unit testing documentation
Deployment
TODO: Add additional notes about how to deploy this on a live system
Contributing
See Contributing to the Project
License
This project is licensed under the BSD Clause 3 - see the LICENCE file for details