10 Jan
2017
10 Jan
'17
8:38 a.m.
On 01/10/2017 05:23 AM, Matt Ranostay wrote:
Yeah I can reproduce the issue you are mentioning. Anyone have a suggestion how on to resolve? Guessing the QoS function calls need to be in an atomic context and the omap_mcbsp_* functions can sleep
I think it is the other way around: we call a sleeping function from atomic context. pcm_trigger is atomic.
Most probably we should add the .prepare callback to mcbsp_dai_ops and do the QoS update which is done in omap_mcbsp_start() there. The things we do in omap_mcbsp_stop() then can be moved to omap_mcbsp_dai_shutdown().
I think the code would handle cases when user space stops the stream, re-configures it and starts it with different parameters w/o closing it.
--
Péter