Hi Pierre-Louis
snd_soc_tplg_component_remove() is topology related cleanup function. The driver which added topology needed cleanup it, not by soc-core. Only topology user skl-pcm is calling it, there is no effect by this patch.
(snip)
--- a/sound/soc/soc-core.c +++ b/sound/soc/soc-core.c @@ -2870,8 +2870,6 @@ static int __snd_soc_unregister_component(struct device *dev) if (dev != component->dev) continue;
snd_soc_tplg_component_remove(component,
snd_soc_component_del_unlocked(component);SND_SOC_TPLG_INDEX_ALL);
(snip)
the SOF driver also calls snd_soc_tplg_component_remove(), so not sure what you meant by the comment?
Ahh, yes indeed.
My opinion is that driver who called _load() need to call _remove() under his responsibility.
Today, skl-pcm and topology are the user. They are calling both _load() and_remove(). Thus, I think soc-core don't need to call it ?
If we want to keep it as robustness, I want to have this comment, otherwise very confusable, because soc-core never call _load() but calling _remove()
/* For framework level robustness */ snd_soc_tplg_component_remove(...);
Thank you for your help !! Best regards --- Kuninori Morimoto