On Thu, Oct 22, 2020 at 12:03:19PM +0200, Jaroslav Kysela wrote:
Dne 22. 10. 20 v 11:50 Maxime Ripard napsal(a):
So, I'm not really sure what I'm supposed to do here. The drivers involved don't appear to be doing anything extraordinary, but the issues lockdep report are definitely valid too. What are the expectations in terms of context from ALSA when running the callbacks, and how can we fix it?
I think that you should set the non-atomic flag and wake up the workqueue or so from interrupt handler in this case. Call snd_pcm_period_elapsed() from the workqueue not the interrupt handler context.
Yeah, that was my first guess too. However, the DMA driver uses some kind of generic helpers using a tasklet, so getting rid of it would take some work and would very likely not be eligible for stable.
Maxime