Go to file
Iuliana Prodan 1fa1001e24 dai: correct the order for DAI and DMA start/stop
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>
2021-03-15 20:02:17 +02:00
.github check patch: ignore UNKNOWN_COMMIT_ID in shallow clone 2021-03-11 13:15:31 +02:00
doc sof.doxygen.in: change ../test to @top_srcdir@/test 2021-01-27 11:00:04 +00:00
installer installer: fix incremental builds 2021-03-11 16:52:29 +00:00
keys Move signing key pair from rimage/ up one level 2020-05-13 10:16:04 +01:00
rimage@d1f91efdc1 rimage: Update to commit d1f91efdc1 2020-12-09 11:06:31 +00:00
scripts scripts: remove XTOBJDUMP and XTOBJCOPY unused since CMake / Jan 2019 2021-03-11 13:15:31 +02:00
smex ipc: Remove user_abi_version from mailbox 2020-10-12 11:41:11 +01:00
src dai: correct the order for DAI and DMA start/stop 2021-03-15 20:02:17 +02:00
test demux: fix demux look up table preparation 2021-02-17 10:31:55 +00:00
tools Topology: Change minimum bus clock to 2.4 MHz for 48 kHz DMIC DAI 2021-03-08 12:14:26 +00:00
zephyr Revert "zephyr: fixed cached rimage path" 2021-02-11 20:19:15 +00:00
.gitignore gitignore: Add checkpatch temporary file to gitignore 2020-10-22 13:05:23 +01:00
.gitmodules Add rimage as a git submodule 2020-05-13 10:16:04 +01:00
.travis.yml .travis.yml: build Sue Creek 2021-01-18 14:34:04 +00:00
CMakeLists.txt cmake: generate the complete .config at configuration time. 2021-03-03 22:33:53 +00:00
CODEOWNERS CODEOWNERS: /.github/ += @zrombel 2021-02-01 15:38:45 +00:00
Kconfig ipc: debug: Add KConfig to conditionally compile memory scan feature 2020-10-06 11:35:04 +01:00
LICENCE Remove rimage from source tree 2020-05-13 10:16:04 +01:00
README.md .github: rename workflow from "Github Action CI" to "Github Actions" 2021-01-28 13:20:22 +00:00

README.md

Sound Open Firmware

Status

GitHub Actions Build Status Gitter chat IRC chat

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