Hi Mark, Lars
These are very rough patch for merging snd_soc_codec <-> snd_soc_component. As Lars idea, "codec" includes "component" on this patch, but it doesn't care about "platform" here, since "platform" doesn't have "dai". Current component is caring "dai", but... ? (and what about "card" ?)
Anyway, this patch focus only codec <-> component. The "driver code" was not big difference, since current component is very small at this point.
Attached 1st patch is rough version of ASoC core code. the main topic on this patch is that snd_soc_register_dai[s] will be called via component.
But, we will need many "codec dai name exchange", becouse 1) the dai name rule on 1-dai / multi-dai are different, it was depend on snd_soc_register_dai[s]. 1) component is using both snd_soc_register_dai[s] inside (this was for "cpu" side limit) 2) codec have been used snd_soc_register_dais even though it was not multi-dai
2nd patch is rough version of "code dai name exchange" for it. Of course we need more and more codec driver patches, but it is wm8978 only as trial now.
I guess "codec driver" should have "component driver" pointer too ? (it has .name only at this point, and 2nd patch includes it)
We can move some feature from codec to component after this step ?
In my quick check, below codec have 0 dai (= we need care it on component ?)
sound/soc/codecs/lm4857.c sound/soc/codecs/max9768.c sound/soc/codecs/max9877.c sound/soc/codecs/wm2000.c sound/soc/codecs/wm9090.c
below codecs have 1 dai (= we need name exchange on platform)
sound/soc/codecs/ac97.c sound/soc/codecs/ad1836.c sound/soc/codecs/ad193x.c sound/soc/codecs/ad193x.c sound/soc/codecs/ad1980.c sound/soc/codecs/ad73311.c sound/soc/codecs/adau1701.c sound/soc/codecs/ads117x.c sound/soc/codecs/ak4104.c sound/soc/codecs/ak4535.c sound/soc/codecs/ak4554.c sound/soc/codecs/ak4642.c sound/soc/codecs/ak4671.c sound/soc/codecs/ak5386.c sound/soc/codecs/alc5623.c sound/soc/codecs/alc5632.c sound/soc/codecs/bt-sco.c sound/soc/codecs/cq93vc.c sound/soc/codecs/cs4270.c sound/soc/codecs/cs4271.c sound/soc/codecs/cs4271.c sound/soc/codecs/cs42l51.c sound/soc/codecs/cs42l52.c sound/soc/codecs/cx20442.c sound/soc/codecs/da7210.c sound/soc/codecs/da7210.c sound/soc/codecs/da7213.c sound/soc/codecs/da9055.c sound/soc/codecs/dmic.c sound/soc/codecs/hdmi.c sound/soc/codecs/jz4740.c sound/soc/codecs/max9850.c sound/soc/codecs/ml26124.c sound/soc/codecs/pcm1681.c sound/soc/codecs/pcm1792a.c sound/soc/codecs/pcm3008.c sound/soc/codecs/sgtl5000.c sound/soc/codecs/si476x.c sound/soc/codecs/spdif_receiver.c sound/soc/codecs/spdif_transmitter.c sound/soc/codecs/ssm2518.c sound/soc/codecs/ssm2602.c sound/soc/codecs/ssm2602.c sound/soc/codecs/sta32x.c sound/soc/codecs/sta529.c sound/soc/codecs/tas5086.c sound/soc/codecs/tlv320aic23.c sound/soc/codecs/tlv320aic26.c sound/soc/codecs/tlv320aic32x4.c sound/soc/codecs/tlv320aic3x.c sound/soc/codecs/tlv320dac33.c sound/soc/codecs/uda134x.c sound/soc/codecs/wl1273.c sound/soc/codecs/wm1250-ev1.c sound/soc/codecs/wm2200.c sound/soc/codecs/wm8350.c sound/soc/codecs/wm8400.c sound/soc/codecs/wm8510.c sound/soc/codecs/wm8510.c sound/soc/codecs/wm8523.c sound/soc/codecs/wm8711.c sound/soc/codecs/wm8711.c sound/soc/codecs/wm8727.c sound/soc/codecs/wm8728.c sound/soc/codecs/wm8728.c sound/soc/codecs/wm8731.c sound/soc/codecs/wm8731.c sound/soc/codecs/wm8737.c sound/soc/codecs/wm8737.c sound/soc/codecs/wm8741.c sound/soc/codecs/wm8741.c sound/soc/codecs/wm8750.c sound/soc/codecs/wm8750.c sound/soc/codecs/wm8770.c sound/soc/codecs/wm8782.c sound/soc/codecs/wm8804.c sound/soc/codecs/wm8804.c sound/soc/codecs/wm8900.c sound/soc/codecs/wm8900.c sound/soc/codecs/wm8903.c sound/soc/codecs/wm8904.c sound/soc/codecs/wm8940.c sound/soc/codecs/wm8955.c sound/soc/codecs/wm8960.c sound/soc/codecs/wm8961.c sound/soc/codecs/wm8962.c sound/soc/codecs/wm8971.c sound/soc/codecs/wm8974.c sound/soc/codecs/wm8978.c sound/soc/codecs/wm8983.c sound/soc/codecs/wm8983.c sound/soc/codecs/wm8985.c sound/soc/codecs/wm8985.c sound/soc/codecs/wm8988.c sound/soc/codecs/wm8988.c sound/soc/codecs/wm8990.c sound/soc/codecs/wm8991.c sound/soc/codecs/wm8993.c sound/soc/codecs/wm9081.c sound/soc/codecs/max98090.c sound/soc/codecs/rt5631.c
below codecs have multi dai
sound/soc/codecs/88pm860x-codec.c sound/soc/codecs/ab8500-codec.c sound/soc/codecs/adau1373.c sound/soc/codecs/adav80x.c sound/soc/codecs/ak4641.c sound/soc/codecs/cs42l73.c sound/soc/codecs/da732x.c sound/soc/codecs/isabelle.c sound/soc/codecs/lm49453.c sound/soc/codecs/max98088.c sound/soc/codecs/max98095.c sound/soc/codecs/rt5640.c sound/soc/codecs/sn95031.c sound/soc/codecs/stac9766.c sound/soc/codecs/twl4030.c sound/soc/codecs/twl6040.c sound/soc/codecs/uda1380.c sound/soc/codecs/wm0010.c sound/soc/codecs/wm5100.c sound/soc/codecs/wm5102.c sound/soc/codecs/wm5110.c sound/soc/codecs/wm8580.c sound/soc/codecs/wm8753.c sound/soc/codecs/wm8776.c sound/soc/codecs/wm8994.c sound/soc/codecs/wm8995.c sound/soc/codecs/wm8996.c sound/soc/codecs/wm8997.c sound/soc/codecs/wm9705.c sound/soc/codecs/wm9712.c sound/soc/codecs/wm9713.c
and, below codec has both 1-dai, and multi-dai
sound/soc/codecs/mc13783.c
Kuninori Morimoto (2): [RFC] ASoC: snd_soc_codec include snd_soc_component [RFC] ASoC: wm8978: use component
arch/arm/mach-shmobile/board-armadillo800eva.c | 2 +- include/sound/soc.h | 33 ++++++++++-------- sound/soc/codecs/wm8978.c | 6 ++++ sound/soc/soc-core.c | 44 ++++++++++++++++++------ 4 files changed, 59 insertions(+), 26 deletions(-)