Hi Pierre-Louis, again and again > > I'm using this commit > > > > bc7a9091e5b927ecc20dbb3bc07a5a09783fc27b > > ("ASoC: soc-core: add soc_unbind_dai_link()") > > Does it happen from soc-topology.c :: remove_link ? I can't test, but can this patch solve your issue? I guess topology related rtd free timing was changed by this balanceup. ----------- diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c index 1e8dd19..af89aad 100644 --- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -384,6 +384,9 @@ static void soc_free_pcm_runtime(struct snd_soc_pcm_runtime *rtd) if (!rtd) return; + /* need to sync the delayed work before releasing resources */ + flush_delayed_work(&rtd->delayed_work); + list_del(&rtd->list); /* diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c index 1c00119..9865a2d 100644 --- a/sound/soc/soc-pcm.c +++ b/sound/soc/soc-pcm.c @@ -2883,15 +2883,6 @@ static int dpcm_fe_dai_close(struct snd_pcm_substream *fe_substream) return ret; } -static void soc_pcm_private_free(struct snd_pcm *pcm) -{ - struct snd_soc_pcm_runtime *rtd = pcm->private_data; - - /* need to sync the delayed work before releasing resources */ - flush_delayed_work(&rtd->delayed_work); - snd_soc_pcm_component_free(pcm); -} - /* create a new pcm */ int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num) { @@ -3033,7 +3024,7 @@ int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num) return ret; } - pcm->private_free = soc_pcm_private_free; + pcm->private_free = snd_soc_pcm_component_free; pcm->no_device_suspend = true; out: dev_info(rtd->card->dev, "%s <-> %s mapping ok\n", Thank you for your help !! Best regards --- Kuninori Morimoto _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx https://mailman.alsa-project.org/mailman/listinfo/alsa-devel