Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dai: stop DMA unconditionally on xrun #189

Merged
merged 1 commit into from Aug 4, 2018

Conversation

tlauda
Copy link
Contributor

@tlauda tlauda commented Aug 2, 2018

Stops DMA unconditionally on xrun without waiting.
Data flush is not needed as pipeline will go through
prepare and restart anyway. Waiting here during xrun
recovery with multiple tasks running causes interrupt
stack overflow. Waiti instruction lowers irq level to
0, which allows to run multiple scheduled tasks in the
same time on the same irq level and ends in DSP panic.

Signed-off-by: Tomasz Lauda tomasz.lauda@linux.intel.com

Stops DMA unconditionally on xrun without waiting.
Data flush is not needed as pipeline will go through
prepare and restart anyway. Waiting here during xrun
recovery with multiple tasks running causes interrupt
stack overflow. Waiti instruction lowers irq level to
0, which allows to run multiple scheduled tasks in the
same time on the same irq level and ends in DSP panic.

Signed-off-by: Tomasz Lauda <tomasz.lauda@linux.intel.com>
@tlauda
Copy link
Contributor Author

tlauda commented Aug 3, 2018

@lgirdwood Updated the stop sequence to match the one, we've been using in cAVS platforms for years. We've been always stopping DMA channels asynchronously and never observed any problems after that. Anyway, I think previously in SOF we've never really stopped DMA channels with empty FIFO, because DMA was running in realtime mode and has never waited for clearing DONE bit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants