Replies inline.
Shouldn't unpausing actually send COMP_TRIGGER_RELEASE?
Yeah, it should do - it's designed to mirror the ALSA trigger commands.
Somehow something is weirded out as in the IPC I now see that the trigger command does differ between pause and release. Funny enough, dai_comp_trigger receives command 3 for resume but then, without any extra error trace I get error -22. Will add more traces.
I am doing my own state checking but I suspect it may be wrong.
The FW does check pipeline and component state here, so please make sure any DMA has stopped and set the correct state before the stream is restarted.
I believe one of those checks fails even though I didn't even interact with the code in dai.c (AFAIK, I will check)
What should I look into, and is this actually correct behavior?
There is a state transition diagram in component.h iirc, so best to make sure that pause puts your pipeline in the correct state. I guess that STOP and START work fine ?
STOP and START work fine, barring the occasional IPC timeout issue which is caused by an unrelated problem on my platform.
Will do further checks and remove my manual state management (I trust the state management made by component_set_state even though it probably fails right there). Will reply if I uncover anything else.