On Mon, Jul 02, 2012 at 10:30:25AM +0530, Rajeev kumar wrote: > On 6/28/2012 5:57 PM, Mark Brown wrote: > >>+int spdif_soc_dai_probe(struct snd_soc_dai *dai) > >>> +{ > >>> + struct snd_soc_card *card = dai->card; > >>> + struct snd_soc_pcm_runtime *rtd = card->rtd; > >>> + struct snd_soc_codec *codec = rtd->codec; > >>> + > >>> + return snd_soc_add_codec_controls(codec, spdif_out_controls, > >>> + ARRAY_SIZE(spdif_out_controls)); > >We should add a framework thing for this... > I was going through the simaple-card.c file and I think that the > above is possible if we have a pointer of "snd_kcontrol_new" in > asoc_simple_card_info structure. In this case we can pass all the > controls from board file (arch/arm/mach-*). Please share your > opinion. Why would we want to do that? These controls are part of the CPU DAI, the CPU DAI driver should add them.