{"MIC2", NULL, "Mic (Internal2)"},
 };
 
-static int e800_ac97_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, e800_dapm_widgets,
-                                       ARRAY_SIZE(e800_dapm_widgets));
-
-       snd_soc_dapm_add_routes(dapm, audio_map, ARRAY_SIZE(audio_map));
-
-       return 0;
-}
-
 static struct snd_soc_dai_link e800_dai[] = {
        {
                .name = "AC97",
                .codec_dai_name = "wm9712-hifi",
                .platform_name = "pxa-pcm-audio",
                .codec_name = "wm9712-codec",
-               .init = e800_ac97_init,
        },
        {
                .name = "AC97 Aux",
        .owner = THIS_MODULE,
        .dai_link = e800_dai,
        .num_links = ARRAY_SIZE(e800_dai),
+
+       .dapm_widgets = e800_dapm_widgets,
+       .num_dapm_widgets = ARRAY_SIZE(e800_dapm_widgets),
+       .dapm_routes = audio_map,
+       .num_dapm_routes = ARRAY_SIZE(audio_map),
 };
 
 static struct gpio e800_audio_gpios[] = {