Hi Mark These are very big patch-set, but basically just cleanup for simple-card driver. Now, we have simple-card driver, but it is not simple today. I would like to cleanup this. And Renesas already have rsrc-card driver which is supporting DPCM, and it is based on simple-card. This measn rsrc-card and simple-card are very similar. Thus, I would like to share these code between rsrc-card and simple-card. This rsrc-card is only used from Renesas (actually, there is no upstream user, current user is only me, by local). But this is not Renesas special driver, I can say it is DPCM version of simple-card. I would like to open it for all of ALSA people. But, not merge simple-card <-> rsrc-card, to avoid diffcult future maintenance. Thus, rsrc-card will be simple-dpcm-audio-card, and we can maintenance both simple-card, and simple-dpcm-card. I'm not sure this is good nameing. And finally, we will need HDMI sound support which uses graph base probing. I know it needs more discussion with V4L2 people. But in my understanding, basically, we can reuse simple-card base feature/function on graph base driver somehow. I would like to standardize simple card style, and use/share it with graph driver too. It will be simple-graph-card ? I'm not sure. But I think we can share same code, and can avoid development from 0. These patch are for it. Basically, it pickups common function/feature from simple-card and rsrc-card, and standardize each feature/parse/init etc in simple-card-core. Because of this patch-set, "simple-card" become "simple" again :) I tested these (simple-card, rsrc-card) on my lager, Salvator boards. But I couldn't test some feature. I hope test it on many environment. 1) - 4) cleanup for these patch-set 5) - 19) pickuped common function/feature and put it to simple-card-core 20) - 32) use simple-card-core on simple-card 33) - 46) use simple-card-core on rsrc-card 47) - 49) rename rsrc-card to simple-dpcm-audio-card Kuninori Morimoto (49): 1) ASoC: simple-card: remove duplicate header 2) ASoC: rsrc-card: remove duplicate header 3) ASoC: rsrc-card: remove unused dai_num 4) ASoC: simple-card: platform also uses asoc_simple_card_sub_parse_of() 5) ASoC: add new simple-card-core.c 6) ASoC: simple-card-core: add asoc_simple_card_parse_tdm() 7) ASoC: simple-card-core: add asoc_simple_card_parse_dailink_name() 8) ASoC: simple-card-core: add asoc_simple_card_parse_card_name() 9) ASoC: simple-card-core: add asoc_simple_card_parse_card_prefix() 10) ASoC: simple-card-core: add asoc_simple_card_parse_card_widgets() 11) ASoC: simple-card-core: add asoc_simple_card_parse_card_widgets() 12) ASoC: simple-card-core: add asoc_simple_card_parse_clk() 13) ASoC: simple-card-core: add asoc_simple_card_parse_endpoint() 14) ASoC: simple-card-core: add asoc_simple_card_parse_dpcm() 15) ASoC: simple-card-core: add asoc_simple_card_init_jack() 16) ASoC: simple-card-core: add asoc_simple_card_init_dai() 17) ASoC: simple-card-core: add asoc_simple_card_canonicalize_dailink() 18) ASoC: simple-card-core: add asoc_simple_card_canonicalize_cpu() 19) ASoC: simple-card-core: add asoc_simple_card_clean_reference() 20) ASoC: simple-card: use asoc_simple_card_parse_daifmt() 21) ASoC: simple-card: use asoc_simple_card_parse_clk() 22) ASoC: simple-card: use asoc_simple_card_parse_endpoint() 23) ASoC: simple-card: use asoc_simple_card_parse_tdm() 24) ASoC: simple-card: use asoc_simple_card_parse_card_name() 25) ASoC: simple-card: use asoc_simple_card_parse_card_route() 26) ASoC: simple-card: use asoc_simple_card_parse_card_widgets() 27) ASoC: simple-card: use asoc_simple_card_parse_dailink_name() 28) ASoC: simple-card: use asoc_simple_card_init_jack() 29) ASoC: simple-card: use asoc_simple_card_init_dai() 30) ASoC: simple-card: use asoc_simple_card_canonicalize_dailink() 31) ASoC: simple-card: use asoc_simple_card_canonicalize_cpu() 32) ASoC: simple-card: use asoc_simple_card_clean_reference() 33) ASoC: rsrc-card: use asoc_simple_card_parse_daifmt() 34) ASoC: rsrc-card: use asoc_simple_card_parse_dailink_name() 35) ASoC: rsrc-card: use asoc_simple_dai instead of rsrc_card_dai 36) ASoC: rsrc-card: use asoc_simple_card_parse_clk() 37) ASoC: rsrc-card: use asoc_simple_card_parse_endpoint() 38) ASoC: rsrc-card: use asoc_simple_card_parse_card_name() 39) ASoC: rsrc-card: use asoc_simple_card_parse_card_prefix() 40) ASoC: rsrc-card: use asoc_simple_card_parse_dpcm() 41) ASoC: rsrc-card: use asoc_simple_card_parse_card_route() 42) ASoC: rsrc-card: use asoc_simple_card_parse_tdm() 43) ASoC: rsrc-card: use asoc_simple_card_init_dai() 44) ASoC: rsrc-card: use asoc_simple_card_canonicalize_cpu() 45) ASoC: rsrc-card: use asoc_simple_card_canonicalize_dailink() 46) ASoC: rsrc-card: use asoc_simple_card_clean_reference() 47) ASoC: rsrc-card: rename rsrc-card to simple-dpcm-card phase1 48) ASoC: rsrc-card: rename rsrc-card to simple-dpcm-card phase2 49) ASoC: rsrc-card: rename rsrc-card to simple-dpcm-card phase3 Documentation/devicetree/bindings/sound/renesas,rsrc-card.txt | 75 -------------- Documentation/devicetree/bindings/sound/simple-dpcm-card.txt | 79 +++++++++++++++ include/sound/simple_card.h | 11 +-- include/sound/simple_card_core.h | 106 ++++++++++++++++++++ sound/soc/generic/Kconfig | 10 ++ sound/soc/generic/Makefile | 4 + sound/soc/generic/simple-card-core.c | 409 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sound/soc/generic/simple-card.c | 359 ++++++++++++------------------------------------------------------ sound/soc/generic/simple-dpcm-card.c | 330 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ sound/soc/sh/Kconfig | 5 - sound/soc/sh/rcar/Makefile | 3 - sound/soc/sh/rcar/rsrc-card.c | 529 -------------------------------------------------------------------------------------------------- 12 files changed, 999 insertions(+), 921 deletions(-)