return 0;
 }
 
+static int stm32_adfsdm_dummy_cb(const void *data, void *private)
+{
+       /*
+        * This dummmy callback is requested by iio_channel_get_all_cb() API,
+        * but the stm32_dfsdm_get_buff_cb() API is used instead, to optimize
+        * DMA transfers.
+        */
+       return 0;
+}
+
 static struct snd_soc_component_driver stm32_adfsdm_soc_platform = {
        .open           = stm32_adfsdm_pcm_open,
        .close          = stm32_adfsdm_pcm_close,
        if (IS_ERR(priv->iio_ch))
                return PTR_ERR(priv->iio_ch);
 
-       priv->iio_cb = iio_channel_get_all_cb(&pdev->dev, NULL, NULL);
+       priv->iio_cb = iio_channel_get_all_cb(&pdev->dev, &stm32_adfsdm_dummy_cb, NULL);
        if (IS_ERR(priv->iio_cb))
                return PTR_ERR(priv->iio_cb);