25 Oct
2019
25 Oct
'19
7:54 a.m.
Hi
On Wed, Oct 23, 2019 at 03:29:49PM +0800, Shengjiu Wang wrote:
xrun may happen at the end of stream, the trigger->fsl_esai_trigger_stop maybe called in the middle of fsl_esai_hw_reset, this may cause esai in wrong state after stop, and there may be endless xrun interrupt.
What about fsl_esai_trigger_start? It touches ESAI_xFCR_xFEN bit that is being checked in the beginning of fsl_esai_hw_reset.
Could the scenario below be possible also?
- ESAI TX starts
- Xrun happens to TX
- Starting fsl_esai_hw_reset (enabled[TX] = true; enabled[RX] = false)
- ESAI RX starts
- Finishing fsl_esai_hw_reset (enabled[RX] is still false)
Good catch, this may possible. Will update in v2.
Best regards Wang shengjiu