diff options
author | Takashi Iwai <tiwai@suse.de> | 2021-02-06 23:36:53 +0300 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2021-02-08 18:00:28 +0300 |
commit | 29bb274e94974669acb5186a75538f20df1508b6 (patch) | |
tree | c7a38182f4688ff066763c2b545882d8dac43069 /sound/core/pcm_local.h | |
parent | 257d2d7e9e798305d65825cb82b0a7d1c0511e89 (diff) | |
download | linux-29bb274e94974669acb5186a75538f20df1508b6.tar.xz |
ALSA: pcm: Call sync_stop at disconnection
The PCM core should perform the sync for the pending stop operations
at disconnection. Otherwise it may lead to unexpected access.
Currently the old user of sync_stop, USB-audio driver, has its own
sync, so this isn't needed, but it's better to guarantee the sync in
the PCM core level.
This patch adds the missing sync_stop call at PCM disconnection
callback. It also assures the IRQ sync if it's specified in the
card. snd_pcm_sync_stop() is slightly modified to be called also for
any PCM substream object now.
Fixes: 1e850beea278 ("ALSA: pcm: Add the support for sync-stop operation")
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20210206203656.15959-2-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/core/pcm_local.h')
-rw-r--r-- | sound/core/pcm_local.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sound/core/pcm_local.h b/sound/core/pcm_local.h index 17a1a5d87098..b3e8be5aeafb 100644 --- a/sound/core/pcm_local.h +++ b/sound/core/pcm_local.h @@ -63,6 +63,7 @@ static inline void snd_pcm_timer_done(struct snd_pcm_substream *substream) {} void __snd_pcm_xrun(struct snd_pcm_substream *substream); void snd_pcm_group_init(struct snd_pcm_group *group); +void snd_pcm_sync_stop(struct snd_pcm_substream *substream, bool sync_irq); #ifdef CONFIG_SND_DMA_SGBUF struct page *snd_pcm_sgbuf_ops_page(struct snd_pcm_substream *substream, |