return 0;
 }
 
-static const struct snd_soc_dai_ops wm2200_dai_ops = {
-       .set_fmt = wm2200_set_fmt,
-       .hw_params = wm2200_hw_params,
-};
-
 static int wm2200_set_sysclk(struct snd_soc_component *component, int clk_id,
                             int source, unsigned int freq, int dir)
 {
        return 0;
 }
 
+static const struct snd_soc_dai_ops wm2200_dai_ops = {
+       .probe = wm2200_dai_probe,
+       .set_fmt = wm2200_set_fmt,
+       .hw_params = wm2200_hw_params,
+};
+
 #define WM2200_RATES SNDRV_PCM_RATE_8000_48000
 
 #define WM2200_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\
 
 static struct snd_soc_dai_driver wm2200_dai = {
        .name = "wm2200",
-       .probe = wm2200_dai_probe,
        .playback = {
                .stream_name = "Playback",
                .channels_min = 2,
 
 #define WM5102_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\
                        SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE)
 
+static const struct snd_soc_dai_ops wm5102_dai_ops = {
+       .compress_new = snd_soc_new_compress,
+};
+
 static struct snd_soc_dai_driver wm5102_dai[] = {
        {
                .name = "wm5102-aif1",
                        .rates = WM5102_RATES,
                        .formats = WM5102_FORMATS,
                },
-               .compress_new = snd_soc_new_compress,
+               .ops = &wm5102_dai_ops,
        },
        {
                .name = "wm5102-dsp-trace",
 
 #define WM5110_FORMATS (SNDRV_PCM_FMTBIT_S16_LE | SNDRV_PCM_FMTBIT_S20_3LE |\
                        SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE)
 
+static const struct snd_soc_dai_ops wm5110_dai_ops = {
+       .compress_new = snd_soc_new_compress,
+};
+
 static struct snd_soc_dai_driver wm5110_dai[] = {
        {
                .name = "wm5110-aif1",
                        .rates = WM5110_RATES,
                        .formats = WM5110_FORMATS,
                },
-               .compress_new = snd_soc_new_compress,
+               .ops = &wm5110_dai_ops,
        },
        {
                .name = "wm5110-dsp-voicectrl",
                        .rates = WM5110_RATES,
                        .formats = WM5110_FORMATS,
                },
-               .compress_new = snd_soc_new_compress,
+               .ops = &wm5110_dai_ops,
        },
        {
                .name = "wm5110-dsp-trace",
 
 };
 
 static const struct snd_soc_dai_ops wm8994_aif2_dai_ops = {
+       .probe          = wm8994_aif2_probe,
        .set_sysclk     = wm8994_set_dai_sysclk,
        .set_fmt        = wm8994_set_dai_fmt,
        .hw_params      = wm8994_hw_params,
                        .formats = WM8994_FORMATS,
                        .sig_bits = 24,
                },
-               .probe = wm8994_aif2_probe,
                .ops = &wm8994_aif2_dai_ops,
        },
        {