Hi, On Mon, Mar 07, 2022 at 02:21:57PM +0200, Codrin Ciubotariu wrote: > Even if struct snd_dmaengine_pcm_config is used, prepare_slave_config() > callback might not be set. Check if this callback is set before using it. > > Fixes: fa654e085300 ("ASoC: dmaengine-pcm: Provide default config") > Signed-off-by: Codrin Ciubotariu <codrin.ciubotariu@xxxxxxxxxxxxx> > --- > > Changes in v2,v3: > - none > > sound/soc/soc-generic-dmaengine-pcm.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/sound/soc/soc-generic-dmaengine-pcm.c b/sound/soc/soc-generic-dmaengine-pcm.c > index 285441d6aeed..2ab2ddc1294d 100644 > --- a/sound/soc/soc-generic-dmaengine-pcm.c > +++ b/sound/soc/soc-generic-dmaengine-pcm.c > @@ -86,10 +86,10 @@ static int dmaengine_pcm_hw_params(struct snd_soc_component *component, > > memset(&slave_config, 0, sizeof(slave_config)); > > - if (!pcm->config) > - prepare_slave_config = snd_dmaengine_pcm_prepare_slave_config; > - else > + if (pcm->config && pcm->config->prepare_slave_config) > prepare_slave_config = pcm->config->prepare_slave_config; > + else > + prepare_slave_config = snd_dmaengine_pcm_prepare_slave_config; > > if (prepare_slave_config) { > int ret = prepare_slave_config(substream, params, &slave_config); I wonder if this patch is correct. There are drivers like sound/soc/mxs/mxs-pcm.c which call snd_dmaengine_pcm_register() with a config which has the prepare_slave_config callback unset. For these drivers dmaengine_pcm_hw_params() previously was a no-op. Now with this patch snd_dmaengine_pcm_prepare_slave_config() and dmaengine_slave_config() are called. At least for the mxs-pcm driver calling dmaengine_slave_config() will return -ENOSYS. At least the "Check if this callback is set before using it" part is wrong, the callback is checked before using it with if (prepare_slave_config) { ... } I don't have any mxs hardware at hand to test this. I just stumbled upon the change of behaviour when rebasing https://patchwork.kernel.org/project/alsa-devel/patch/20220301122111.1073174-1-s.hauer@xxxxxxxxxxxxxx/ on current master. Sascha -- Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |