Hi Mark Current ALSA SoC is handling snd_soc_card related operation, but it is implmemented directly without using function/macro, and at random place. This patch-set creates new snd_soc_card_xxx() functions which handles snd_soc_card related operation, and implmement these at new soc-card.c. Kuninori Morimoto (19): ASoC: soc.h: convert bool to bit field for snd_soc_card ASoC: add soc-card.c ASoC: soc-card: move snd_soc_card_get_kcontrol() to soc-card ASoC: soc-card: move snd_soc_card_jack_new() to soc-card ASoC: soc-card: move snd_soc_card_set/get_drvdata() to soc-card ASoC: soc-card: move snd_soc_card_get_codec_dai() to soc-card ASoC: soc-card: move snd_soc_card_subclass to soc-card ASoC: soc-card: add snd_soc_card_suspend_pre() ASoC: soc-card: add snd_soc_card_suspend_post() ASoC: soc-card: add snd_soc_card_resume_pre() ASoC: soc-card: add snd_soc_card_resume_post() ASoC: soc-card: add probed bit field to snd_soc_card ASoC: soc-card: add snd_soc_card_probe() ASoC: soc-card: add snd_soc_card_late_probe() ASoC: soc-card: add snd_soc_card_remove() ASoC: soc-card: add snd_soc_card_set_bias_level() ASoC: soc-card: add snd_soc_card_set_bias_level_post() ASoC: soc-card: add snd_soc_card_add_dai_link() ASoC: soc-card: add snd_soc_card_remove_dai_link() include/sound/soc-card.h | 69 +++++++++++++ include/sound/soc.h | 53 ++-------- sound/soc/Makefile | 2 +- sound/soc/soc-card.c | 218 +++++++++++++++++++++++++++++++++++++++ sound/soc/soc-core.c | 71 ++++--------- sound/soc/soc-dapm.c | 8 +- sound/soc/soc-jack.c | 38 ------- 7 files changed, 320 insertions(+), 139 deletions(-) create mode 100644 include/sound/soc-card.h create mode 100644 sound/soc/soc-card.c -- 2.17.1