};
 
 static const struct snd_soc_dai_ops stm32_i2s_pcm_dai_ops = {
+       .probe          = stm32_i2s_dai_probe,
        .set_sysclk     = stm32_i2s_set_sysclk,
        .set_fmt        = stm32_i2s_set_dai_fmt,
        .startup        = stm32_i2s_startup,
        if (!dai_ptr)
                return -ENOMEM;
 
-       dai_ptr->probe = stm32_i2s_dai_probe;
        dai_ptr->ops = &stm32_i2s_pcm_dai_ops;
        dai_ptr->id = 1;
        stm32_i2s_dai_init(&dai_ptr->playback, "playback");
 
 }
 
 static const struct snd_soc_dai_ops stm32_sai_pcm_dai_ops = {
+       .probe          = stm32_sai_dai_probe,
+       .set_sysclk     = stm32_sai_set_sysclk,
+       .set_fmt        = stm32_sai_set_dai_fmt,
+       .set_tdm_slot   = stm32_sai_set_dai_tdm_slot,
+       .startup        = stm32_sai_startup,
+       .hw_params      = stm32_sai_hw_params,
+       .trigger        = stm32_sai_trigger,
+       .shutdown       = stm32_sai_shutdown,
+       .pcm_new        = stm32_sai_pcm_new,
+};
+
+static const struct snd_soc_dai_ops stm32_sai_pcm_dai_ops2 = {
+       .probe          = stm32_sai_dai_probe,
        .set_sysclk     = stm32_sai_set_sysclk,
        .set_fmt        = stm32_sai_set_dai_fmt,
        .set_tdm_slot   = stm32_sai_set_dai_tdm_slot,
 };
 
 static struct snd_soc_dai_driver stm32_sai_playback_dai = {
-               .probe = stm32_sai_dai_probe,
-               .pcm_new = stm32_sai_pcm_new,
                .id = 1, /* avoid call to fmt_single_name() */
                .playback = {
                        .channels_min = 1,
 };
 
 static struct snd_soc_dai_driver stm32_sai_capture_dai = {
-               .probe = stm32_sai_dai_probe,
                .id = 1, /* avoid call to fmt_single_name() */
                .capture = {
                        .channels_min = 1,
                                SNDRV_PCM_FMTBIT_S16_LE |
                                SNDRV_PCM_FMTBIT_S32_LE,
                },
-               .ops = &stm32_sai_pcm_dai_ops,
+               .ops = &stm32_sai_pcm_dai_ops2,
 };
 
 static const struct snd_dmaengine_pcm_config stm32_sai_pcm_config = {
 
 }
 
 static const struct snd_soc_dai_ops stm32_spdifrx_pcm_dai_ops = {
+       .probe          = stm32_spdifrx_dai_probe,
        .startup        = stm32_spdifrx_startup,
        .hw_params      = stm32_spdifrx_hw_params,
        .trigger        = stm32_spdifrx_trigger,
 
 static struct snd_soc_dai_driver stm32_spdifrx_dai[] = {
        {
-               .probe = stm32_spdifrx_dai_probe,
                .capture = {
                        .stream_name = "CPU-Capture",
                        .channels_min = 1,