During discussion regarding card re-binding when components unregister and register back at https://lkml.org/lkml/2018/7/9/785 it was suggested that component framework can be added into core to provide this feature.
With this new changes the card will re-bind once the dependent component re-registers after unregistering. This works based on the match done from component name using component framework.
I have tested this patch with qdsp start-stop and module-load-unload usecase for more than 10000 times in loop on Qcom platforms.
Thanks, srini
Changes since v1: - Added new flag to enable/disable auto bind at card level, It is useful if machine driver/module is really removed/unloaded. Also to help cleanup the master component. Without this we will endup with a memory leak if the machine driver and memory associated with card are removed. - removed unregister from unbind callback. - updated match function as suggested by Vinod. - Added qdsp6 cleanup patches to this series.
Srinivas Kandagatla (5): ASoC: core: add support to card re-bind using component framework ASoC: qdsp6: q6afe-dai: remove component fw related code ASoC: qdsp6: q6asm-dai: remove component framework related code ASoC: qdsp6: q6routing: remove component framework related code ASoC: qcom: apq8096: remove component framework related code
include/sound/soc.h | 7 ++++ sound/soc/qcom/apq8096.c | 75 ++++------------------------------------ sound/soc/qcom/qdsp6/q6afe-dai.c | 34 +++--------------- sound/soc/qcom/qdsp6/q6asm-dai.c | 35 +++---------------- sound/soc/qcom/qdsp6/q6routing.c | 32 ++++------------- sound/soc/soc-core.c | 62 +++++++++++++++++++++++++++++++++ 6 files changed, 89 insertions(+), 156 deletions(-)