{ "Mic Bias", NULL, "External Microphone" },
 };
 
-static int migor_dai_init(struct snd_soc_pcm_runtime *rtd)
-{
-       struct snd_soc_codec *codec = rtd->codec;
-       struct snd_soc_dapm_context *dapm = &codec->dapm;
-
-       snd_soc_dapm_new_controls(dapm, migor_dapm_widgets,
-                                 ARRAY_SIZE(migor_dapm_widgets));
-
-       snd_soc_dapm_add_routes(dapm, audio_map, ARRAY_SIZE(audio_map));
-
-       return 0;
-}
-
 /* migor digital audio interface glue - connects codec <--> CPU */
 static struct snd_soc_dai_link migor_dai = {
        .name = "wm8978",
        .platform_name = "siu-pcm-audio",
        .codec_name = "wm8978.0-001a",
        .ops = &migor_dai_ops,
-       .init = migor_dai_init,
 };
 
 /* migor audio machine driver */
        .owner = THIS_MODULE,
        .dai_link = &migor_dai,
        .num_links = 1,
+
+       .dapm_widgets = migor_dapm_widgets,
+       .num_dapm_widgets = ARRAY_SIZE(migor_dapm_widgets),
+       .dapm_routes = audio_map,
+       .num_dapm_routes = ARRAY_SIZE(audio_map),
 };
 
 static struct platform_device *migor_snd_device;