]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
ASoC: stm32: dfsdm: add stm32_adfsdm_dummy_cb() callback
authorOlivier Moysan <olivier.moysan@st.com>
Sat, 21 Nov 2020 16:14:56 +0000 (17:14 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Thu, 3 Dec 2020 19:32:40 +0000 (19:32 +0000)
Adapt STM32 DFSDM driver to a change in iio_channel_get_all_cb() API.
The callback pointer becomes a requested parameter of this API,
so add a dummy callback to be given as parameter of this function.
However, the stm32_dfsdm_get_buff_cb() API is still used instead,
to optimize DMA transfers.

Signed-off-by: Olivier Moysan <olivier.moysan@st.com>
Signed-off-by: Nuno Sá <nuno.sa@analog.com>
Acked-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20201121161457.957-2-nuno.sa@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
sound/soc/stm/stm32_adfsdm.c

index c4031988f981e69e9ab7a5b3609882081bd07d18..47fae8dd20b46e5dd0b9f1a6754b265dbffc0b90 100644 (file)
@@ -293,6 +293,16 @@ static int stm32_adfsdm_pcm_new(struct snd_soc_component *component,
        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,
@@ -335,7 +345,7 @@ static int stm32_adfsdm_probe(struct platform_device *pdev)
        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);