On Tue, Sep 29, 2015 at 10:43:17PM +0800, yitian wrote: > Designware I2S uses tx empty and rx available signals as the DMA > handshaking signals. during music playing, if XRUN occurs, > i2s_stop() function will be executed and both tx and rx irq are > masked, when music continues to be played, i2s_start() is executed > but both tx and rx irq are not unmasked which cause I2S stop > sending DMA handshaking signal to DMA controller, and it finally > causes music playing will be stopped once XRUN occurs for the first > time.
I'm a bit concerned about how this code ever worked given the above description - is there some race condition which allows things to work if we're lucky?
signature.asc
Description: Digital signature

