10 Nov
2014
10 Nov
'14
7:58 p.m.
On Mon, Nov 10, 2014 at 12:32:20PM +0200, Peter Ujfalusi wrote:
- stat = mcasp_get_reg(mcasp, DAVINCI_MCASP_TXSTAT_REG);
- if (stat & XUNDRN) {
dev_warn(mcasp->dev, "Transmit buffer underflow\n");
substream = mcasp->substreams[SNDRV_PCM_STREAM_PLAYBACK];
if (substream) {
snd_pcm_stream_lock_irq(substream);
if (snd_pcm_running(substream))
snd_pcm_stop(substream, SNDRV_PCM_STATE_XRUN);
snd_pcm_stream_unlock_irq(substream);
}
- }
- mcasp_set_reg(mcasp, DAVINCI_MCASP_TXSTAT_REG, stat);
- return IRQ_HANDLED;
This will unconditionally report that any interrupt that gets delivered is handled and acknowledged regardles of what was reported. This isn't ideal, I'd at least expect a warning to be printed if we're handling interrupts we don't understand.