forked from Minki/linux
ASoC: sti: Use snd_pcm_stop_xrun() helper
The XRUN trigger from the driver should be done via snd_pcm_stop_xrun(). It fixes the missing stream locking as a gratis, too. Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
1a42e7e3af
commit
dc865fb9e7
@ -91,7 +91,7 @@ static irqreturn_t uni_player_irq_handler(int irq, void *dev_id)
|
||||
SET_UNIPERIF_ITM_BCLR_FIFO_ERROR(player);
|
||||
|
||||
/* Stop the player */
|
||||
snd_pcm_stop(player->substream, SNDRV_PCM_STATE_XRUN);
|
||||
snd_pcm_stop_xrun(player->substream);
|
||||
}
|
||||
|
||||
ret = IRQ_HANDLED;
|
||||
@ -105,7 +105,7 @@ static irqreturn_t uni_player_irq_handler(int irq, void *dev_id)
|
||||
SET_UNIPERIF_ITM_BCLR_DMA_ERROR(player);
|
||||
|
||||
/* Stop the player */
|
||||
snd_pcm_stop(player->substream, SNDRV_PCM_STATE_XRUN);
|
||||
snd_pcm_stop_xrun(player->substream);
|
||||
|
||||
ret = IRQ_HANDLED;
|
||||
}
|
||||
@ -138,7 +138,7 @@ static irqreturn_t uni_player_irq_handler(int irq, void *dev_id)
|
||||
dev_err(player->dev, "Underflow recovery failed\n");
|
||||
|
||||
/* Stop the player */
|
||||
snd_pcm_stop(player->substream, SNDRV_PCM_STATE_XRUN);
|
||||
snd_pcm_stop_xrun(player->substream);
|
||||
|
||||
ret = IRQ_HANDLED;
|
||||
}
|
||||
|
@ -65,7 +65,7 @@ static irqreturn_t uni_reader_irq_handler(int irq, void *dev_id)
|
||||
if (unlikely(status & UNIPERIF_ITS_FIFO_ERROR_MASK(reader))) {
|
||||
dev_err(reader->dev, "FIFO error detected\n");
|
||||
|
||||
snd_pcm_stop(reader->substream, SNDRV_PCM_STATE_XRUN);
|
||||
snd_pcm_stop_xrun(reader->substream);
|
||||
|
||||
ret = IRQ_HANDLED;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user