diff options
author | Takashi Iwai <tiwai@suse.de> | 2018-07-04 10:01:45 -0400 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2018-07-04 10:41:35 -0400 |
commit | dc865fb9e7c2251c9585ff6a7bf185d499db13e4 (patch) | |
tree | 110d3abcc05ded863ae134543df932e2a4492d51 | |
parent | 1a42e7e3aff1aa4789378020318dff7432317d25 (diff) |
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>
-rw-r--r-- | sound/soc/sti/uniperif_player.c | 6 | ||||
-rw-r--r-- | sound/soc/sti/uniperif_reader.c | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/sound/soc/sti/uniperif_player.c b/sound/soc/sti/uniperif_player.c index d8b6936e544e..313dab2857ef 100644 --- a/sound/soc/sti/uniperif_player.c +++ b/sound/soc/sti/uniperif_player.c | |||
@@ -91,7 +91,7 @@ static irqreturn_t uni_player_irq_handler(int irq, void *dev_id) | |||
91 | SET_UNIPERIF_ITM_BCLR_FIFO_ERROR(player); | 91 | SET_UNIPERIF_ITM_BCLR_FIFO_ERROR(player); |
92 | 92 | ||
93 | /* Stop the player */ | 93 | /* Stop the player */ |
94 | snd_pcm_stop(player->substream, SNDRV_PCM_STATE_XRUN); | 94 | snd_pcm_stop_xrun(player->substream); |
95 | } | 95 | } |
96 | 96 | ||
97 | ret = IRQ_HANDLED; | 97 | ret = IRQ_HANDLED; |
@@ -105,7 +105,7 @@ static irqreturn_t uni_player_irq_handler(int irq, void *dev_id) | |||
105 | SET_UNIPERIF_ITM_BCLR_DMA_ERROR(player); | 105 | SET_UNIPERIF_ITM_BCLR_DMA_ERROR(player); |
106 | 106 | ||
107 | /* Stop the player */ | 107 | /* Stop the player */ |
108 | snd_pcm_stop(player->substream, SNDRV_PCM_STATE_XRUN); | 108 | snd_pcm_stop_xrun(player->substream); |
109 | 109 | ||
110 | ret = IRQ_HANDLED; | 110 | ret = IRQ_HANDLED; |
111 | } | 111 | } |
@@ -138,7 +138,7 @@ static irqreturn_t uni_player_irq_handler(int irq, void *dev_id) | |||
138 | dev_err(player->dev, "Underflow recovery failed\n"); | 138 | dev_err(player->dev, "Underflow recovery failed\n"); |
139 | 139 | ||
140 | /* Stop the player */ | 140 | /* Stop the player */ |
141 | snd_pcm_stop(player->substream, SNDRV_PCM_STATE_XRUN); | 141 | snd_pcm_stop_xrun(player->substream); |
142 | 142 | ||
143 | ret = IRQ_HANDLED; | 143 | ret = IRQ_HANDLED; |
144 | } | 144 | } |
diff --git a/sound/soc/sti/uniperif_reader.c b/sound/soc/sti/uniperif_reader.c index ee0055e60852..7b63d35ef428 100644 --- a/sound/soc/sti/uniperif_reader.c +++ b/sound/soc/sti/uniperif_reader.c | |||
@@ -65,7 +65,7 @@ static irqreturn_t uni_reader_irq_handler(int irq, void *dev_id) | |||
65 | if (unlikely(status & UNIPERIF_ITS_FIFO_ERROR_MASK(reader))) { | 65 | if (unlikely(status & UNIPERIF_ITS_FIFO_ERROR_MASK(reader))) { |
66 | dev_err(reader->dev, "FIFO error detected\n"); | 66 | dev_err(reader->dev, "FIFO error detected\n"); |
67 | 67 | ||
68 | snd_pcm_stop(reader->substream, SNDRV_PCM_STATE_XRUN); | 68 | snd_pcm_stop_xrun(reader->substream); |
69 | 69 | ||
70 | ret = IRQ_HANDLED; | 70 | ret = IRQ_HANDLED; |
71 | } | 71 | } |