Re: [RESEND PATCH v2 1/1] ASoC: dwc: fix dma stop transferring issue

From: Mark Brown
Date: Wed Sep 30 2015 - 14:22:41 EST


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?

Attachment: signature.asc
Description: Digital signature